3

我需要编写一个函数来匹配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); 

问候,艾玛迪斯

4

2 回答 2

0

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

不需要转换为灰度,您可以在每个通道上执行此算法,然后稍后将通道连接在一起。

检查这个问题,它使用histq.

于 2012-10-24T22:38:35.743 回答
0

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

于 2013-03-27T06:55:32.317 回答