我希望使用内置函数imhist()
来查看图像的直方图,但不是给我预期的直方图,而是呈现直白线。
这是我用来创建直方图的测试图像:http://tenettech.com/content/images/thumbs/0002817_basys2_spartan_3e_250k_gates_fpga_board_600.jpeg
这是我用来获取直方图的代码:
img = imread('test.jpg');
gray = rgb2gray(img);
hist = imhist(gray);
imshow(hist);
这是我从imshow(hist);
http://i.imgur.com/0vCG7dx.jpg
难以正确看到,但灰色背景只是一条白线,顶部有黑点。
我期待这样的结果:http://nf.nci.org.au/facilities/software/Matlab/techdoc/ref/graphiac.gif
答案 0 :(得分:2)
imhist的输出是计数向量,而不是图像(即,通过imshow
显示这个1D数字向量将产生“黑点线”)。
使用plot
(或bar
)显示直方图或使用imhist
而不使用任何输出参数来获取(默认)直方图。
nBins = 100; %
[counts, x] = imhist(gray, nBins);
figure; bar(x, counts);
figure; imhist(gray, nBins)
答案 1 :(得分:1)
直接使用:
img = imread('test.jpg');
gray = rgb2gray(img);
figure,imhist(gray)
figure, bar(imhist(img))
figure,bar(imhist(img,50))