如何轻松校正扫描图像中的轻微旋转错位

如何轻松校正扫描图像中的轻微旋转错位

我有很多扫描图片(> 500 张),其中大部分都是用不完全正方形的纸张扫描的。它们需要旋转 1-5 度才能再次对齐。

有没有什么软件可以做到这一点?我知道有些扫描仪驱动程序可以,但我的似乎不行。

更新:看来我想要的东西可能是图像配准软件。

答案1

Imagemagick可以进行批处理,包括旋转。当然,您需要知道哪些图像需要多少度(1-5 度)的旋转。您可以先将所有图像旋转 1 度,然后再检查 1 度,或者一开始就检查所有图像,然后放入旋转度的文件夹中。

-rotate degrees{<}{>} 对图像应用 Paeth 图像旋转(使用剪切操作)。

仅当图像的宽度超过高度时,才使用 > 来旋转图像。仅当图像的宽度小于高度时,才使用 < 来旋转图像。例如,如果您指定 -rotate "-90>" 并且图像大小为 480x640,则图像不会旋转。但是,如果图像为 640x480,则图像会旋转 -90 度。如果您使用 > 或 <,请将其括在引号中,以防止被误解为文件重定向。

答案2

您可以在 python 中使用 deskew 包。

  1. 安装包
pip install deskew
  1. 用它
import numpy as np
import skimage
import deskew


image = skimage.io.imread('input.jpg')
grayscale = skimage.color.rgb2gray(image)
angle = deskew.determine_skew(grayscale)
rotated = skimage.transform.rotate(image, angle, resize=True) * 255
skimage.io.imsave('output.jpg', rotated.astype(np.uint8))

https://github.com/sbrunner/deskew

答案3

Imagemagick 现在有一个deskew命令可以自动检测旋转量。它还可以选择修剪矩形边界框外旋转的部分。

此示例命令是一个很好的起点:

convert input.png \
    -background black \
    -deskew 60% \
    -background black \
    -define trim:percent-background=0% \
    -fuzz 1% \
    -trim-rotate 180 \
    +repage \
    output.png

相关内容