-1

MATLAB または C++ で最適化された 4 連結性または 8 連結性連結成分ラベリングのソース コードを探しています。MATLAB での連結成分ラベル付け (4 連結性) の多くの実装を見てきました。

より高速に動作する実装の 1 つは、ここで説明されている再帰的な実装です: http://www.mathworks.com/matlabcentral/fileexchange/38010-connected-component-labeling-like-bwlabel

MATLAB には、はるかに最適化された組み込みの bwlabeln または bwlabel があります。彼らは、Addison-Wesley の Sedgewick の Algorithms in C で説明されている 2 パス アルゴリズムの union-find メソッドを使用すると主張しています。ただし、そのソースコードを見つけるのは困難です。誰かがそれについて考えていますか?最適化されたコードが本当に必要です。

4

1 に答える 1

1

スキャンライン順に画像をスキャンし、コンポーネントのシードを満たすときに実際に作業することができます。

Graphics GEMS 1 には、2 つの効率的な (そして非常に類似した) アルゴリズムがあります。

  • シード フィル アルゴリズム、ポール S. ヘックバート

  • フレーム バッファ内の領域を埋める、Ken Fishkin

少し努力して、いくつかの実装を行います。(これらの論文は、翻訳しやすい Pascal に似たコードを提供しています。)

それらは線形時間で実行され、明示的なスタックを使用し、union-find を必要としません。

于 2016-04-08T22:45:55.723 に答える