【问题标题】:Histogram matching of two colored images in matlabmatlab中两幅彩色图像的直方图匹配
【发布时间】:2011-09-15 03:13:51
【问题描述】:

有人知道如何在两张彩色图像上进行 RGB 直方图匹配吗?

例如,这是要重新映射的图像:

这是一个目标图像

那么 RGB 重新映射的图像是这样的

这是我到目前为止所做的,在这段代码中,我拍摄了两张彩色图像im1im2

我拿了im1,这是必须重新映射然后分解成的那个

它的颜色然后我取了 im1 的每种颜色并使用histeq 将它们的直方图匹配到

im2 中的每种颜色。

我不知道如何根据我匹配的颜色重建重新映射的图像,有什么帮助吗??:

im1 = imread('Atlas-Mer.png');
im2 = imread('techno-trs.png');

Red1 = im1(:, :, 1);
Green1 = im1(:, :, 2);
Blue1 = im1(:, :, 3);
.
.
.
Red2 = im2(:, :, 1);
Green2 = im2(:, :, 2);
Blue2 = im2(:, :, 3);

red2n = histeq(Red2,HnRed1);
green2n = histeq(Green2,HnGreen1);
blue2n = histeq(Blue2,HnBlue1);

【问题讨论】:

  • 只是好奇:这个有没有有用的应用程序?

标签: matlab image-processing histogram


【解决方案1】:

你可以这样做:

im2(:, :, 1) = red2n;

等等

【讨论】:

    【解决方案2】:

    原来的问题发布已经有几个月了,但我认为每个人都可以使用建议的替代方法:以下代码将三个颜色通道放入一个 RGB 图像中:

    rgb_out = cat(3, red2n, green2n, blue2n);

    【讨论】:

      【解决方案3】:

      Matlab 现在在图像处理工具箱中有一个内置函数来执行此操作: http://www.mathworks.com/help/images/ref/imhistmatch.html

      但是如果你有一个旧版本的 Matlab(我有 2010b,它不包括 imhistmatch.m),这是一个进行经典直方图匹配的函数: https://www.mathworks.com/matlabcentral/fileexchange/27396-matchhistograms

      【讨论】:

        猜你喜欢
        • 2014-12-31
        • 2012-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-18
        • 1970-01-01
        • 1970-01-01
        • 2015-12-15
        相关资源
        最近更新 更多