购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

6-2 彩色图像的编辑

6-2-1 了解彩色图像数组的结构

本节将先用实例建立彩色图像,然后列出彩色图像的数组值,再解释数组值的意义。

程序实例 ch6_3.py: 建立3组2×3的彩色图像,第一组彩色图像数组是蓝色,第二组彩色图像数组是绿色,第三组彩色图像数组是红色`,列出数组内容。

执行结果 每个图像皆是三维数组。

下面用下图搭配上述执行结果做图示说明。

程序实例 ch6_4.py: 建立蓝色、绿色、红色的窗口,然后解释彩色数组内容的意义。

执行结果

这个实例比前一个实例复杂,不过概念是相同的,必须展开Python Shell窗口的 Squeezed text ,双击第1、第2和第3项后可以得到下列结果。

6-2-2 自创彩色图像与编辑的实例

程序实例 ch6_5.py: 自创一个2×3×3的彩色图像数组,先打印此彩色图像数组。然后打印[0,1]像素点的BGR内容。接着第12行修改[0,1]的内容为[50,100,150],最后再打印一次此图像数组,验证修改结果。

执行结果

上述是一次修改BGR通道的值,下列实例则是修订单一通道的值。

程序实例 ch6_6.py: 自创一个2×3×3的彩色图像数组,先打印此彩色图像数组,然后打印[0,1,2]像素点的通道值。接着第12行修改[0,1,2]的内容为50,最后再打印一次此图像数组,验证修改结果。

执行结果

6-2-3 读取彩色图像与编辑的实例

和前面小节内容一样,可以一次更改一个通道值内容,可以参考下列实例第14~17行。也可以一次更改一个像素点的BGR通道值,可以参考下列实例第10~12行,或第19~21行。

程序实例 ch6_7.py: 读取彩色图像,然后编辑图像,在编辑过程会列出长条左上角修改前与修改后的像素值。

执行结果

上述实例使用传统简单的方法编辑图像区域内容,其实对于Python程序设计师来说,那是没有效率的方法,可以用简单方式直接取代,例如,第10~12行可以用下列代码取代。

     img[115:210,110:210] = [255, 0, 255]

程序实例 ch6_7_1.py: 重新设计ch6_7.py,第10~12行使用单行代替循环。

执行结果 与ch6_7.py相同。 KTgLNN2h6dm74xnrOfdL44zl+7I/hrt/oytAD7kEU7y3AIPiBlIO6oNkHgvjmY7s

点击中间区域
呼出菜单
上一章
目录
下一章
×