给出一副图片,Mathematica可以直接分离出图片的颜色。然而,分离之后,大家很可能就会糊涂了:怎么搞的?怎么全是黑白图片?本文,就来解释一下,分离颜色的本质。
工具/原料
1
电脑
2
Mathematica
方法/步骤
1
选择一幅图片,导入到Mathematica里面。
2
分离图片颜色的代码是:ColorSeparate@图片
3
运行之后,发现,得到的图片全是黑白图片。这是怎么回事?
4
实际上,图片分离颜色之后,得到的都是灰度图;而灰度的深浅,代表相应颜色的深度;图片u的颜色空间是RGB,分离颜色之后,得到的前三幅图片是有内容的,而第四幅是空白图片,因为RGB颜色空间,不能为第四通道着色。
5
怎么确定图片u是4个通道呢?除了分离颜色得到4幅图片之外,还可以直接查看图片的通道数:ImageChannels@u
6
为了更好地理解,分离颜色与图片通道的关系,可以把图片转化为图片数据。为此,先缩小图片,防止浪费内存;然后再转化为数据v,是一个三维列表。
7
仔细看一下图片数据的结构:先把v转化为矩阵的形式;再看看这个矩阵的行数和列数;矩阵每一个单元,代表原图一个像素;可以发现,每一个像素都对应四个数值,正是四个通道各个颜色的深度值。
8
分离颜色得到的四幅图片,每一幅都是单通道图片。把分离颜色得到的四幅图片转化为图片数据,得到的每一幅图片第一个像素的数值,敲好是原图第一个像素对应的四个数字。
试验
1
给出一幅10通道的图片的图片数据,并转化为RGB图片。会发现,颜色空间和通道数目不兼容。
2
于是,把数据转化为3通道。
3
把图片改为500*365像素的大小。
4
此时,再分离颜色,就会得到三个通道的灰度图。
注意事项
大家思考一下,怎么把分离颜色之后,得到的各通道图片,还原为原来的彩色图像呢?
上一篇:dnf命运的抉择2.0攻略
下一篇:上古之平民狂战攻略