6

C#で文字(OCR)から生成された線の終点を検出する予定です。私はこのようなものが欲しい:

ここに画像の説明を入力

「エンドポイント」とは、文字の任意の行の終わりを取得したいということです...たとえば、「C」には、上の画像に示されているように、2 つのエンドポイント (上部に 1 つ、下部に 1 つ) があります。赤いピクセルとして。「より太い」既存のスキャンされた文字から単一の行を抽出できます。エッジ検出と塗りつぶし分析も実行できますが、上記を再現できないようです! 記事や既存のコードへのポインタは大歓迎です! C++ または任意の .NET 言語を C# に簡単に変換できるため、どのコード サンプルでも問題ありません。

ありがとう、ジョシュ

4

2 に答える 2

1

「エンドポイント」の定義がまだないため、次のことをお勧めします。

  • すべての隣接点 (つまり、マンハッタン距離 <= 3 の黒点) が 45 度未満の扇形にある場合、黒点は端点です。

隣接する各黒点への角度を見つけることはそれほど難しくありません。これらの角度を並べ替えて範囲を見つけることも難しくありませんが、不連続性 (角度が突然 360 度変化する場所) に注意する必要があります。実際に角度を計算せずに勾配でソートする方が少し速いかもしれません。早期終了ロジックを使用すると、さらに高速化できます。

于 2012-04-18T00:01:30.077 に答える