2011-06-14 123 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