今日では、OpenCVの一部であるlinemodアルゴリズムを使用しようとしています。以前のC ++プロジェクトでは、すでにlinemodと ドキュメントに記載されているように動作しますが、今回は試してみます Python APIを使用します。
ここで私のアプローチ:
import cv2
template = cv2.imread('path_to_template')
lineModDetector = cv2.linemod.getDefaultLINE()
print(len(lineModDetector.getModalities()))
mask = cv2.bitwise_not(template)[:,:,1]
ret, boundingBox = lineModDetector.addTemplate([template], "circle", mask)
print(ret)
print(boundingBox)
テンプレート画像:
テンプレート画像
しかし、テンプレートを追加しようとすると、常に失敗します。誰かがそれを期待どおりに機能させる方法を知っていますか?私はすでにC ++のソースコードを調べましたが、すべてがうまくいくようです。ラッパーコードに問題があると思いますか?!
ベスト、
マヌエル
関連した質問
- ColabでGDriveから画像を読み取るときにFileNotFoundエラーが発生しました
- Python:OpenCVのread()を理解する
- cv2ellipse図内の色を塗りつぶす方法は?
- OpenCV透かしは常に白で表示されます
- OpenCVaddweightはオーバーレイを描画しません
- 行列のpythonnumpy二乗が機能しない
- unindentは、FaceAppのどの外側のインデントレベルとも一致しません
- カメラの本質からの物理的な距離とカメラの距離を取得します
- OpenCVを使用して画像の中央のオブジェクトのみを取得するにはどうすればよいですか?
- TypeError:Pythonでmssライブラリを使用して引数 'mat'にPtr が必要です
マスクはテンプレート画像と交差しません。画像はガウス分布でフィルタリングされますが、マスク領域のソーベル強度はしきい値よりも低くなります(デフォルトは55)。そのため、成功することはできません。 しきい値を下げることも、マスクを付けないこともできます。