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

Tabla de contenido

1. Encontré este problema al ejecutar la detección de puntos clave de cribado de OpenCV.

2. Mensaje de error

2.1 Razones para informar errores

3. Solución

3.1 Primero cree un entorno python3.6

3.2 Luego usa el comando

4. ¿Es válida la verificación?

4.1 Resultados de ejecución


1. Encontré este problema al ejecutar la detección de puntos clave de cribado de OpenCV.

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. Mensaje de error

2.1 Razones para informar errores

Las versiones de Opencv-contrib-python superiores a 3.4 no son compatibles con la interfaz cv2.xfeatures2d .

En otras palabras, ¡la versión es demasiado alta! ! ! !

3. Solución

3.1 Primero cree un entorno python3.6

3.2 Luego usa el comando

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

¡El problema es que esto es muy lento! ! ! ! ! ! ! Tarda una hora y media y aún así se corta.

Solución: cambiar a la fuente de Ali

 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. ¿Es válida la verificación?

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 Resultados de ejecución

¡Solución perfecta! ! ! ! !

Supongo que te gusta

Origin blog.csdn.net/qq_53545309/article/details/133313244
Recomendado
Clasificación