将RGB转换为CMYK

时间:2020-07-14 05:55:17

标签: image matlab icc

我有这个问题要从RGB颜色转换为CMYK颜色。 当我执行代码时,我得到以下结果:

 ans =
     'RGB'

这意味着没有发生转换并且图像没有显示给我,我该怎么办?

     folder = iccroot;
     disp(folder)
     profiles = iccfind(folder)
     size(profiles)
     currentProfile = profiles{1}
     currentProfile.Description
     ProfileName = currentProfile.Description.String
     [~,descriptions] = iccfind(folder)
     descriptions
     [profiles,descriptions] = iccfind(folder,'rgb')
     descriptions
     currentProfile.Description
     P = iccread('sRGB.icm');
     P_new = iccwrite(P,'my_profile.icm');
     I_rgb = imread('Pepper.png');
     inprof = iccread('sRGB.icm');
     outprof = iccread('EV2456 User 5000K G2.2.icc');
     C = makecform('icc',inprof,outprof)
     I_cmyk = applycform(I_rgb,C);
     imwrite(I_cmyk,'pep_cmyk.tif','tif')
     info = imfinfo('pep_cmyk.tif');
     info.PhotometricInterpretation

1 个答案:

答案 0 :(得分:2)

我尝试了您的代码,发现文件“ EV2456用户5000K G2.2.icc”需要 在您的系统中。在我的系统中缺少它,因为我没有与 你的检查路径下

“ C:\ Windows \ System32 \ spool \ drivers \ color”

,如果您这样做 在ICC数据库中没有icc文件

https://www.tftcentral.co.uk/articles/icc_profiles.htm

它们似乎有两个与您的显示器有关的文件,请尝试

outprof = iccread('eizo_ev2455.icc');
outprof = iccread('eizo_ev2450.icc');

,它应该可以工作。在我的系统上工作... 使用

查看所有特征
info = imfinfo('pep_cmyk.tif')