我已经在Matlab中使用imhist函数为rgb图像计算了3个直方图,每个通道一个。我想在同一张图上绘制这些直方图,例如,第一个(红色)通道的直方图在x轴上从0扩展到255,第二个通道的直方图从256扩展到511,最后是直方图第三通道的范围从512扩展到767。我该怎么做?
假设uint8
精度,每次调用imhist
都会给您一个256 x 1的向量,因此您可以将它们连接在一起成为一个768 x 1的向量。之后,bar
用histc
标志调用。假设您的图片存储在中im
,请执行以下操作:
red = imhist(im(:,:,1));
green = imhist(im(:,:,2));
blue = imhist(im(:,:,3));
h = [red; green; blue];
bar(h, 'histc');
例如,使用onion.png
图像处理工具箱中的图像:
im = imread('onion.png');
这是图像的样子:
使用上面的代码绘制串联的直方图将产生以下图形:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句