0

私はOpenCVを初めて使用し、画像内の壊れたまたはひびの入ったビスケット(本来あるべき完全な円ではないもの)を数えて見つけようとしています。

どのような戦略に従うべきですか?

どんな提案でも、私の心を開くのに役立ちます。よろしく。

4

1 に答える 1

2

あなたの質問は非常に抽象的なものです (画像を提供していただけると助かります) が、私はそれに答えることができます。

まず、イメージ上のすべての busquitを検出する必要があります。これを行うには、画像でビスケット色(目的にはHSV 色空間の方が適している可能性があります) を見つけ、入力画像を単一チャネル画像 (または行列) に変換する必要があります。この行列の各要素は次のようになります。

  • このピクセルが bisquit に属する場合は1 (または 255)
  • そうでない場合は0

[OpenCV 関数inRangeは、このような変換を行うのに役立つ場合があります。]

ビスケットが検出されると、次のことができます。

  1. 通常のビスケットを検出するには、 HoughCirclesを使用します(通常のビスケットが丸い場合)
  2. 各ビスケットの輪郭を見つけ( findContoursを見てください)、相互相関または他の方法(ユークリッド距離など)を使用して、各輪郭を通常のビスケット(丸くない場合)と比較します。

また、HoughCircle チュートリアルを参照して、画像に他の円 (ビスケットを除く) が含まれていない場合に円のみを検出します。

于 2012-06-16T13:12:04.080 に答える