工具/原料
- matlab
- 电脑
方式/步骤
- 1
%加载图像 peppers.png,这张彩色照片显示了几种辣椒和其他一些蔬菜。8 位无符号整数数组 rgb 包含图像数据。
号令行键入:
rgb = imread('peppers.png');

- 2
号令行键入:
imshow(rgb)

- 3
为每个像素的红、绿 RGB 值绘制二元直方图,以可视化形式呈现颜色分布。
号令行键入:
r = rgb(:,:,1);

- 4
号令行键入:
g = rgb(:,:,2);

- 5
号令行键入:
b = rgb(:,:,3);

- 6
号令行键入:
histogram2(r,g,'DisplayStyle','tile','ShowEmptyBins','on', ...
'XBinLimits',[0 255],'YBinLimits',[0 255]);

- 7
号令行键入:
axis equal

- 8
号令行键入:
colorbar

- 9
号令行键入:
xlabel('Red Values')

- 10
号令行键入:
ylabel('Green Values')

- 11
号令行键入:
title('Green vs. Red Pixel Components')

- 12
此直方图较着趋势于色阶底部,原因是有些 bin 的计数很大。这导致大部门 bin 在颜色图中显示为第一种颜色,即蓝色。若是没有供给更多具体信息,很可贵出关于哪种颜色更占本家儿导性的结论。
- 13
要查看更多具体信息,请经由过程将坐标区的 CLim 属性设置为介于 0 和 500 之间的规模,从头调整直方图的色阶。其成果就是直方图入彀数达到 500 或以上的 bin 在颜色图中显示为最后一种颜色,即黄色。因为大部门 bin 的计数在这个较小规模内,是以所显示的 bin 的颜色转变较大。
- 14
号令行键入:
ax = gca;

- 15
号令行键入:
ax.CLim = [0 500];

- 16
利用近似的方式可以比力红色与蓝色以及绿色与蓝色的本家儿导性。


- 17
号令行键入:
histogram2(g,b,'DisplayStyle','tile','ShowEmptyBins','on',...
'XBinLimits',[0 255],'YBinLimits',[0 255]);
axis equal
colorbar
xlabel('Green Values')
ylabel('Blue Values')
title('Green vs. Blue Pixel Components')
ax = gca;
ax.CLim = [0 500];


- 18
在每种环境下,蓝色都是最不占本家儿导性的颜色旌旗灯号。看看所有这三个直方图,红色似乎为本家儿导颜色。
- 19
在 RGB 颜色空间中建立一个颜色直方图,对成果进行确认。对于所有这三个颜色分量,较小的 RGB 值都有峰值。但比拟其他任何分量,100 以上的值更多呈现在红色分量中。









