
color image: kitchen1.tif
grayscale image: kitchen2.tif
W = k1 * R + k2 * G + k3 *B
Find k1, k2, k3 by least-squares
gray=imread('kitchen2.tif');
gray=im2double(gray);
rgb=imread('kitchen1.tif');
rgb=im2double(rgb);
len=size(rgb);
rgbd=reshape(rgb,len(1)*len(2),3);
grayd=reshape(gray,len(1)*len(2),1);
C=rgbd'*rgbd;
d=rgbd'*grayd;
k=C\d;
diff = gray - k(1)*rgb(:,:,1) - k(2)*rgb(:,:,2) - k(3)*rgb(:,:,3);
a(1) = max(diff(:));
a(2) = min(diff(:));
rms = std2(diff);
scd = (diff-a(2))/(a(1)-a(2));
imhist(scd);
C =
1.0e+004 *
6.9239 6.4029 5.6287
6.4029 6.1035 5.3815
5.6287 5.3815 5.1229
d =
1.0e+004 *
6.4717
6.1061
5.4191
k =
0.3277
0.5617
0.1077
a =
0.0789 -0.0369
rms =
0.0105
m = mean(rgbd) m(4) = mean(grayd) for i=1:3 rgbd(:,i) = rgbd(:,i)-m(i); end grayd = grayd - m(4); C=rgbd'*rgbd; d=rgbd'*grayd; k=C\d; diff = gray - k(1)*rgb(:,:,1) - k(2)*rgb(:,:,2) - k(3)*rgb(:,:,3); a = [max(diff(:)) min(diff(:))]; rms = std2(diff); scd = (diff-a(2))/(a(1)-a(2)); imhist(scd);
m =
0.5353 0.5053 0.4753 0.5125
C =
1.0e+004 *
1.8216 1.5864 1.0986
1.5864 1.5566 1.1051
1.0986 1.1051 1.1008
d =
1.0e+004 *
1.5867
1.4947
1.0819
k =
0.3222
0.5653
0.0937
a =
0.0831 -0.0309
rms =
0.0097
Maintained by John Loomis, last updated 18 Jan 2003