【问题标题】:Convert RGB Image to CMY将 RGB 图像转换为 CMY
【发布时间】:2016-02-21 21:07:46
【问题描述】:

如何将 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);

【问题讨论】:

  • 现在没有matlab。它怎么不工作? figure,imshow( cat(3,c,m,y)); 有效吗?
  • @haraldK 现在它提供黑色照片
  • 如果你尝试imshow(YourImage,[])会怎样
  • imshow(uint8(c*255)) 怎么样?另外顺便说一句,您可以在一行中执行I3(:,:,[1,3])=0;

标签: image matlab image-processing


【解决方案1】:

您可以使用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;

【讨论】:

  • 你知道为什么 applycform 比 rgb2ntsc 慢吗?有没有更快的方法(例如,可以避免开销的更直接的转换等)?
猜你喜欢
  • 1970-01-01
  • 2021-12-17
  • 2010-12-14
  • 2017-08-02
  • 2021-12-15
  • 2014-02-26
  • 2014-12-22
  • 1970-01-01
相关资源
最近更新 更多