将 RGB 图像转换为 CMY

NEW*_*SER 2 matlab image image-processing

如何将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);
Run Code Online (Sandbox Code Playgroud)

Sha*_*hai 5

您可以使用makecform创建颜色空间转换:

I=imread('Capture2.PNG');
cform = makecform('srgb2cmyk');
cmykI = applycform(I,cform); 
Run Code Online (Sandbox Code Playgroud)

顺便说一句,在您的问题中,它似乎I是类型uint8,因此在 [0..255] 范围内,要获得每个组件的补码,您需要从 255 而不是 1.0 中减去它们:

c = 255-RED;
m = 255-GREEN;
y = 255-BLUE;
Run Code Online (Sandbox Code Playgroud)