2011-06-14 106 views
14

任何人都知道如何在两个彩色图像上执行RGB直方图匹配?matlab中两个彩色图像的直方图匹配

例如这是一个图像被重新映射:

image to be re-mapped

,这是一个目标图像

target image

然后,RGB重新映射的图像是这样的

re-mapped image

这里是我做过什么,到目前为止,在这个代码,我花了两个彩色图像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); 
+0

只是好奇:是否有这个有用的应用程序? – 2011-06-15 03:59:43

回答

4

你可以这样做:

im2(:, :, 1) = red2n; 

+0

你只是想通了,谢谢! – Glove 2011-06-15 01:04:22

5

那么它已经过了几个月,因为原来的问题发布了,但我认为每个人都可以使用另一种方法建议:下面的代码将三个颜色通道到一个RGB图像:

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

+1

+1。对于一个好的答案永远不会太晚。 – Isaac 2012-10-15 11:39:22