私の友人は中国語の手書きの色付きの画像を持っています(基本的には彼が白い紙に書いたものを写真に撮ったりスキャンしたりして)ので、白黒のバイナリイメージに変換してほしいです。Ubuntuでそれを実現できるアプリケーションはありますか?
画像の例を次に示します。
私の友人は中国語の手書きの色付きの画像を持っています(基本的には彼が白い紙に書いたものを写真に撮ったりスキャンしたりして)ので、白黒のバイナリイメージに変換してほしいです。Ubuntuでそれを実現できるアプリケーションはありますか?
画像の例を次に示します。
回答:
必要なものは、画像処理では「しきい値」と呼ばれます。基本的に、入力として画像を取得し、黒に設定された特定のしきい値未満の値を持つすべてのピクセルと、白に設定されたしきい値を超えるすべてのピクセルを持つ画像を出力します。これにより、任意の入力画像から白黒画像が得られます。
一般に、より予測可能な結果を得るために、最初にグレースケールに変換する必要がありますが、フルカラーイメージのしきい値を設定することもできます。
GIMPなどのグラフィカルツールを使用してこれをインタラクティブに行うことができます(メインメニュー->色->しきい値からツールを見つけることができます)、またはImageMagickを次のように使用できます。
convert colored.png -threshold 75% thres_colored.png
サンプル画像で上記のコマンドを実行すると、次の結果が生成されます。
多くの場合、しきい値処理は満足のいく結果を得るための試行錯誤のプロセスであるため、特にソースイメージが既に白黒にあまり近くない場合は、可能であればGUIアプローチをお勧めしますが、これは、何らかの理由でコマンドラインからも実行できるオプションではありません。出力をより細かく制御するには、まずカラーカーブ、レベル、コントラストなどのツールを使用して、しきい値処理する前に画像の明るい部分と暗い部分をより適切に分離します。(実際には、しきい値はカラーカーブツールを使用する極端なケースと見なすことができます。)
-channel
オプションを参照)ピクセルの何らかの「値」に適用され、計算されますすべてのチャンネルから。これが、より予測可能な結果を得るために、最初にグレースケールに変換したいと言った理由です。(私の編集も参照してください。)
ImageMagickの -monochromeは、スマートディザリングを使用するオプションであり、出力-threshold
を人間が使用する場合よりもはるかに見やすくします。
convert -monochrome signature.png out.png
このような単純なイメージでは大きな違いはありませんが、大きなイメージでは印象的です。
netpbm
ツールキットを使用してこれを簡単に行うこともできます。
anytopnm inputfile | ppmtopgm | pgmtopbm > outputfile
ppmtopgm
グレースケール画像にpgmtopbm
変換し、白黒画像に変換してから、出力をファイルにリダイレクトします。pbm形式になります。より一般的なものが必要な場合は、出力コンバーター(pnmtopng
または、そのようなもの)を追加する必要があります。