增加PDF文件对比度的粗浅原理,及方法

增加PDF文件对比度的粗浅原理,及方法_第1张图片 增加PDF文件对比度的粗浅原理,及方法_第2张图片

上边这张照片不是异形,而是著名的鹦鹉螺。下边这张照片,是送给研究生同学的毕业纪念,向龙同学帮我激光雕刻的。

最近的照片在[http://www.douban.com/photos/album/134230762/].


电子书扫描版跟照片差不多,一个可能的问题是看起来乌突突的,黑的不够黑,白的不够白,像是蒙了一层雾。用picasa的luck功能或者snapseed的automatic功能,都能把图片上的雾去掉。但是同样的功能用在PDF上的软件我没有找到。


但是如果弄懂了原理--让我想起 倚天屠龙记 里的杨左史,长戟大刀蛾眉刺各种武器的招法都是可以溶入拳法之中的。

就黑白 (严格地说,灰度)图片而言,"去雾"的基本原理是增加对比度。人眼看到的全黑、全白,以及其间所有的过渡色调,在计算机图片中都是用数字来表示的。人眼是非常精密和拥有极大检测范围的光学仪器,从明亮到直视的太阳,到电影院里黑暗的座号,都能看到。而计算机图片只能展示人眼可承受的范围中非常小的一部分。这部分中最重要的信息(对于黑白图片而言是全部)是亮度。计算机图片用数字的大小来表示亮度,越亮的,也就是越白的,用较大的数字,越暗的,也就是越黑的,用较小的数字表示。

这样,比如说,图片上的每个像素,从最暗到最亮,就对应着从0到255之间的数字。各种图像处理软件中的gamma校正就是用来指定这种对应关系的。这种对应可能是线性的,也可能是非线性的,在非线性的情况下,可能数字变化了很多,而亮度变化非常小--类似于你调洗澡时的冷热水,扭了半天,还是挺凉,突然就热得能烫突鲁皮。你可能觉得,这不是有毛病吗?是的,这种非线性有时会带来麻烦,但是,同时它还有个优点,那就是 识别度 好。

我们规定一个数值,低于它就是全黑,不管数值如何变化;再规定一个数值,高于它就是全白,不管数值如何变化。这两个数值就是黑到灰和灰到白的阀值。之所以低于某数就视为全黑,是因为我们可能不希望呈现这部分暗调的细节,之所以高于某数就视为全白,是因为我们可能希望把这些都表现为高光。

捕捉到的现实是一回事,如何呈现,是完全不同的另一回事。二猫昨天问到,为什么书里净写些吓人的事情,既然它们很少发生。我说,如果灰姑娘的故事真的完全写实,那么,整个故事里你大部分时间看到的都不是她遇到王子的舞会和红舞鞋,而是灰姑娘成天给她后妈和后姐们做饭做饭做饭做饭做饭做饭做饭……做饭

同样,一本PDF电子书如果扫描不当,也可能呈现了过多的暗部和高光的细节,而灰色调子的过渡层次不够分明。暗部和高光的范围可以通过调整黑和白的阀值完成,下面会继续介绍;灰色调子的过渡层次,可以通过细调gamma校正完成,本文不讨论,请自学。

所以,提高有雾电子书的对比度,原理就是重新设置黑和白的阀值。以上是原理部分,以下是操作方法。

知乎上有人说,把pdf中的图片都导出来,用photoshop处理调整gamma或者设置黑和白的阀值,然后再导入成PDF。原理正是如此,但是这需要安装高大上的收费工具photoshop和acrobat professional,还可能需要一页一页操作 (?) ,有些杀鸡用牛刀的意思。下面介绍成批处理的方法。

第1步 抽样,使用 ImageMagick 把 PDF 转换为图片。事实上,我们只需要其中的一两张,不过我不知道如何完成。ImageMagick是linux下和windows下都有的工具,支持命令行。

$ convert 1.pdf 1.jpg

这样,得到了一大批jpg图片。

第2步 尝试,使用 GIMP 确定白色和黑色的阀值。用GIMP也行,用photoshop也行,凡是能调灰度图片阀值的,都行。调到你感觉最好,没错,就是“感觉”,这是个主观标准。然后把白色和黑色的阀值记下来。GIMP是linux下的photoshop。

以上两步不做也行,那么,接下来的阀值就可以靠猜、靠经验、靠多次尝试。

第3步 使用 ImageMagick 修改对比度

$ convert -level 38%,99% 1.pdf 2.pdf

这行命令的意思是:低于38%的,视为黑,高于99%的,视为白,把源文件1.pdf转换后存为目标文件2.pdf。

因为调整阀值的同时,也自动调整gamma线,使之更陡峭,所以灰色调子的层次会更鲜明一些。


原理讲了一大堆,还是只是精浅的介绍,而方法中真正起作用的只是一行命令。所以,这个故事告诉我们,知道怎么干很容易,而知道为什么这么干会成功就难得多。当然,唯其如此,才能把长戟大刀蛾眉刺的功夫用在拳法掌法这些徒手格斗之中。或者,唯其如此,才能把阴影透视和色彩模型应用在画妆上。

你可能感兴趣的:(Unix,shell)