【问题标题】:ImageMagick processing of scan images扫描图像的 ImageMagick 处理
【发布时间】:2017-01-17 09:11:25
【问题描述】:

我正在将智能手机拍摄的文档图片上传到我的 Linux 服务器。在我的 Linux 服务器上,我使用 ImageMagick 切割边缘并进行一些处理(如灰色编码)以使其看起来像扫描文档。

下面是一张示例图片。

我想修剪图像以便只选择纸张,并进行进一步处理以使其看起来像扫描图像,类似于凸轮扫描仪所做的。

注意:我希望 ImageMagick 工具的参数是通用的,以便我可以使用相同的命令行选项来处理在不同光照条件下拍摄的图像。

【问题讨论】:

  • 这是一个非常广泛的问题,可能需要相当多的技能和努力才能提供一种方法来处理不同的照明、曝光、纸张方向、裁剪、校正和对比度控制——几乎可以肯定超过任何人都想提供 10-15 点声誉:-)

标签: linux image-processing imagemagick crop


【解决方案1】:

我同意@Mark。不过,我可以提供一个起点,帮助您朝着正确的方向前进:

隔离纸张: 假设纸张与背景充分对比,您可以使用以下内容:

 ## make the background transparent 
 convert 'input_image' \( -clone 0 -fill black -fuzz 10% +opaque "rgb(1,1,1)" -transparent black \) -delete 0 'transp_image'

您必须更改 rgb 颜色值以匹配纸张的“白色”颜色。 imagemagick 中的display 命令为此提供了一个很好的实用程序。您也可以使用-fuzz 百分比来仅隔离纸张。

去除背景:希望上面的代码能使纸以外的所有区域透明,在这种情况下你可以修剪掉背景:

 ## trim the transparent background away
 convert 'transp_image' -trim 'isolat_image'

从那里你可以做一些更有趣的事情,比如改变视角。尝试在 imagemagick (http://www.imagemagick.org/Usage/distorts/#perspective) 中查看-distort。虽然我不确定如何在循环中对手工拍摄的照片应用失真——每张照片可能都需要特定的输入参数。

祝你好运!

【讨论】:

    猜你喜欢
    • 2012-03-25
    • 2021-04-08
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    • 2014-03-30
    相关资源
    最近更新 更多