使用ImageMagick删除收据图像边框

San*_*rma 5 ruby ocr tesseract imagemagick image-masking

在使用tesseract-OCR引擎提取文本之前,我正在使用ImageMagick服务预处理收据图像.我需要删除收据的背景.我已经通过掩蔽来移除这里的边界.但是我无法为收据创建掩码.

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

初始图像(示例收据)

在此输入图像描述

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

应用代码后:

在此输入图像描述

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

convert receipt.jpg -fill black -fuzz 20% +opaque "#ffffff" black_border.jpg
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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

Kur*_*fle 1

回答你的问题

“有什么方法可以去除收据图像的边框吗?或者从图像中创建任何类型的蒙版?

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

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

您可以使用该蒙版图像来创建单色(黑色)蒙版 - 通过一个命令:

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
Run Code Online (Sandbox Code Playgroud)

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

 

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

identify -format "%g\n" *mask*.png
  2322x4128+366+144
  2322x4128+366+144
Run Code Online (Sandbox Code Playgroud)

因此图像画布的宽度为 2322 像素,高度为 4128 像素。根据我们的操作,两张图像的可见部分当然较小-trim。(该+366+144部分表示相对于原始图像左上角的水平/垂直偏移。)


附加评论:话虽如此:您真的应该考虑从收据中创建更好的照片!(如果您有一台可以创建 4128 像素高度图像的相机,这应该不是问题。如果您像您所说的那样有这么多收据需要处理,那么购买一个小平板玻璃可能是个好主意,您可以放在纸张上,以便在拍照时将其拉直......)