我需要扫描许多尺寸非常相似但不完全相同的小物品。
我想做的是:
运行一个 Linux 命令行工具,以文件名作为参数,该工具运行扫描仪,直到整个扫描仪尺寸的约 10%,然后将图像裁剪为非白色的内容(正方形就可以了)。
有人知道这是否可行以及何时可行吗?
答案1
你需要的convert
是图像魔法。首先imagemagick
为您的发行版安装。在 debian 派生系统上运行此命令:
sudo apt-get install imagemagick
现在,如果您只想删除空格,请执行以下操作:
for image in $(find . -name "*png" | sed 's/.png//'); do convert -trim $image.png $image_trimmed.png; done
假设您的图像是 PNG,如果不是,请相应地更改上面的行。
如果你需要更精致的尺寸调整,请查看imagemagick 文档,你可以用它做任何你能想象到的事情。
因此,您的实际工作流程将是:
- 扫描您的图像并将其保存在同一个文件夹中。
- 在该文件夹中运行我上面给出的命令。
答案2
尝试添加-fuzz
:
-fuzz *distance*
该距离内的颜色被视为相同。
for image in $(find . -name "*png" | sed 's/.png//');
do convert -fuzz 255 -trim $image.png $image_trimmed.png; 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
答案4
我遇到了同样的问题:我有大量扫描的图片,正在寻找一种方法来裁剪矩形照片并丢弃白色区域。
这里或其他论坛列出的方法对我都不起作用。
离工作地点最近的是@anthony-o 回答通过使用multicrop
脚本。
但对于我的情况,我必须减少模糊;否则,它就会从图片中裁剪出部分图像。此外,我还必须添加修剪以避免出现噪点区域。(扫描仪、边框等造成的脏污)。这是我使用的命令:
./multicrop.sh -c 1600,2200 -p 20 Imagen.jpg extracted/out.jpg