我有这个问题要从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
答案 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')