我有很多扫描图片(> 500 张),其中大部分都是用不完全正方形的纸张扫描的。它们需要旋转 1-5 度才能再次对齐。
有没有什么软件可以做到这一点?我知道有些扫描仪驱动程序可以,但我的似乎不行。
更新:看来我想要的东西可能是图像配准软件。
答案1
Imagemagick可以进行批处理,包括旋转。当然,您需要知道哪些图像需要多少度(1-5 度)的旋转。您可以先将所有图像旋转 1 度,然后再检查 1 度,或者一开始就检查所有图像,然后放入旋转度的文件夹中。
-rotate degrees{<}{>} 对图像应用 Paeth 图像旋转(使用剪切操作)。
仅当图像的宽度超过高度时,才使用 > 来旋转图像。仅当图像的宽度小于高度时,才使用 < 来旋转图像。例如,如果您指定 -rotate "-90>" 并且图像大小为 480x640,则图像不会旋转。但是,如果图像为 640x480,则图像会旋转 -90 度。如果您使用 > 或 <,请将其括在引号中,以防止被误解为文件重定向。
答案2
您可以在 python 中使用 deskew 包。
- 安装包
pip install deskew
- 用它
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))
答案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