私のアプリケーションは、コインを検出することです。私はそのほとんどを OpenCv を使用して行いました。CannyDetection と houghTransform を使用して画像の円を検出しています。
しかし、コインの正しい円を取得していません。thresoldValues が cannyEdgeDetector に渡されることに問題があると思います。コインの円を検出するためのしきい値を選択する方法を教えてください。
ありがとう、スリニバス
私のアプリケーションは、コインを検出することです。私はそのほとんどを OpenCv を使用して行いました。CannyDetection と houghTransform を使用して画像の円を検出しています。
しかし、コインの正しい円を取得していません。thresoldValues が cannyEdgeDetector に渡されることに問題があると思います。コインの円を検出するためのしきい値を選択する方法を教えてください。
ありがとう、スリニバス
問題の画像を投稿すると、回答が簡単になります。ただし、1 つのアイデアは、cannyEdgeDetector によって出力された輪郭の循環ハフ変換です。これにより、不適切なしきい値の感度が低下します。
しきい値を選択するには、多くのことを考慮する必要があります..
まず、Canny は、ヒステリと非最大抑制に 2 つのしきい値を使用します。1つは低しきい値、もう 1 つは高しきい値です。一般に、高しきい値が低しきい値の 2 倍になるように選択することをお勧めします。
Lower Threshold -- マグニチュードがそれより小さいエッジは抑制されます
より高いしきい値-- より大きいマグニチュードを持つエッジが保持されます
また、Low と High の間のエッジは、高いしきい値のエッジ ポイントにある/接続している 場合にのみ保持されます。
高しきい値と低しきい値の選択は、エッジの強度に完全に依存します。境界が明るいコインがある場合は、80 と 160 を選択できます。ただし、コインのエッジの強度が低い場合は、低しきい値の場合は 30 ~ 50、高しきい値の場合は 60 ~ 100 などの値で十分です。
もう 1 つ付け加えておきたいのは、低いしきい値を選択すると、余分な不要なエッジも発生しますが、コイン エッジの強度がその大きさである場合は、低いしきい値を選択する必要があるということです。