OpenCV3 for Python3的安装方法

Windows(不过我没安装过)

Windows平台比较幸运的是,有人已经帮我们编译好了。 
先去下面网址下载whl文件

http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv

下载好了使用pip进行安装:

pip install opencv_python-3.1.0-cp35-cp35m-win_amd64.whl

参考链接是:https://blog.csdn.net/tinyzhao/article/details/52738647

Ubuntu

在Ubuntu下要自己编译安装了。

(1)安装必要的工具

apt-get install cmake wget python3.5-dev build-essential unzip \
    libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev \
    libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
    libgtk-3-dev python3-setuptools

逐条拷贝。

(2)安装pip3

sudo apt-get install python3-pip

(3)安装numpy

pip3 install numpy

(4)下载并编译OpenCV3

wget https://github.com/Itseez/opencv/archive/3.1.0.zip
unzip 3.1.0.zip
cd opencv-3.1.0
mkdir build
cd build
CFLAGS="-pipe -O3 -march=core-avx-i" CFLAGS="-pipe -O3 -march=core-avx-i" cmake -D INSTALL_PYTHON_EXAMPLES=ON -D WITH_XIMEA=BOOL:ON ..

(5)安装

make -j32
sudo make install

在make -j32时,遇到错误:

/root/opencv-3.1.0/modules/core/include/opencv2/core/private.cuda.hpp:165:52: note: in definition of macro ‘nppSafeCall’
 #define nppSafeCall(expr)  cv::cuda::checkNppError(expr, __FILE__, __LINE__, CV_Func)
                                                    ^
/root/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:274:146: error: ‘nppiGraphcut8_32f8u’ was not declared in this scope
             static_cast<int>(terminals.step), static_cast<int>(leftTransp.step), sznpp, labels.ptr<Npp8u>(), static_cast<int>(labels.step), state) );
                                                                                                                                                  ^
/root/opencv-3.1.0/modules/core/include/opencv2/core/private.cuda.hpp:165:52: note: in definition of macro ‘nppSafeCall’
 #define nppSafeCall(expr)  cv::cuda::checkNppError(expr, __FILE__, __LINE__, CV_Func)
                                                    ^
modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/build.make:146: recipe for target 'modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/src/graphcuts.cpp.o' failed
make[2]: *** [modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/src/graphcuts.cpp.o] Error 1
make[2]: *** 正在等待未完成的任务....
CMakeFiles/Makefile2:9120: recipe for target 'modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/all' failed
make[1]: *** [modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/all] Error 2
make[1]: *** 正在等待未完成的任务....
[ 91%] Linking CXX shared library ../../lib/libopencv_photo.so
[ 91%] Built target opencv_photo
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2

make[2]: *** [modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/src/graphcuts.cpp.o] Error 1

解决:

那是因为 cuda-8.0OpenCV 3.1.0发生了冲突。解决方法:修改openCV 3.1.0源码,使其兼容cuda-8.0

$ sudo vi opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp

将第四十五行位置的

#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)

改为

#if !defined(HAVE_CUDA)||defined(CUDA_DISABLER)||(CUDART_VERSION>=8000)

然后重新执行

解决了。

遇到错误:

opencv都安装好了。

但是ImportError: No module named 'cv2'

解决:

pip3 install opencv-python
之后再import。

测试

import cv2
img=cv2.imread('1.jpg')
cv2.imshow('1',img)
cv2.waitKey(0)
  • 搞定!


发布了79 篇原创文章 · 获赞 340 · 访问量 66万+

猜你喜欢

转载自blog.csdn.net/m0_37407756/article/details/79918040
今日推荐