1、用QQ截取一张图片。我就现截现用了。载入到Mathematica里面:img=下图;
2、把图片转化为数据:a=ImageData[img];再把数据转化为图片:Image[a]
3、上面的图片变色了。这是耦嘀扔硇怎么回事呀?原来,QQ截图得到的是一个4通道图片,这四个通道是R、G、B通道和控制透明度的第四个通道。但是,当把四通道数据转化为图片的时候,Mathematica默认使用CMYK的色彩空间,而不是RGBA的色彩空间。想要获得和原图看起来一样的效果,第一种方法是指定色彩空间:Image[a,ColorSpace->"RGB"]
4、第二个办法是,从图像数据里面提取前三个通道,这样,Mathematica默认使用RGB色彩空间。b=a[[All,All,;;3]];
5、第三个方法是,栅格化原图,强制性的把四通道图片转化为三通道图片。这样,图像与数据的相互转化,就不会出现变色的情况了。img0=Rasterize[img];
6、原图的反色图片,将看不到任何内容。1-img你知道这是什么原因吗?
7、Image[ImageData[1-img]]
8、真正的反色图片是:Image[1颍骈城茇-ImageData[img][[All,All,;;3]]]或者1-Rasterize[img]或者Image[1-ImageData[img],ColorSpace->"RGB"]