Effacer les filtres
Effacer les filtres

How create plot of intensity versus frequency of image?

4 vues (au cours des 30 derniers jours)
Neda
Neda le 10 Juin 2018
Commenté : Neda Azarmehr le 10 Juin 2018
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(:));

Réponse acceptée

Image Analyst
Image Analyst le 10 Juin 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 commentaires
Image Analyst
Image Analyst le 10 Juin 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.
Neda Azarmehr
Neda Azarmehr le 10 Juin 2018
thank you.

Connectez-vous pour commenter.

Plus de réponses (1)

Ameer Hamza
Ameer Hamza le 10 Juin 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;
  1 commentaire
Neda
Neda le 10 Juin 2018
it gave me just two bin, 0 and 4, and if I do this xlim ([0 1]); nothing return back.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Lighting, Transparency, and Shading dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by