检测空白图像文件

Thi*_*kel 8 linux scanning image-processing imaging

我正在使用scanimage支持双面扫描的文档扫描仪(佳能 DR-2510C)。不幸的是,它的 SANE 驱动程序不支持空白页检测,因此对于混合页面(单面/双面),空白页会进入扫描结果。

我想在对扫描输出进行后处理时自动去除那些空白页,因此我正在寻找一种命令行工具,该工具能够检测 TIFF 或 PNM 文件是否主要由白色像素组成)。

有任何想法吗?


这是我根据 lesmana 的回答提出的解决方案:

for i in "${DEST_DIR}/out"*.pnm; do
  histogram=`convert "${i}" -threshold 50% -format %c histogram:info:-`
  white=`echo "${histogram}" | grep "white" | sed -n 's/^ *\(.*\):.*$/\1/p'`
  black=`echo "${histogram}" | grep "black" | sed -n 's/^ *\(.*\):.*$/\1/p'`
  blank=`echo "scale=4; ${black}/${white} < 0.005" | bc`
  if [ ${blank} -eq "1" ]; then
    echo "${i} seems to be blank - removing it..."
    rm "${i}"
  fi
done
Run Code Online (Sandbox Code Playgroud)

ama*_*bhu 5

使用此处给出的 ImageMagik CLI的识别功能:

http://www.imagemagick.org/script/identify.php

使用命令:

$ identify -format "%#" source.png

如果颜色数为 1,则为空白页。

您也可以使用以下命令:

identify -verbose source.png

空白图像的标准偏差、偏斜和峰度将为 0。

  • `%#` 返回图像的计算哈希值,它应该是 `%k` imho。 (2认同)

les*_*ana 0

您可以使用ImageMagick比较工具将扫描图像与“主”空白页进行比较。由于我的 ImageMagick-fu 非常有限,我无法给您任何示例命令。您将必须RTFM

第二个链接甚至有一个标题为“空白传真”的部分,其中解释了如何检测空白传真页。遗憾的是,该部分似乎尚未完成。希望可用的信息足以让您开始。