ビットマップ内の破線や形状を見つけることができるアルゴリズムを見つけたいです。背面と白の 2 色 (塗り絵で使用される画像) のビットマップがある状況を考えてみましょう。相互に接続する必要がある曲線と線がいくつかありますが、スキャン エラーのために白いビットが代わりに配置されています。黒いものの。それらをどのように検出すればよいですか?(この作業の後、ビットマップをベクター ファイルに変換したい。potrace アルゴリズムを使用したい)。
何かアイデアがありましたら、お知らせください。
ビットマップ内の破線や形状を見つけることができるアルゴリズムを見つけたいです。背面と白の 2 色 (塗り絵で使用される画像) のビットマップがある状況を考えてみましょう。相互に接続する必要がある曲線と線がいくつかありますが、スキャン エラーのために白いビットが代わりに配置されています。黒いものの。それらをどのように検出すればよいですか?(この作業の後、ビットマップをベクター ファイルに変換したい。potrace アルゴリズムを使用したい)。
何かアイデアがありましたら、お知らせください。
小さなギャップを修復する簡単なアルゴリズムを次に示します。
まず、8 つの隣接ピクセルのいずれかが黒の場合に黒のピクセルを作成するフィルターを使用します。これにより、一般的なアウトラインが成長します。
次に、余分なアウトラインを削除する間引きフィルターを使用しますが、埋められたギャップはそのままにします。
いくつかのフィルターとパラメーターについては、この記事を参照してください: C# の画像処理ラボ
最も簡単な方法は、クロージングと呼ばれる形態学的手法を使用することです。これは、異なる線が互いにどれだけ接近しているかに比べて、線のギャップが非常に小さい場合にのみ機能します。
クロージングを実行する構造化要素をどのように選択するかによって、パフォーマンスが向上または低下する可能性もあります。
ウィキペディアの記事は非常に理論的 (または数学的) であるため、Google または画像処理に関する書籍を参照して、画像処理がどのように行われるかについてより良い説明を得ることができます。