スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[OpenCV] ラベリングライブラリの比較

OpenCVのラベリング処理について調べてみました
OpenCVにはラベリング処理が入っていないみたい。

でも、フリーで幾つかライブラリが提供されているみたいです。
なので、ラベリング処理のライブラリを簡単に2つほど紹介します。

ちなみに環境はVC++です。


cvBlobsLib

"OpenCV labeling"で調べるといっぱい出てくるので、標準っぽいものです。
cvBlobsLibからダウンロードします。
私が使ってみた感想を書きます。
あんまり詳しく見ていないので(というか英語じゃないから見れない。。。)
間違ってたらすみません。

  • 英語じゃない(ちょっと英語)

  • VCでビルドし、インクルードできる。

  • 処理は速い。(計測値は出せませんが、速いと思います)

  • 結構簡単に書ける。

  • ラベリングされたオブジェクトの最大、最小、中心のXYが取れます。

  • ラベリングのポイントリストが取れない


とこんな感じです。
私としては、ラベリングのポイントリストを取って色々処理をしたかったので、
取れなかったことが残念ですが、FillBlob()という関数で、ラベリング値毎に
色付けできるので、一度色付けした後、その色を取り出すという処理、、、
をすればいいのかと。。。 (File I/Oも入るし、かなり二度手間、、、)



Labeling.h

これは、日本の方が作っているものです。
OpenCV/ラベリング
ラベリング手法
で紹介されている方だと思います。(ただしurlが変わっているようです)
ここのサイトから、ダウンロードできます。
使ってみた感想ですが、

  • 日本語だからやりやすい

  • VCで使える。

  • ヘッダを追加するだけなので直ぐ使える。

  • 親切なサンプルがある。(これは嬉しい)

  • ソースコードが読みやすい。(変にオブジェクト化していない)

  • ラベリングリストも取れる(結果が親切w)

  • IplImage渡しではないので、処理が面倒


とこんな感じです。
unsigned charのバッファに二値画像の値を入れて処理を行うため、ちょっと面倒です。
速度については調べていませんが、一度画像を読込み、バッファに入れ込む処理を考えると、ループが2つ増える印象を受けます。
しかし、使いやすさは、多少面倒な前処理、後処理が入りますが、処理が把握しやすいため、cvBlobsLibより使いやすい印象を受けました。


ということで、サポートやライセンスは、どちらも同じようなものなので、
私としては、Labeling.hを使ったほうがいいと思いました。
(構造がわかりやすいですし、バグがあっても修正が簡単そうなので)


終わり。







スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

名前 :ss_9
紹介 :
20代はエンジニア、30代はプロ、40代は管理、50代は人脈。

Twitterボタン

最新記事
カテゴリ
AD
月別アーカイブ
RSSリンクの表示
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。