フォーム画像から特定のフィールド境界線をドロップアウトするシステムを作成しています。フィールドには、手書きがフィールドの境界を越えても正しく保持する必要がある書き込みが含まれている場合があります。
2 つの画像があります: 1 つのカラー画像 (HSV 色空間に変換) と 1 つの白黒画像 (これらはスキャナーによって生成されます)。
カラー画像の色を考慮して、白黒画像からフィールド境界ピクセルを削除 (摘み取り) したいと思います。
私は、フィールドの正確な位置と、フィールドの境界線の幅/高さをアプリオリに知っているという利点があります。
私の現在の実装は、(フィールドごとに)カラー画像のフィールド境界をスキャンし、そのフィールド境界の平均HSV値を計算することで構成されています(フィールド境界がどこにあるかを正確に知っているため、「フィールド境界」ピクセルのみにアクセスしますが、また、フィールドの境界を越える場合は、いくつかの手書きピクセルにアクセスすることもあります。これは、平均をあまり歪めないという考えによるものです)。フィールド境界の「平均」HSV 値を取得したら、フィールド境界を再度スキャンし、ピクセルごとに次のデルタ関数を計算します。
「現在の」ピクセルと平均 HSV の間のデルタ値が 0.07 未満 (経験的に判明) の場合は、ピクセルを白に設定し (色が互いに接近している)、それ以外の場合はピクセルを黒のままにします。
フィールドの例を次に示します。
カラー画像: 白黒画像 非ドロップアウト: ドロップアウトされた白黒画像 式で彩度が使用されていない場合: 実際のドロップアウトされた白黒画像 数式が完全に使用されている (H、S、および V の 3 つのコンポーネントすべてを使用)
3番目のドロップアウト画像を取得するために使用している式は上記の式ですが、式から彩度を除外しました(私はちょうど物事をいじっていました)。
これは明らかに色の変化に対して十分に繊細ではありませんが、式は彩度の変化に非常に敏感です (これは主に、画像内に存在する JPEG 圧縮のアーティファクト (アーティファクトの例) によって引き起こされます)。
4 番目の例は、色の変化に非常に敏感であるため、手書きを削除する可能性が低いため、最適だと思いますが、問題は、単純なスキャンまたは圧縮アーティファクトによって生じるわずかな色の違いにより、境界線を拾いやすくなることです。 .
フィールドの境界内で発生する色 (彩度) の変動の一部を緩和するために、ヒストグラムを使用することについてどうお考えですか? ビンの数を減らすために量子化が含まれていますか?
私は人々が持っているアイデアを聞きたいです。
ありがとうございました。