报错:cv2.error: OpenCV(3.4.8) C:\projects\opencv-python\opencv_contrib\modules\xfeatures2d\src\sift.cp

1,在跑OpenCV的sift关键点检测时遇到这个问题

import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np
from  pylab import mpl

mpl.rcParams['font.sans-serif']  = ['SimHei']

#读取图像
img = cv.imread('aa.jpg')
gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)

#2  sift关键点检测
#2.1  实例化sift对象
sift = cv.xfeatures2d.SIFT_create()

#2.2 关键点检测  :  kp关键点信息包括  方向、尺度、位置信息,des是关键点的描述符
kp , des = sift.detectAndCompute(gray , None)

#2.3  在图像上绘制关键点的检测结果
cv.drawKeypoints(img , kp , img , flags=cv.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)

#图像的显示
plt.figure(figsize=(5,4),dpi=100)
plt.imshow(img[:,:,:-1]),plt.title("sift  关键点检测")
plt.xticks([]),plt.yticks([])
plt.show()

2,报错信息

2.1 报错原因

opencv-contrib-python 3.4以上的版本都不支持cv2.xfeatures2d接口

也就是说版本太高了!!!!

3  ,解决方案

3.1 先创建一个python3.6的环境

报错:cv2.error: OpenCV(3.4.8) C:\projects\opencv-python\opencv_contrib\modules\xfeatures2d\src\sift.cp_第1张图片

3.2  然后再使用命令

 pip install opencv_python==3.4.2.16 
 pip install opencv-contrib-python==3.4.2.16

问题是这样真的特别慢!!!!!!!要花一个半小时,还会断掉

解决办法:换阿里源

 pip install opencv_python==3.4.2.16     -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
 pip install opencv-contrib-python==3.4.2.16    -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

4,验证是否有效?

import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np
from  pylab import mpl

mpl.rcParams['font.sans-serif']  = ['SimHei']

#读取图像
img = cv.imread('aa.jpg')
gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)

#2  sift关键点检测
#2.1  实例化sift对象
sift = cv.xfeatures2d.SIFT_create()

#2.2 关键点检测  :  kp关键点信息包括  方向、尺度、位置信息,des是关键点的描述符
kp , des = sift.detectAndCompute(gray , None)

#2.3  在图像上绘制关键点的检测结果
cv.drawKeypoints(img , kp , img , flags=cv.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)

#图像的显示
plt.figure(figsize=(5,4),dpi=100)
plt.imshow(img[:,:,::-1]),plt.title("sift  关键点检测")
plt.xticks([]),plt.yticks([])
plt.show()

4.1运行结果

报错:cv2.error: OpenCV(3.4.8) C:\projects\opencv-python\opencv_contrib\modules\xfeatures2d\src\sift.cp_第2张图片

完美解决!!!!!

你可能感兴趣的:(OpenCV从入门到精通,日常报错,opencv,python,人工智能)