Question regarding strange outputs from histogram plot

2 次查看(过去 30 天)
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])

采纳的回答

Benjamin Großmann
Benjamin Großmann 2021-4-30
编辑:Benjamin Großmann 2021-4-30
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 个评论
Benjamin Großmann
Benjamin Großmann 2021-4-30
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')

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by