私はコピー機やスキャナーを持っていないので、8メガピクセルのカメラを使ってドキュメントをコピーしています。これは、後で多くの処理が必要になることを除いて、かなりうまく機能します。写真からビットマップに変換したいのですが、
djpeg -grayscale -pnm photo.jpg |
pgmtopbm -threshold -value XXX
次の2つの理由により、うまく機能しません。
XXXがどうあるべきかを推測するのは難しいですし、XXXは写真によって異なります。
照明はさまざまであり、単一のしきい値が画像に適切でない場合があります。
どうすればもっとうまくできますか?理想的な解決策は、Linuxで実行できる完全自動のコマンドラインプログラムです。 (私はすでに画像の端から暗いピクセルを削除するプログラムを書いています。)
注:私は本当にビットマップが必要です。これは白黒のピクセルです。グレースケールもディザリングもありません。
-monochrome
このオプションは、いくつかのスマートディザリングを使用し、非常に目に見える出力を生成します。
convert -monochrome in.png out.png
ドキュメント: http://www.imagemagick.org/Usage/quantize/#monochrome
それをより単純な-threshold 50
変換と比較してください。
convert -threshold 50 in.png out.png
画像のほとんどが失われます。
具体的な例: https://www.nasa.gov/mission_pages/galex/pia15416.html
wget -O orig.jpg http://www.nasa.gov/images/content/650137main_pia15416b-43_full.jpg
# Downsize to 400 height to have a reasonable file size for upload here.
convert orig.jpg -resize x400 in.jpg
convert -monochrome in.jpg out.jpg
convert -threshold 50 in.jpg threshold-50.jpg
in.jpg
out.jpg
しきい値-50.jpg
関連する質問:
Ubuntu 19.10、ImageMagick6.9.10でテスト済み。
私が3年間で見つけた最高のものは、 potrace に付属しているmkbitmap
プログラムです。
カメラをチェックしてください。最新のデジタルカメラの多くには、白黒写真を直接撮影する機能があります。
グレースケール/彩度低下に変換すると、ほとんどのノイズも保持されます。 GIMPには、ノイズを除去するしきい値フィルター([カラー]メニューの下)があり、線画や無地の黒のスキャンテキストに非常に適しています。
私は自分でバッチスクリプトを作成することにあまり慣れていませんが、しきい値を使用することをお勧めします。
編集:あなたはタグとしてLinuxを持っているので、 Phatch 、バッチ写真操作を見てください。コントラストと明るさを調整するためのフィルターもあります。それはUbuntuリポジトリにあります(そのディストリビューションを使用する場合)
どうやら、Gimpはいくつかの コマンドラインバッチ処理 をサポートしています。彩度を下げると、画像の明るさが変化しても期待どおりに動作する可能性があるため、そのショットを与えることができる場合があります。