Saya menggunakan scanimage
dengan pemindai dokumen (Canon DR-2510C) yang mendukung pemindaian dupleks. Sayangnya, driver SANE-nya tidak mendukung deteksi halaman kosong, sehingga dengan halaman campuran (satu / dua sisi), halaman kosong membuatnya menjadi hasil pemindaian.
Saya ingin secara otomatis menghapus halaman kosong tersebut ketika memposting pemrosesan hasil pemindaian, jadi saya mencari alat baris perintah yang dapat mendeteksi apakah file TIFF atau PNM sebagian besar terdiri atas piksel putih).
Ada ide?
Ini adalah solusi yang saya buat berdasarkan jawaban oleh 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
linux
scanning
image-processing
imaging
Thilo-Alexander Ginkel
sumber
sumber
Jawaban:
Anda dapat menggunakan alat perbandingan ImageMagick untuk membandingkan gambar yang dipindai dengan halaman kosong "master". Karena ImageMagick-fu saya sangat terbatas, saya tidak bisa memberikan Anda contoh perintah. Anda harus RTFM :
Tautan kedua bahkan memiliki bagian berjudul "Blank Fax" yang menjelaskan cara mendeteksi halaman faks kosong. Sayangnya bagian itu tampaknya belum selesai. Semoga informasi yang tersedia cukup bagi Anda untuk memulai.
sumber
Gunakan fitur identifikasi ImageMagik CLI seperti yang diberikan di sini:
http://www.imagemagick.org/script/identify.php
Dengan perintah:
$ identify -format "%#" source.png
Jika jumlah warna adalah 1, Anda memiliki halaman kosong.
Anda juga dapat menggunakan perintah:
identify -verbose source.png
Simpangan baku, kemiringan, dan kurtosis akan menjadi 0 untuk gambar kosong.
sumber
%#
mengembalikan nilai hash yang dihitung untuk gambar, itu harus%k
imho.Versi kode yang sedikit lebih baik dalam pertanyaan:
Perubahan:
a.pnm
, menggunakantouch .a.pnm
)sumber
Trik saya adalah memindai gambar ke format terkompresi tanpa kehilangan (tiff + kompresi). Dengan cara ini, halaman kosong memiliki ukuran file yang jauh lebih rendah dan saya dapat mendeteksinya
find
, memindahkannya ke direktori lain, memeriksanya dengan cepat dengan pemirsa dan kemudian menyingkirkannya.sumber
Anda dapat melakukan trim berisik dengan ImageMagick , misalnya:
Halaman tidak kosong jika orang yang dikonversi mencetak sesuatu seperti ini:
(contoh input adalah gambar lineart pindai 600 dpi DIN A4)
Kosong jika tinggi / lebar setelah pemangkasan kecil, misalnya:
Berbeda dengan metode ambang batas histogram, ini menghasilkan lebih sedikit false-positif ketika Anda memiliki halaman yang hanya berisi kata atau satu baris teks. Dengan ambang-histogram, halaman tersebut dapat dideteksi secara salah sebagai kosong.
Melihat ukuran file gambar terkompresi, yaitu sebagai perkiraan entropi, menghasilkan positif palsu yang sama.
Di sisi lain, dokumen dengan perforasi tetapi jika tidak, kemungkinan tidak terdeteksi sebagai kosong hanya dengan trim berisik. Jika Anda peduli dengan itu, mungkin masuk akal untuk memberitahu ImageMagick untuk memangkas ruang margin tanpa syarat, terlebih dahulu. Misalnya, jika gambar dipindai dengan 600 dpi dan Anda ingin mengabaikan margin 1 inci di sekitar:
sumber
%k
harus digunakan untuk format, karena mengembalikan:Pemakaian:
Sumber: https://imagemagick.org/script/escape.php
sumber