bugfix> python > 投稿

今日では、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 ++のソースコードを調べましたが、すべてがうまくいくようです。ラッパーコードに問題があると思いますか?!

ベスト、

マヌエル

回答 1 件
  • マスクはテンプレート画像と交差しません。画像はガウス分布でフィルタリングされますが、マスク領域のソーベル強度はしきい値よりも低くなります(デフォルトは55)。そのため、成功することはできません。 しきい値を下げることも、マスクを付けないこともできます。

あなたの答え