多语言展示
当前在线:1996今日阅读:27今日分享:41

分离图片颜色的思考

给出一副图片,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

此时,再分离颜色,就会得到三个通道的灰度图。

注意事项

大家思考一下,怎么把分离颜色之后,得到的各通道图片,还原为原来的彩色图像呢?

推荐信息