How create plot of intensity versus frequency of image?
4 views (last 30 days)
Show older comments
imhist function will give a plot of intensity versus frequency, or we can normalize it like follow, but how we can make a plot like attached? it looks like an area plot. any comment appreciated.
clc;
close all;
clear all;
I = dicomread('IM_0007-Bmode');
for fr = 1:size(I,4)-1
img(:,:,fr) = rgb2gray(I(:,:,:,fr));
end
im1 = double(img(:,:,1));
%// Create normalized images
Inormalized = double(im1)./double(max(im1(:)));
%// Convert back to uint8
% im2Norm = im2uint8(Inormalized);
imhist (Inormalized);
minVal = min(Inormalized(:));
maxVal = max(Inormalized(:));
0 Comments
Accepted Answer
Image Analyst
on 10 Jun 2018
Try this:
histogram(I, 'normalization', 'probability')
title('Probability vs. Intensity', 'FontSize', 15);
xlabel('Intensity (gray level)', 'FontSize', 15);
ylabel('Probability', 'FontSize', 15);
grid on;
5 Comments
Image Analyst
on 10 Jun 2018
Yes it is. It also has no edge lines between the bins, which is an option you can have or not have. Excel calls it a column chart but most people, including at the Mathworks, call it a bar chart.
More Answers (1)
Ameer Hamza
on 10 Jun 2018
You can do something like this
[counts bins] = imhist(im1);
% normalize 'bins' and 'counts' here. e.g.
bins = bins/255;
counts = counts/sum(counts);
bar(bins, counts);
ax = gca;
ax.Children.BarWidth = 1;
See Also
Categories
Find more on Data Distribution Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!