[OpenCV]円の検出はハフ変換より最小外接円がいいぞ

   2018/05/28

赤いボールを検出しようとした話。

巷ではハフ変換を使った方法がある。
これ説明するのは難しいけど、この辺がわかりやすいかな。↓↓

でも、ハフ変換は処理が重い上に精度が悪い。なーんかもたつくし、できたとしても検出された円の大きさが安定しない。

なんだかなぁと思っていると、経験ある友達が「最小外接円を使った方がいい」と教えてくれた。
実際使ってみたところ、はるかに精度いい(厳密には違うが)しスムーズだった。
「精度がいい」というよりは、円を検出してるわけじゃないから認識が簡単になっていて、精度よく検出できているように感じる、と言った方が正確かな。

デモの画像を…と思ったけど手元にボールがなかったので、スマホにボールを表示させてそれを認識させてみた。
悪くないでしょう?

もちろん場合によってはハフ変換が最適な場合もあると思うけど、今回は赤いボール1つだけ検出できればよかったから、最小外接円方式で十分快適だった。

検出に使うコード例を下に置いておく。

みんな、最小外接円、使おうぜ!

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。

15 − four =

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください