我试图绘制图像中不同颜色像素的频率。我可以在三个单独的图上绘制三个单独的直方图,但我想在同一个图上绘制它们,红色表示红色,绿色表示绿色等。从我可以从此网站和其他网站上的答案中可以看出的以下内容应该工作,但它不会,只有第二个出现。我究竟做错了什么?三个直方图,三种不同的颜色,一个图形:matlab
hold on;
x = 0:1:255;
figure ('name', 'red') ;
red = (newImg(:,:,1));
r = red(:)';
r = cast(r,'double');
[graph1,graph2] = hist (r,x);
bar(graph2,graph1, 'FaceColor', 'r','EdgeColor','r')
alpha(0.3);
green = (newImg(:,:,2));
g = green(:)';
g = cast(g,'double');
[graph1,graph2] = hist (g,x);
bar(graph2,graph1, 'FaceColor', 'b','EdgeColor','b')
hold off;