由于我没有复印机或扫描仪,所以我使用 800 万像素的相机来复印文件。这种方法效果很好,只是之后需要大量处理。我想从照片转换为位图,但使用
djpeg -grayscale -pnm photo.jpg |
pgmtopbm -threshold -value XXX
效果不太好,原因有二:
很难猜测 XXX 应该是什么,并且不同的照片 XXX 也不同。
光照会发生变化,有时单一阈值并不适用于图像。
我怎样才能做得更好?理想的解决方案是可以在 Linux 上运行的全自动命令行程序。(我已经编写了一个程序来从图像边缘去除暗像素。)
注意:我真的想要一个位图,那只是黑白像素。没有灰度,没有抖动。
答案1
三年来我发现的最好的东西mkbitmap
是波特雷斯。
答案2
-monochrome
此选项使用一些智能抖动并生成非常明显的输出:
convert -monochrome in.png out.png
文档:http://www.imagemagick.org/Usage/quantize/#monochrome
将其与更简单的-threshold 50
变换进行比较:
convert -threshold 50 in.png out.png
从而丢失了大部分图像。
具体例子来自:https://www.nasa.gov/mission_pages/galex/pia15416.html
wget -O orig.jpg http://www.nasa.gov/images/content/650137main_pia15416b-43_full.jpg
# Downsize to 400 height to have a reasonable file size for upload here.
convert orig.jpg -resize x400 in.jpg
convert -monochrome in.jpg out.jpg
convert -threshold 50 in.jpg threshold-50.jpg
图像.jpg
出.jpg
阈值-50.jpg
相关问题:
- https://stackoverflow.com/questions/15861025/how-to-convert-an-image-to-1bit-px-binary-bitmap-with-imagemagick-or-rmagick
- https://askubuntu.com/questions/9868/convert-an-image-from-grayscale-to-binary
- https://unix.stackexchange.com/questions/108613/how-do-you-binarize-a-colored-image
在 Ubuntu 19.10、ImageMagick 6.9.10 中测试。
答案3
显然,Gimp 支持一些命令行批处理。您可以尝试一下,因为去饱和度可能会像您预期的那样,在图像中以不同的亮度进行。
答案4
转换为灰度/去饱和度也会保留大部分噪音。GIMP 有一个阈值过滤器(在颜色菜单下),可以消除噪音,并且非常适合线条艺术和纯黑色扫描文本。
我自己对批处理脚本并不是太了解,但听起来使用 Threshold 是一个好主意。
编辑:由于您有 Linux 作为标签,请查看帕奇,批量处理照片。它还具有调整对比度和亮度的滤镜。它位于 Ubuntu 存储库中(如果您使用该发行版)