我有这个问题要将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
我尝试了您的代码,发现文件'EV2456 User 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')