web-dev-qa-db-ja.com

opencv 3.0.0-dev pythonバインディングが正しく機能しない

私はubuntu 14.04.02にいますが、python、cython、numpyをインストールして更新しています。オープンcvの最新ソースを http://github.com/itseez/opencv から取得し、ドキュメントに従ってコンパイルしました... pythonソースiをプルしたソース https://github.com/shantnu/FaceDetect/ を実行すると、次のエラー:

modprobe:致命的:モジュールnvidiaが見つかりません。トレースバック(最後の最後の呼び出し):ファイル "face_detect.py"、行21、flags = cv2.cv.CV_HAAR_SCALE_IMAGE AttributeError: 'module'オブジェクトには属性 'cv'がありません

pythonバインディングがあることを確認するために、ターミナルで次のように入力しました:python

import cv2
cv2.__version__

次の「3.0.0-dev」を返しました

何が悪いのでしょうか?

18
Aly Shmahell

cv2.cvサブモジュールはopencv3.0で削除され、いくつかの定数も変更されました。

代わりにcv2.CASCADE_SCALE_IMAGEを使用してください

help(cv2)を実行して、更新された定数を確認します)

50
berak

申し訳ありませんが、上記はうまくいきませんでした。別の「解決策」を見つけましたが、openCVについてSFAを知っているので、望ましくない副作用があるかもしれません。

簡単な解決策は、0に設定するだけです。

  # Detect faces in the image
faces = faceCascade.detectMultiScale(
    gray,
    scaleFactor=1.1,
    minNeighbors=5,
    minSize=(30, 30),
#    flags = cv2.cv.CV_HAAR_SCALE_IMAGE
    flags = 0
)

あなたが見ることができるように...私はちょうど0にそれを設定し、私の人生で進むことができます。

すべての組み合わせを試しましたが、CASCADE_SCALE_IMAGEを機能させることができませんでした。

このopenCV docoの説明 は、ナッダ、Zip、混乱以外の何物でもありません。

flags –関数cvHaarDetectObjectsと同じ古いカスケードの意味を持つパラメーター。新しいカスケードには使用されません。

それはそれをクリアしました...

とにかく、openCVの例では0にハードコードされています。

6
StuvdG