画像認識用のC++ライブラリの質問に対する受け入れられた回答:文字列への単語を含む画像は、次のことを推奨しました。
- 入力画像を300DPIにアップサイズ/ダウンサイズします。
これをどのように行うか...DPIは画像形式ではなく、モニター用であるという印象を受けました。
画像認識用のC++ライブラリの質問に対する受け入れられた回答:文字列への単語を含む画像は、次のことを推奨しました。
これをどのように行うか...DPIは画像形式ではなく、モニター用であるという印象を受けました。
ここでのより正確な用語はリサンプリングだと思います。正確な OCR をサポートするのに十分な高さのピクセル解像度が必要です。フォント サイズ (ポイントなど) は通常、ピクセルではなく長さの単位で測定されます。72 ポイント = 1 インチなので、300 dpi の解像度には 300/72 ピクセル/ポイントが必要です (「ピクセル/インチ」)。つまり、一般的な 12 ポイントのフォントの高さ (または、より正確には、シングル スペース テキストのベースラインからベースラインまでの距離) は 50 ピクセルです。
理想的には、画像内のフォントの高さが約 50 ピクセルになるように、ソース ドキュメントを特定のフォント サイズに適した解像度でスキャンする必要があります。解像度が高すぎる/低すぎる場合は、グラフィック プログラム ( GIMPなど)を使用して画像を簡単に再サンプリングできます。これは、多くのプログラミング言語用のインターフェイスを持つImageMagickなどのグラフィック ライブラリを使用してプログラムで行うこともできます。
DPI は、ピクセル単位の画像を画像サイズの物理デバイスに関連付ける場合は常に意味があります。OCR の場合、通常はスキャンの解像度、つまりスキャンの各インチで得られるピクセル数を意味します。12 ポイントのフォントは、1 行あたり 12/72 インチで印刷されることを意図しており、大文字はその約 80% を占める可能性があります。したがって、300 DPI でスキャンすると、高さは約 40 ピクセルになります。
多くの画像形式には、DPI が記録されています。画像がスキャンされた場合、これはスキャナーからの正確な設定である必要があります。デジタル カメラからの画像の場合、常に 72 DPI と表示されます。これは、EXIF 仕様で規定されているデフォルト値です。これは、カメラが画像の元のサイズを認識できないためです。画像処理プログラムで画像を作成する場合、DPI を任意の値に設定できる場合があります。これは、最終的な画像をどのように使用するかを指定するのに便利であり、画像に含まれる詳細には関係ありません。
画像のサイズ変更の詳細を尋ねる前の質問は次のとおり です。画像の高品質のスケーリングを行うにはどうすればよいですか?
OCRソフトウェアは通常、「通常の」フォントサイズで動作するように設計されています。画像の観点からは、これはおそらく30〜100ピクセルの高さの範囲の文字を探すことを意味します。はるかに高い解像度の画像は、OCRソフトウェアが効率的に処理するには大きすぎるように見える文字を生成します。同様に、低解像度の画像は、ソフトウェアが文字を認識するのに十分なピクセルを提供しません。
「これをどうやって行うか... dpi は画像形式ではなく、モニター用であるという印象を受けました。」
DPI は 1 インチあたりのドット数を表します。モニターとの関係は?さて、3 つの RGB サブピクセルで構成されるピクセルがあります。DPI が高いほど、そのスペースにより多くの詳細が詰め込まれます。
DPI は、ディスプレイや印刷には便利な測定値ですが、実際には何も役に立ちません...実際、画像形式自体には何もありません。
一部のフォーマット内で DPI がタグ付けされている理由は、デバイスにその解像度で表示するように指示するためですが、私が理解していることから、事実上すべてがその指示を無視し、特定の出力用に画像を最適化するために最善を尽くします.
画像形式で 72 dpi を 1 dpi または 6000 dpi に変更できますが、モニター上では何の違いもありません。「300dpiにアップサイズ/ダウンサイズ」は意味がありません。リサンプリングしても DPI は変わりません。Photoshop で試してみて、DPI を変更するときに [再サンプル] のチェックを外しても、何の違いも見られません。大きくも小さくもなりません。
DPI は、画像形式、IMO ではまったく意味がありません。
目標が OCR である場合、DPI は、元のスキャンされたドキュメントの各インチに対する画像のドット数として意味があります。dpi が低すぎると、情報が永久に失われ、バイキュービック補間でさえ、それを回復する素晴らしい仕事にはなりません。dpi が高すぎると、ビットを簡単に捨ててしまいます。
仕事を終わらせるために; 私は netpbm/pbmplus ツールセットの大ファンです。開始するツールは ですpnmscale
が、ビットマップがある場合は、 などの関連ツールを検討する必要がありますpbmreduce
。