Question regarding strange outputs from histogram plot
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Teshan Rezel
il 30 Apr 2021
Commentato: Benjamin Großmann
il 30 Apr 2021
Hi folks,
I have an image which is mostly black, with specks of purple. When I plot the RGB histogram for the image, I get an sharp line in the blue region but zero elsewhere, which I don't think is correct.
Can you please advise me on where I've gone wrong?
Thanks
R3=imhist(img3(:,:,1));
G3=imhist(img3(:,:,2));
B3=imhist(img3(:,:,3));
[pk31, locs31] = max(R3);
[pk32, locs32] = max(G3);
[pk33, locs33] = max(B3);
str31 = strcat('\leftarrow', num2str(locs31));
str32 = strcat('\leftarrow', num2str(locs32));
str33 = strcat('\leftarrow', num2str(locs33));
figure
hold on,
plot(R3,'r'),
text(locs31, pk31, str31),
plot(G3,'g')
text(locs32, pk32, str32),
plot(B3,'b'),
text(locs33, pk33, str33),
legend(' Red channel','Green channel','Blue channel','Location','best');
hold off,title('Mask 2 - RGB Histograms');
xlim([0 20])
ylim([0 5000])
0 Commenti
Risposta accettata
Benjamin Großmann
il 30 Apr 2021
Modificato: Benjamin Großmann
il 30 Apr 2021
If you do not provide any code, it is hard to tell what went wrong here. If I use your image, everything looks fine:
imageURL = 'https://www.mathworks.com/matlabcentral/answers/uploaded_files/602390/image.jpeg';
img = imread(imageURL);
tiledlayout(3,1)
bins = [0:255];
nexttile()
histogram(img(:,:,1), bins)
title('R')
nexttile()
histogram(img(:,:,2), bins)
title('G')
nexttile()
histogram(img(:,:,3), bins)
title('B')
4 Commenti
Benjamin Großmann
il 30 Apr 2021
the command "hold on" that you used, works on the axes and can also be used for histograms. It sets the axes property "NextPlot" to "add" instead of "replace". I prefer to set the property instead of "hold on"
imageURL = 'https://www.mathworks.com/matlabcentral/answers/uploaded_files/602390/image.jpeg';
img = imread(imageURL);
bins = [0:255];
fig = figure();
ax = axes('Parent', fig, 'NextPlot', 'Add');
histogram(img(:,:,1), bins, 'DisplayName', 'Red Channel')
histogram(img(:,:,2), bins, 'DisplayName', 'Green Channel')
histogram(img(:,:,3), bins, 'DisplayName', 'Blue Channel')
legend(ax, 'show')
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Histograms in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!