直方图函数imhist()产生带黑点的白线

时间:2013-12-27 23:33:47

标签: matlab image-processing histogram

我希望使用内置函数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

2 个答案:

答案 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))