ImageMagick处理扫描图像

问题描述 投票:-1回答:1

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

下面是一个示例图像。

sample image

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

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

linux image-processing imagemagick crop
1个回答
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(-distort)中查看http://www.imagemagick.org/Usage/distorts/#perspective。虽然我不确定如何将循环中的失真应用于手工拍摄的图片 - 但每张图片可能需要特定的输入参数。

祝好运!

© www.soinside.com 2019 - 2024. All rights reserved.