这里做个笔记,或者说整合,随心所欲地安装好opencv且适用于python和c++
环境
ubuntu 16.0.4 + python3.6 +ros + c++ +opencv3.4.9 + python2.7
1. 安装opencv到任意文件夹
安装完后进行检测
2.c++检测
cd ../sample/cpp/
g++ drawing.cpp -o drawing `pkg-config opencv --libs --cflags`
./drawing
此时可以出现宣传视频
3.python检测
python
>>> import cv2
>
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so: undefined symbol: PyCObject_Type
报错!
查阅资料后说是要删除python2.7的路径,添加完opencv后再加上python2.7的路径。好~
import sys
sys.path.remove('/opt/ros/kinetic/lib/python2.7/dist-packages')
import cv2
#sys.path.append('/opt/ros/kinetic/lib/python2.7/dist-packages')
>
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'cv2'
依旧报错,怀疑是我下载的python3.6包路径中未加入cv2故强行在.bashrc 中加入一句:
其中 python2.7是我在 opencv/lib中无意找到的,当我看到2.7的瞬间 我就意识到不妙!
于是:
很好,不出意料地报错了,因为我是python3.6的版本啊!opencv3.4.9我在官网下载的,似乎是只支持2.7。于是我又试了一下:
果然。。。tnnd,没办法只能再重新下载支持python3.6版本的opencv
4.下载支持python3.6的opencv3.4.9
只支持python的opencv下载链接,点我!
官网的opencv3.4.9只支持c++和python2.7,故只下载一个支持python3.6的cv2就够啦!
下载完后,直接cd到下载的文件夹下 pip安装即可,注意pip的安装地址哦!
安装成功!
5.添加路径到python
如果此时在python环境下导入cv2的话肯定会报错,故添加路径到.bashrc中
由步骤4知道 opencv 大概pip到了哪个位置,故寻找之
因此添加site-packages
注意 要把步骤3 的路径删掉或注释掉
或许以后还能用得到,,不过我感觉几率很小。
保存
6.测试
成功
至此python和c++都可以用opencv3.4.9啦!
可以开心地搞科研了!