1

私はいくつかのグラフィックス処理を行っており、エッジのあるビットマップがあり、文字からすべてのテーブルエッジを無視するロジックがあります。

0000000000
0111111110
0100000010
0102220010
0100200010
0100200010
0100000010
0111111110
0000000000

0-背景色
1-無視されたエッジ
2-必要なエッジ

私のロジックは単純です。連続するピクセルの数が特定のしきい値を超える場合、たとえば20ピクセルの連続するエッジの場合、それは線と見なされ、無視されます。

私の問題は、HやTなどの大きなフォントサイズや文字では、確実にしきい値を超えることです。表の行を文字から分離するために実装する必要のある、より良い方法または追加のロジックがあるかどうかをアドバイスしてください。

[更新]追加の考慮事項:パフォーマンス。このロジックは、タッチ移動(ドラッグ)中に使用されます。何度も呼び出されるので、高速である必要があります。

4

1 に答える 1

1

テーブルの線が細いことが保証されている場合は、太い線を無視してください。ただし、アプリケーションの線がエッジ検出(常に1ピクセルの細さ)によって生成される場合は、連結成分が必要になります。

基本的に、「厚さ」とは、エッジプロファイルから測定された厚さを指します。

  • 00000000100000000この線の太さは1です
  • 00000011111000000この線の太さは5です。ただし、エッジ検出アルゴリズムはこの状態を取り除くように特別に設計されているため、エッジ検出の出力では発生しません。
  • 00000000111111111これは黒から白への移行です。

テーブルラインは通常、厚みが薄いです。大きなフォントは、太さがエッジプロファイルウィンドウよりも大きいため、通常、黒から白に移行します。

于 2010-10-05T07:44:48.967 に答える