在图像处理编程中,经常需要一些测试图像,著名的Lena测试图等是一类标准测试图库。这类测试图通常是有版权的(大部分免费,但是需要声明),所以实际上做图像处理的研究者一般都是自己拍摄一些图来谫。但是有时为和其他论文进行对比又不得不找一些标准图来测试,最常用的是USC-SIPI测试库了,需要的下载:

http://sipi.usc.edu/database/

然而,更重要的是程序员们在测试与调试代码的过程中,往往需要自己“造”一些测试图像,这些测试图像的每一个像素都是程序员自己设计的,比如设计一个32x32大小的,里面的像素值是隔行黑白交替的颜色。这种测试图像在程序调试时是相当有效的,dubug进每一个单步都可以看到程序是否正确地处理每一个像素,即使是要测试每一个像素也是可能的:1024次F10或F11。

重点

这次的重点不在于如何设计像素值可控的测试图像,而是如何设计Photoshop或Acorn实现单个像素的绘制。相信Photoshop大家都不陌生,Adobe(奥多比)公司的重要产品之一。Acorn是美国一家叫FlySketch的公司出品,仅仅支持macos,与Photoshop是对标关系,相当于macos下的Photoshop。个人感觉Acorn的功能少一些,简单一点,但是平常图像处理足够用了,启动速度足够快,很得程序员的欢心。售价30美金,比Photoshop的订阅收费更容易接受一些吧。

当然也有免费且强大的GIMP可以使用,或者Krita、Paint.Net、imlab等都是开源免费……这也是个好大的坑儿。

重点、重点

为什么需要对这样的图像处理软件进行设置呢?本质原因是这一类图像处理软件对笔刷的控制或边缘的“羽化”效果设计的比较复杂,用来支持各种形式的图像创作,面向的对象主要是设计师、艺术家等。程序员则需要定量可控地绘制一些图像,因此需要精确到每一个像素的控制。所以在软件中要对使用的笔刷或区域选择工具进行设置:首先,对于铅笔或笔刷工具来说,需要设置大小Size为1,单位是像素。透明度为100%(不透明),混合方式为正常(直接叠加背景,不作融合)。

Acorn区域选择工具的设置

Acorn铅笔工具的设置

Photoshop CC选择工具设置

Photoshop CC铅笔工具的设置

绘制效果如下:

铅笔和区域选择定量绘制

最后,其实我有个疑问:为什么不用Windows自带的画图来画呢?嗯?