opencv-python踩坑记录

第一次使用OpenCV的时候,用的是vs2017+opencv4.0,都是在网上找的教程,稀里糊涂装上就开始用了,测试了几个方法之后,后来想试一下python3.7+opencv4.0,也是在网上找的教程,使用pip install opencv-python和pip install opencv-contrib-python安装了依赖的包,这两个方法会自动安装可使用的最高版本,所以自动安装了4.0,在这里测试了很多方法。

#图像颜色空间转换
cv2.cvtColor(image,cv2.COLOR_BGR2HSV)
#平均滤波
blur = cv2.blur(img,(5,5))
#高斯滤波
cv2.GaussianBlur(img,(5,5),0)
#中值滤波
med = cv2.medianBlur(img,3)
#图像分割
(H,S,V) = cv2.split(image2)
#Sobel算子
cv2.Sobel(src,ddepth,dx.dy[,dst[,ksize[,scale[,delta[,borderType]]]]])
#Laplacian算子
cv2.Laplacian(blurImg,cv2.CV_16S,ksize=3)
#Hough变换
cv2.HoughLines(cannyImg,1,np.pi/180,160)
#Harris算子
cv2.cornerHarris(grayImg,2,3,0.045)
#canny算子
cv2.Canny(blurImg,50,150)

在使用下面这个方法时入坑了,

#SURF算子
cv2.xfeatures2d.SURF_create()

找了原因,原来是因为版权原因不能使用,网上说要降版本,我使用pip install opencv-python3.4.5.20和pip install opencv-contrib-python3.4.5.20,还是不行,一开始装vs2017+opencv4.0的时候我给opencv配了环境变量,我以为Python是需要依赖我解压的这个opencv的,这样的话可能是OpenCV4.0和我用pip安装的包版本不一致到值的,所以我下载了opencv3.4,解压之后重新使用pip install opencv-python和pip install opencv-contrib-python安装依赖的包,这个时候懵逼了,为什么还是自动安装4.0?测试了一下,还是不能用,于是这个时候我怀疑是不是pycharm缓存了我下载好的以前的包(因为以前弄java的时候出现过这种问题不能把最新的代码编译到包里)?于是我从pycharm里面安装这两个包,还是不行,这个时候我了解到我安装的OpenCV和pip安装的包是没有关系的,排除了这个原因之后,我又安装了3.4.2.16版本的包,不行,python3.7最低只能安装到3.4.2.16,我只能降python的版本了,我安装了python3.6,安装3.4.1.15版本的包,不行,安装3.4.0.14,可以了。
总结:可以使用SURF算子的版本是python3.6+opencv-python3.4.0.14+opencv-contrib-python3.4.0.14.
pip install opencv-python3.4.0.14
pip install opencv-contrib-python
3.4.0.14

你可能感兴趣的:(踩坑记录)