How to change the amount of the histogram?
2 ビュー (過去 30 日間)
古いコメントを表示
Hello all,
I have an image and I want to plot the histogram of the image,but the histogram is unusual,maybe it is because lots of amount of the pixels have the value 1. Is there anything that I can do so that I can put the range of the histogram became between [2,989],, 989 is the maximum pixel value.for the histogram I use this command: I don't know why the amount of the value for the histogram are until 3*10^3 In the picture there are lots of value between [2,989],I don't know why it doesn't show them,how can I show the value for other pixel values in the histogram. figure,imhist(a)
<<
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/157605/image.jpeg)
>>
回答 (3 件)
Image Analyst
2014 年 2 月 25 日
This is a double image, isn't it? Not an integer image. Do this:
class(a)
and tell me what it says. I suspect it's double, and that's the problem. If it's double, then imhist thinks that all the numbers should be between 0 and 1 and if you have any bigger than 1 it clips to 1. You'll have to use im2double() or just use hist instead of imhist:
pixelCounts = hist(a(:), 16384);
bar(pixelCounts, 'BarWidth', 1);
5 件のコメント
Image Analyst
2014 年 2 月 26 日
Thats the number of bins. It's the mas to make sure you get just one graylevel per bin. If you don't put that then the default is only 10 bins I believe, which gives a pretty chunky histogram.
Jos (10584)
2014 年 2 月 26 日
I will spell it out for you, provided that you read the documentation , ok?
% let X be your image with values between 2 and M, and 1 being background
doc histc
maxX = max(X(:))
edges = 2:maxX ;
n = histc(X(:),2:maxX) ;
bar(edges,n) ;
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Histograms についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!