histogram by not using the default imhist
Show older comments
I1 = imread('RDL.jpg');
raw = im2double(I1(:,:,1));
m=max(max(raw));
m1=min(min(raw));
binsize=(m-m1)/10;
for i=1:1:size(raw,1)
for j=1:1:size(raw,2)
value=raw(i,j); %read input image level
if value >= min(min(raw)) && value <= max(max(raw))
for i=1:1:10
if value <= i*binsize+min(min(raw))+ value > (i-1)*binsize+min(min(raw))
% original histogram in pixels
imhist(i)=imhist(i)+1;
% normalized histogram pdf
%InputIm_normalized_histogram(i)=InputIm_histogram(i)/resolution;
end
end
end
end
end
imhist(i)
I have used the code to plot a histogram from the image below. I want the graph similar to the attached image. But I am not able to get it. Kindly let me know where have I made the mistake.

3 Comments
Jan
on 13 Mar 2021
You forgot to mention, why you assume, that there is a mistake.
Vaswati Biswas
on 13 Mar 2021
Jan
on 13 Mar 2021
imhist(i) is a scalar, because you have defined it as a vector. Your code does not contain a command to dispaly a graph.
Accepted Answer
More Answers (1)
Image Analyst
on 14 Mar 2021
1 vote
Then why not simply use histogram() or histcounts()? Why do you want to write (buggy) code yourself?
3 Comments
Vaswati Biswas
on 14 Mar 2021
Edited: Vaswati Biswas
on 14 Mar 2021
Image Analyst
on 14 Mar 2021
That doesn't explain why you don't use the built-in histogram functions.
Vaswati Biswas
on 15 Mar 2021
Edited: Vaswati Biswas
on 15 Mar 2021
Categories
Find more on Histograms in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
