【问题标题】:MATLAB - Histogram Matching of Two ImagesMATLAB - 两个图像的直方图匹配
【发布时间】:2012-10-15 01:11:22
【问题描述】:

我需要编写一个函数,它将image2 的直方图与将要重新映射的图像相匹配,我们称之为image1。但是我不允许使用histeq。你能帮我写代码吗?

ps:另外我想知道如果我被允许使用histeq,我将如何进行该操作?提取红绿蓝通道后该怎么办? (我不能使用histeq(R2,R1)?)

image1 = imread('color1.jpeg');
image2 = imread('color2.jpeg');

R1 = image1(:, :, 1);
G1 = image1(:, :, 2);
B1 = image1(:, :, 3);

R2 = image2(:, :, 1);
G2 = image2(:, :, 2);
B2 = image2(:, :, 3); 

问候, 艾玛迪斯

【问题讨论】:

    标签: matlab histogram matching


    【解决方案1】:

    我认为这个问题不够具体。解决此问题的一种方法是将三个通道转换为灰度图像 (​​rgb2gray),计算两个直方图 (hist),然后在直方图之间找到所需的映射并将其应用于原始图像的每个通道。

    灰度转换不是必须的,你可以在每个通道上执行此算法,然后将通道连接在一起。

    检查这个question,它使用histq

    【讨论】:

    【解决方案2】:

    直方图匹配算法包括 3 个阶段: 1 计算归一化第一张图像的 CDF (T(r))。 2 计算归一化第二张图像 (G(z)) 的 CDF。 3-计算 G^-1(T(r)) 并将第一张图像的强度值转换为所需的强度值。

    【讨论】:

      猜你喜欢
      • 2011-09-15
      • 2015-12-15
      • 2015-01-02
      • 1970-01-01
      • 2011-04-28
      • 2011-02-24
      • 2016-09-19
      • 2022-10-06
      相关资源
      最近更新 更多