image - 将 RGB 图像转换为 CMY

标签 image matlab 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);

最佳答案

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

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;

关于image - 将 RGB 图像转换为 CMY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29774715/

相关文章:

java - 在 Java 中使用 OpenCV 比较图像相似度

html - 关于 (1) 通过 CSS 改进 JS 代码和 (2) 去除超链接图像周围的蓝色虚线边框的 CSS、JS 问题

java - 如何在单元格边界内显示图像

python - 如何用matplotlib控制彩色图像渲染?

matlab - FMINSEARCH 仅接受数据类型 double 的输入(Matlab)

Haskell 图像处理库?

c# - 将文件拖放到 WPF 中

MATLAB:无法从 sym 转换为逻辑值

Matlab 计算错误的表面法线?

image-processing - DCT 压缩 - block 大小,选择系数