将 RGB 图像转换为 CMY
Convert RGB Image to CMY
如何将 RGB 彩色图像或简单图像转换为 CMY 彩色图像并提取每个分量青色 (C) 品红色 (M) 和黄色 (Y)?
我的方法:-
I=imread('Capture2.PNG');
I3 = I;
I2 =I;
I1 = I;
I1(:,:,2:3)=0;
RED = I1;
I2(:,:,1:2) = 0;
BLUE = I2;
I3(:,:,1:3)=0;
GREEN=I3;
tic;
figure;imshow(RED);
figure;imshow(BLUE);
figure;imshow(GREEN);
c = 1.0-RED;
m = 1.0-GREEN;
y = 1.0-BLUE;
figure;imshow(c);
figure;imshow(m);
figure;imshow(y);
您可以使用makecform
创建颜色-space转换:
I=imread('Capture2.PNG');
cform = makecform('srgb2cmyk');
cmykI = applycform(I,cform);
顺便说一句,在你的问题中,I
似乎是 uint8
类型,因此在 [0..255] 范围内,要获得每个组件的补码,你需要减去它们从 255 而不是 1.0:
c = 255-RED;
m = 255-GREEN;
y = 255-BLUE;
如何将 RGB 彩色图像或简单图像转换为 CMY 彩色图像并提取每个分量青色 (C) 品红色 (M) 和黄色 (Y)? 我的方法:-
I=imread('Capture2.PNG');
I3 = I;
I2 =I;
I1 = I;
I1(:,:,2:3)=0;
RED = I1;
I2(:,:,1:2) = 0;
BLUE = I2;
I3(:,:,1:3)=0;
GREEN=I3;
tic;
figure;imshow(RED);
figure;imshow(BLUE);
figure;imshow(GREEN);
c = 1.0-RED;
m = 1.0-GREEN;
y = 1.0-BLUE;
figure;imshow(c);
figure;imshow(m);
figure;imshow(y);
您可以使用makecform
创建颜色-space转换:
I=imread('Capture2.PNG');
cform = makecform('srgb2cmyk');
cmykI = applycform(I,cform);
顺便说一句,在你的问题中,I
似乎是 uint8
类型,因此在 [0..255] 范围内,要获得每个组件的补码,你需要减去它们从 255 而不是 1.0:
c = 255-RED;
m = 255-GREEN;
y = 255-BLUE;