如何使用二元直方图进行颜色分析

此示例说明如何调整二元直方图的色阶,以显示与 bin 有关的更多详细信息。

东西/原料

  • matlab
  • 电脑

方式/步调

  1. 1

    %加载图像 peppers.png,这张彩色照片显示了几种辣椒和其他一些蔬菜。8 位无符号整数数组 rgb 包含图像数据。

    号令行键入:

    rgb = imread('peppers.png');

  2. 2

    号令行键入:

    imshow(rgb)

  3. 3

    为每个像素的红、绿 RGB 值绘制二元直方图,以可视化形式呈现颜色分布。

    号令行键入:

    r = rgb(:,:,1);

  4. 4

    号令行键入:

    g = rgb(:,:,2);

  5. 5

    号令行键入:

    b = rgb(:,:,3);

  6. 6

    号令行键入:

    histogram2(r,g,'DisplayStyle','tile','ShowEmptyBins','on', ...

    'XBinLimits',[0 255],'YBinLimits',[0 255]);

  7. 7

    号令行键入:

    axis equal

  8. 8

    号令行键入:

    colorbar

  9. 9

    号令行键入:

    xlabel('Red Values')

  10. 10

    号令行键入:

    ylabel('Green Values')

  11. 11

    号令行键入:

    title('Green vs. Red Pixel Components')

  12. 12

    此直方图较着趋势于色阶底部,原因是有些 bin 的计数很大。这导致大部门 bin 在颜色图中显示为第一种颜色,即蓝色。若是没有供给更多具体信息,很可贵出关于哪种颜色更占本家儿导性的结论。

  13. 13

    要查看更多具体信息,请经由过程将坐标区的 CLim 属性设置为介于 0 和 500 之间的规模,从头调整直方图的色阶。其成果就是直方图入彀数达到 500 或以上的 bin 在颜色图中显示为最后一种颜色,即黄色。因为大部门 bin 的计数在这个较小规模内,是以所显示的 bin 的颜色转变较大。

  14. 14

    号令行键入:

    ax = gca;

  15. 15

    号令行键入:

    ax.CLim = [0 500];

  16. 16

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

  17. 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. 18

    在每种环境下,蓝色都是最不占本家儿导性的颜色旌旗灯号。看看所有这三个直方图,红色似乎为本家儿导颜色。

  19. 19

    在 RGB 颜色空间中建立一个颜色直方图,对成果进行确认。对于所有这三个颜色分量,较小的 RGB 值都有峰值。但比拟其他任何分量,100 以上的值更多呈现在红色分量中。

    END
  • 发表于 2020-04-09 17:01
  • 阅读 ( 817 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
联系我们:uytrv@hotmail.com 问答工具