gue*_*tli 5 algorithm resize colors scanning
我需要减少彩色扫描的文件大小.
到目前为止,我认为应该采取以下步骤:
到目前为止,我们使用convert(imagemagick)和net-ppm工具.
扫描是发票,而不是照片.
任何提示赞赏.
更新
例:
赏金
具有可重现解决方案的example.png最小且良好可读的简化文件获得了赏金.该解决方案只需使用开源软件.
文件格式并不重要,只要您可以再次将其转换为PNG即可.处理时间并不重要.我可以稍后优化.
更新
我的黑白输出效果非常好(谢谢).颜色减少到约16或32种颜色将是有趣的.
这是一个相当开放式的问题,因为图像质量和图像尺寸之间仍然存在弹性空间...毕竟,将其设为黑白并使用 CCITT T.6 黑白(传真式)压缩进行压缩正在发展击败大多数(如果不是所有)支持颜色的压缩算法。
如果您愿意使用黑白(而不是灰度),那就这样做!它使文档变得非常小。
否则,我推荐一系列较小的图像转换和自适应预测树(请参见此处)。APT 软件包是开源或公共领域的,非常易于编译和使用。它的优点是它在各种图像类型(尤其是文本)上表现良好,并且允许您更好地缩放图像大小与图像质量,而不会失去可读性。(我发现自己在可读性阈值上将 example_1000 大小的彩色版本压缩到 48KB,而 64K 则有明显的伪影,但易于阅读。)
我将 APT 与 imagemagick 调整结合起来:
convert example.png -resize 50% -selective-blur 0x4+10% -brightness-contrast -5x30 -resize 80% example.ppm
./capt example.ppm example.apt 20 # The 20 means quality in the range [0,100]
Run Code Online (Sandbox Code Playgroud)
并扭转该过程
./dapt example.apt out_example.ppm
convert out_example.ppm out_example.png
Run Code Online (Sandbox Code Playgroud)
解释一下 imagemagick 设置:
-resize 50%将其缩小一半以使处理速度更快。还隐藏了一些打印和扫描伪影。-selective-blur 0x4+10%:锐化实际上会产生更多噪音。你真正想要的是选择性模糊(就像在 Photoshop 中一样),当没有“边缘”时就会模糊。-brightness-contrast -5x30:这里我们增加了一点对比度,以消除由页面轮廓引起的不良着色(导致可压缩数据较少)。我们还稍微变暗以使黑色更黑。-resize 80%最后,我们将大小调整为比您的 example_1000 图像大小稍大。(足够接近了。)这也减少了明显伪像的数量,因为当像素合并在一起时它们在某种程度上被隐藏了。此时,您将在本例中看到一个漂亮的图像——漂亮、平滑的颜色和清晰的文本。然后我们压缩。20 的质量值是一个相当低的设置,看起来不再那么漂亮,但文档非常清晰。即使质量值为 0,它仍然基本清晰。
再次强调,使用 ADT 并不一定会为该图像带来最佳结果,但它不会在类似摄影的内容(例如渐变)上变成完全无法识别的混乱,因此您应该更好地涵盖更多类型或意外情况文件类型。