自动恢复扫描照片边缘的垂直度

自动恢复扫描照片边缘的垂直度

我想扫描一组矩形照片,包括彩色和黑白。我总体上对扫描非常满意,但我遇到了一些实际问题,因为照片是手动放置的,可能与扫描画布(或扫描仪的边缘)没有很好地对齐

我假设我的照片已被扫描到包含我想要的矩形图片的白色背景矩形中,可能未与白色矩形的边缘对齐。

是否有一个应用程序(最好在 Linux 上运行)可以自动旋转扫描,使图片边缘水平/垂直?如果它也裁剪掉周围的白色背景,那就更好了(尽管适当的 Unix 设计可以解决这个问题)。

我知道如何与 Gimp 一起手动完成此操作,用眼睛检查旋转。但我想让它自动完成。

为了使实际图像更清晰:鉴于下面的第一张图像具有不规则的白色边框,我想自动提取第二张图像,没有任何周围的白色。

在此输入图像描述               在此输入图像描述

注意:我必须添加虚线来显示第一个图像的边缘。如果您想测试自动提取的建议解决方案,您应该 使用此图像

答案1

听起来您正在寻找图像魔术师。这通常是默认安装在许多更流行的发行版中的。如果没有,您可以使用发行版包管理器来安装它。

正常图像旋转

$ sudo yum install ImageMagick

-or-

$ sudo apt-get install ImageMagick

ImageMagick 包含许多 CLI 工具,其中之一是convert.使用convert你可以像这样旋转图像:

$ convert -rotate "90" in.jpg out.jpg

还有更多关于使用的示例convert 这里。 ImageMagick 附带的其余工具可以进行图像编辑、缩放和注释。

纠偏

另一种用于旋转通常在垂直或水平方向上稍微偏离的图像的方法称为歪斜校正。

来自ImageMagick 在线命令行选项帮助:

-deskew threshold{%}
straighten an image. A threshold of 40% works for most images.

Use -set option:deskew:auto-crop true | false to auto crop the image.

要使用此选项,您需要使用convertCLI 工具,它是另一个 ImageMagicks CLI 工具:

 $ convert skewed.jpeg -deskew 40% not_skewed.jpg

参考

答案2

我最近需要将胶片相机拍摄的 500 多张照片数字化。并需要自动修剪和自动旋转它们。

这些参数对我来说效果更好:

convert myFile.jpg -fuzz 30% -trim +repage -deskew 40% cropped_file.jpg

如果您想将其应用到整个文件夹,请执行以下操作:

mkdir cropped
for i in `ls *.JPG`; do convert $i -fuzz 30% -trim +repage -deskew 40% cropped/`basename $i JPG`jpg; done

答案3

通过阅读这篇博文, 我发现这个 bash 脚本它使用图像魔术师:下载它,chmod +x然后我设法使用以下命令旋转和裁剪我的扫描照片:

multicrop -c 50,50 -f 40 -d 50 scanned_photo_in.jpg extracted_photo_out.jpg
  • -c 50,50是从 50,50 处的像素检测背景颜色(默认为 0,0)
  • -f 40是“以百分比表示的分离背景颜色的模糊值”(默认值为 10)
  • -d 50将丢弃任何宽度或高度小于此大小的区域(默认为不丢弃任何内容)

下面是一个 bash 脚本,用于对当前文件夹中的任何 jpg 文件运行此命令,并将提取的照片放入extracted子文件夹中:

mkdir extracted; for PHOTO in *.jpg; do multicrop -c 50,50 -f 40 -d 50 $PHOTO extracted/$PHOTO; done

相关内容