web-dev-qa-db-ja.com

Python OpenCV v4.20ではSIFTを使用できません

OpenCV v4.20とPyCharm IDEを使用しています。 SIFTアルゴリズムを使いたいのですが。しかし、私はこのエラーを受け取ります。私はインターネットでこのエラーの解決策を探しましたが、どれも私を助けませんでした。このエラーの解決策を知っていますか? (pipを使用すると、少なくとも3.4.2.16バージョンのOpenCVをインストールできます)

これが私のエラーです:

トレースバック(最後の最後の呼び出し):ファイル "C:/Users/HP/PycharmProjects/features/featuredetect.py"、7行目、sift = cv.xfeatures2d_SIFT.create()

cv2.error:OpenCV(4.2.0)C:\ projects\opencv-python\opencv_contrib\modules\xfeatures2d\src\sift.cpp:1210:error:(-213:The function/feature is not implement)このアルゴリズムは特許を取得しており、この構成では除外されています。 OPENCV_ENABLE_NONFREE CMakeオプションを設定し、ライブラリを関数 'cv :: xfeatures2d :: SIFT :: create'で再構築します

これが私のコードです:

import cv2 as cv

image = cv.imread("the_book_thief.jpg")
gray_image = cv.cvtColor(image,cv.COLOR_BGR2GRAY)

sift = cv.xfeatures2d_SIFT.create()
keyPoints = sift.detect(image,None)

output = cv.drawKeypoints(image,keyPoints,None)

cv.imshow("FEATURES DETECTED",output)
cv.imshow("NORMAL",image)

cv.waitKey(0)
cv.destroyAllWindows()
3

以前同じ問題がありました。私はすべての方法を試しましたが、最終的には非常に単純な方法で、多くの人から回答を得ています。ただし、私のアプローチには少し変更があります。

  1. ステップ1:

    以前にインストールしたopencvライブラリをアンインストールします

    _pip uninstall opencv-python_

  2. ステップ2:

    著作権の問題のため、opencv contribライブラリをインストールしてください。ここでは、バージョン3.4.2.17を使用しています。

    _pip install opencv-contrib-python==3.4.2.17_

    opencv contribライブラリのインストールエラー

    上の図は、バージョン_3.4.2.16_が見つからないというエラーを示しています。したがって、バージョン_3.4.2.17_を試してみました。このバージョンが機能しない場合は、3.4.xの他のバージョンを試してください。

  3. ステップ3:

    次に、以下を実行します

    import cv2 sift = cv2.xfeatures2d.SIFT_create()

それで全部です。わたしにはできる。私もそれがあなたのために働くことを望みます。

0
Nisan Chhetri