Anaconda Python3.6 OpenCV3.3 Ubuntu 16.04源码编译
来源:互联网 发布:mysql change column 编辑:程序博客网 时间:2024/06/10 23:39
anaconda pip或者conda直接install opencv-python的opencv版本无法读取视频,装了ffmpeg也没用,估计是被阉割了,没办法只能下源码编译。
重复一下:系统是Ubuntu 16.04;anaconda是python3.6的,装在了/home/naphid/Documents/anaconda3里;opencv源码版本是3.3。
下完opencv源码后解压,新建一个build文件夹,cd到build;直接输入cmake .. 不出意外opencv会链到系统的python2.7上去(看cache可知),所以需要指定到咱下的anaconda的python3上;另外IPP这个加速包一般被墙了下不来,反正我们也是reserch不是production,干脆不要算了。下面的命令复制到终端,实在不行就一行行复制,记得把python所有相关路径改到自己的anaconda下。
cmake -D WITH_IPP=OFF -D PYTHON_DEFAULT_EXECUTABLE=/home/naphid/Documents/anaconda3/bin/python3 -D BUILD_opencv_python3=ON -D BUILD_opencv_python2=OFF -D PYTHON3_EXCUTABLE=/home/naphid/Documents/anaconda3/bin/python3 -D PYTHON3_INCLUDE_DIR=/home/naphid/Documents/anaconda3/include/python3.6m -D PYTHON3_LIBRARY=/home/naphid/Documents/anaconda3/lib/libpython3.6m.so.1.0 -D PYTHON_NUMPY_PATH=/home/naphid/Documents/anaconda3/lib/python3.6/site-packages ..
从cmake的summary中确认已经成功链到想要的地方后,开始编译。
make -j4
编译完成后,把编译出来的cv2.cpython-36m-x86_64-linux-gnu.so库拷到anaconda的python库包下;其实不用sudo make install,opencv就已经可以用了,python的warpper都有。
cp /home/naphid/Documents/opencv-3.3.0/build/lib/python3/* ~/Documents/anaconda3/lib/python3.6/site-packages/
终端输入python,import一下cv2,多半会出错。
naphid@phdsky:~/Documents/anaconda3/lib/python3.6/site-packages$ pythonPython 3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:09:58) [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linuxType "help", "copyright", "credits" or "license" for more information.>>> import cv2Traceback (most recent call last): File "<stdin>", line 1, in <module>ImportError: /home/naphid/Documents/anaconda3/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/naphid/Documents/anaconda3/lib/python3.6/site-packages/cv2.cpython-36m-x86_64-linux-gnu.so)
如果出了上面的错误`GLIBCXX_3.4.21’ not found,一定是因为gcc库版本太老,conda装个。
conda install libgcc
再试一次,import应该没问题了,然后赶紧试一下能读视频否。
import cv2cap = cv2.VideoCapture('/home/naphid/Documents/phd.avi')print(cap.isOpened())while (cap.isOpened()): ret, frame = cap.read() if frame is None: break cv2.imshow('frame', frame) if cv2.waitKey(1) & 0xFF == ord('q'): breakcap.release()cv2.destroyAllWindows()
如果还是不能读取视频打印了False的话,估计以前没装过ffmpeg视频解码相关库,sudo apt install ffmpeg装一下,再重来之前所有步骤即可。
之前其实直接把so库拷过去就能用,但是后来在编译caffe的时候发现cmake找不到源码编的opencv;原因是opencv相关config没在系统路径里,cmake找不到,所以如果要基于opencv编译其他东西的话,最好还是install一下。
sudo make install
- Anaconda Python3.6 OpenCV3.3 Ubuntu 16.04源码编译
- ubuntu编译安装opencv3.3+python3,解决ippicv下载问题
- 在Ubuntu 16.04 上编译安装OpenCV3.2.0(Cmake + python3 + OpenCV3)
- win10中Anaconda(Python3.6)配置OpenCV3.3+深度神经网络实现
- ubuntu编译安装opencv3到anaconda虚拟环境
- win10+Anaconda+Tensorflow1.3+CUDA8.0+python3.5+pycharm+opencv3
- ubuntu 16.04 anaconda python3.5 opencv
- python3+opencv3+mac/ubuntu
- Ubuntu16.04+CUDA9+cudnn7+python3.5+源码编译Tensorflow1.4+opencv3.3
- win10环境+pycharm+anaconda+python3.6+OpenCV3.3安装,ImportError: DLL load failed: 找不到指定的模块
- 转高手写的Ubuntu 的anaconda下编译安装opencv3
- [bigdata-34] pyenv + anaconda 4.2 + python3.5+ ubuntu 16.04 安装
- [bigdata-34] pyenv + anaconda 4.2 + python3.5+ ubuntu 16.04 安装
- Ubuntu如何用anaconda(Python3.6)+tensorflow
- ubuntu16.04 编译 opencv3.1.0 (Anaconda)
- Ubuntu Anaconda 安装tensorflow及opencv3.2.0
- 在Ubuntu中用anaconda快速安装opencv3
- ubuntu 16.04 OpenCV3.2.0完全编译安装
- php生成二维码, 做多级分销,推广,推荐人
- 工作中遇到的坑(C++)
- position实现居中
- com.google.gson.JsonSyntaxException:
- PHPExcel导出导入
- Anaconda Python3.6 OpenCV3.3 Ubuntu 16.04源码编译
- ios中的分类的创建
- Hibernate关系配置之多对多映射配置
- 如何利用python dbus来发送一个信号
- 再临Java,主实际技术的一些细节/深理解
- 经典汉诺塔递归问题
- 程序员高逼格指南
- VUE 中的计算属性和观察者
- MySQL/Mariadb基准测试工具-tpcc-mysql使用2