この位置ずれには主な理由があります。スキャン プロセス、ドキュメントの画像は通常の画像とは大きく異なります。
説明: スキャン中、画像は量子化されます。この量子化ステップでは、常にドキュメントの異なるサンプリングが行われます。つまり、一部の黒いピクセルが白で、その逆になる場合があります (ただし、肉眼ではわかりません)。
それに加えて、スキャン オプションが異なる場合があります。つまり、dpi やビット深度が異なります。
また、スキャナーも異なる場合があり、量子化プロセスが異なるため、ミスマッチが大きくなります。
最後に、主な問題はストレッチです。見えないかもしれませんが、スキャンされたすべてのドキュメントには、フィーダーまたは - ご想像のとおり - クオンタイズによる伸縮があります。このストレッチは画像ごとに異なり、単一の画像全体で均一ではありません。画像がわずかに歪んでいる場合、ストレッチは斜めに行われているため、異なる画像で dpi が均一ではなく、1 つの画像で dpi が均一ではなく、どの画像でも dpi の変化がその方向で均一ではありません。
上記のすべてにより、ある画像を別の画像の上に完全に配置することはほとんど不可能です. デスキュー、およびアンカリング メカニズムによる変換 (ここで説明するには長すぎる別のトピック) が役立つかもしれませんが、上記を達成するには 2 つの方法しかありません。
- 位置合わせ後にモルフォロジカル オープニングを適用します。浸食に続いて拡張します。上記のカーネルのサイズを画像のサイズとdpiに一致させる必要があるなどの問題が発生します。そうしないと、一部の文字が読めなくなります。また、画像内のコンテンツのサイズが異なる場合は、ゾーニング分析とブロブ検出を行って、画像のどの部分でどのサイズのカーネルを実行する必要があるかを把握してから、一般的な平滑化を適用する必要があります。(この方法は強くお勧めしません)。
- ドキュメントのドキュメント分析を行います。つまり、これがどのタイプのフォームであるか、フォームには各パーツの座標とサイズが設定されていることがわかります。最初の位置合わせを行った後、塗りつぶされたイメージの部分のサイズを変更して、元の部分と一致させます (塗りつぶしアルゴリズムによるオブジェクトの分離が必要です)。
いずれにせよ、これは簡単な作業ではないことがわかります。実際、これはドキュメントの画像処理と認識において最も困難な作業の 1 つです。