首页 文章

使用ImageMagick删除收据图像边框

提问于
浏览 1713
5

我'm using ImageMagick service to pre-process the receipt image before using tesseract-OCR engine to extract texts. I need to remove the background of the receipts. I'已经通过掩蔽去除边框here.但我无法为收据创建掩码 .

但是,我试图从收据图像中删除阴影 .

初始图像(示例收据)

enter image description here

convert input.png -colorspace gray \
      \( +clone -blur 0x2 \) +swap -compose divide -composite \
      -linear-stretch 5%x0%   photocopy.png

应用代码后:

enter image description here

我已经尝试了下面的代码来制作除了白色到黑色的所有颜色,但这似乎并没有完全遮蔽photocopy.png的背景 .

convert receipt.jpg -fill black -fuzz 20% +opaque "#ffffff" black_border.jpg

enter image description here

有没有办法删除收据图像的边框?或者从图像中创建任何类型的蒙版?注意:我需要删除具有不同背景的多个图像的噪点和边框 .

2 回答

  • 1

    回答你的问题

    “有没有办法删除收据图像的边框?或者从图像中创建任何类型的蒙版?”

    以下命令(基于您自己的代码)将创建一个图像,您可以使用该图像来获取适用蒙版的尺寸:

    convert                     \
       origscan.jpg             \
      -colorspace gray          \
       \( +clone 0 -blur 0x2 \) \
      +swap                     \
      -compose divide           \
      -composite                \
      -linear-stretch 5%x0%     \
      -threshold 5%             \
      -trim                     \
       mask-image.png
    

    您可以使用该掩码图像在一个命令中创建单色(黑色)掩码:

    convert                     \
       origscan.jpg             \
      -colorspace gray          \
       \( +clone 0 -blur 0x2 \) \
      +swap                     \
      -compose divide           \
      -composite                \
      -linear-stretch 5%x0%     \
      -threshold 5%             \
       \(                       \
          -clone 0              \
          -fill '#000000'       \
          -colorize 100         \
       \)                       \
      -delete 0                 \
       black-mask.png
    

    以下是上述两个命令的结果,并排:

    您可以使用 identify 来获取 mask-image.png 以及 black-mask.png 的几何:

    identify -format "%g\n" *mask*.png
      2322x4128+366+144
      2322x4128+366+144
    

    因此,图像画布宽2322像素,高4128像素 . 在我们的 -trim 操作之后,两个图像的可见部分当然都较小 . ( +366+144 部分表示距原始图像左上角的水平/垂直偏移 . )


    补充评论:说完这一切:你应该真正考虑从收据中创建更好的照片! (如果您的相机可以创建4128像素高度的图像,这应该不是问题 . 如果您要处理的收据太多,那么获得一块可以制作的小平板玻璃可能是个好主意 . 放在纸上,以便在拍摄时将其弄直...)

  • 0

    如果在类Unix系统上使用ImageMagick,您可以尝试我的文本清理脚本 .

    textcleaner -f 20 -o 10 -e normalize UhSV6.jpg result.jpg
    

    enter image description here

相关问题