1. 程式人生 > >Ubuntu16.04 Anaconda 安裝pyth3.6 和opencv3.1.0

Ubuntu16.04 Anaconda 安裝pyth3.6 和opencv3.1.0

由於ubuntu14.04/16.04都自帶了python2.7和python3.5,所以無需在安裝python。

如果需要安裝python3.6,則需要重新安裝

由於ubuntu14.04/16.04都自帶了python2.7和python3.5,所以無需在安裝python。

1、檢查python是否安裝:

~ whereis python

2、首先需要的是 pip:

~ sudo apt-get install python3-setuptools python3-dev sudo easy_install3 pip

安裝pip3

curl https://bootstrap.pypa.io/get-pip.py

3、然後是 numpy:

~ pip3 install numpy

4、安裝依賴:

1)、~ sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

2)、sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

 

2. 安裝OpenCV3.3.1

(1)下載opencv和opencv_contrib,在剛才的終端中輸入:

git clone https://github.com/opencv/opencv.git
去下載對應版本的opencv_contrib

會在home中發現有opencv和opencv_contrib兩個資料夾,則下載成功

(2)用cmake配置屬性(cpu版):

首先資料夾opencv新建一個build資料夾

cd ~/opencv
mkdir build
cd build   #開啟build資料夾

配置編譯opencv

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local  -D INSTALL_C_EXAMPLES=ON  -D PYTHON3_EXECUTABLE=/usr/bin/python3 -D PYTHON_INCLUDE_DIR=/usr/include/python3.5 -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=OFF -D OPENCV_EXTRA_MODULES_PATH=/data1/storage_proxy/deeplearning/dl_project/inceptionv3/data/opencv-3.1.0/opencv_contrib/modules -D BUILD_EXAMPLES=ON -D CMAKE_LIBRARY_PATH=/usr/local/cuda-8.0/lib64/stubs -D CUDA_CUDA_LIBRARY=/usr/local/cuda-8.0/lib64/stubs/libcuda.so ..

該步成功,之後輸入:

make -j7 # 7個任務並行,加快安裝(親測,如果輸入的是make-j,電腦安裝慢,還宕機了,導致安裝失敗)

sudo make install

至此,安裝完成

如想要查詢安裝的版本

輸入:

python3

import cv2

cv2.__version__

可以得到:

**** 如果沒有出現上面的結果,出現ImportError: No module named cv2 報錯,

pip3 install opencv-python 可以解決這個問題

錯誤1:samples/gpu/CMakeFiles/example_gpu_hog.dir/build.make:122: recipe for target

這是因為編譯的時候沒有加入cuda-8.0路徑

解決辦法:cmake的時候加入-D CMAKE_LIBRARY_PATH=/usr/local/cuda-8.0/lib64/stubs -D CUDA_CUDA_LIBRARY=/usr/local/cuda-8.0/lib64/stubs/libcuda.so ..

錯誤2:In file included from /home/avtomaton/arbeit/sdk/cxx/opencv/build/modules/python2/pyopencv_generated_include.h:11:0,
from /home/avtomaton/arbeit/sdk/cxx/opencv/modules/python/src2/cv2.cpp:12:

/home/avtomaton/arbeit/sdk/cxx/opencv_contrib/modules/hdf/include/opencv2/hdf/hdf5.hpp:40:18: fatal error: hdf5.h: No such file or directory

解決辦法:into modules/python/common.cmake

 

# This file is included from a subdirectory
set(PYTHON_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../")

ocv_add_module(${MODULE_NAME} BINDINGS)

became

# This file is included from a subdirectory
set(PYTHON_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../")

find_package(HDF5)
include_directories(${HDF5_INCLUDE_DIRS})

ocv_add_module(${MODULE_NAME} BINDINGS)

python3.5中編譯opencv可能會出現以下錯誤:

錯誤:在編譯安裝opencv3.1時可能會報錯

 
  1. modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/build.make:290: recipe for target ‘modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/src/graphcuts.cpp.o’ failed

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

這是CUDA配置出錯。

解決辦法1:不用CUDA在cmake時設定-DWITH_CUDA=OFF

解決辦法2:GraphCut在cuda7.5中棄用,在cuda8.0中被移除。

 

修改 ~/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp檔案 
把第45行修改成:

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

即在 \#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) 加上 || (CUDART_VERSION >= 8000)

錯誤2:

opencv3.1+opencv_contrib編譯,cmake時候遇到下面問題:

[plain] view plain copy

print?

  1. CMake Error at /home/ubuntu/opencv3.1.0/opencv-3.1.0/cmake/OpenCVUtils.cmake:895 (file):  
  2.   file DOWNLOAD cannot open file for write.  
  3. Call Stack (most recent call first):  
  4.   /home/ubuntu/opencv3.1.0/opencv_contrib/modules/dnn_modern/CMakeLists.txt:20 (ocv_download)  
  5.   
  6.   
  7. CMake Error at /home/ubuntu/opencv3.1.0/opencv-3.1.0/cmake/OpenCVUtils.cmake:899 (message):  
  8.   Failed to download .  Status=  
  9. Call Stack (most recent call first):  
  10.   /home/ubuntu/opencv3.1.0/opencv_contrib/modules/dnn_modern/CMakeLists.txt:20 (ocv_download)  
  11.   
  12.   
  13. -- Configuring incomplete, errors occurred!  
  14. See also "/home/ubuntu/opencv3.1.0/opencv-3.1.0/build/CMakeFiles/CMakeOutput.log".  
  15. See also "/home/ubuntu/opencv3.1.0/opencv-3.1.0/build/CMakeFiles/CMakeError.log".  
 
  1. CMake Error at /home/ubuntu/opencv3.1.0/opencv-3.1.0/cmake/OpenCVUtils.cmake:895 (file):

  2. file DOWNLOAD cannot open file for write.

  3. Call Stack (most recent call first):

  4. /home/ubuntu/opencv3.1.0/opencv_contrib/modules/dnn_modern/CMakeLists.txt:20 (ocv_download)

  5.  
  6.  
  7. CMake Error at /home/ubuntu/opencv3.1.0/opencv-3.1.0/cmake/OpenCVUtils.cmake:899 (message):

  8. Failed to download . Status=

  9. Call Stack (most recent call first):

  10. /home/ubuntu/opencv3.1.0/opencv_contrib/modules/dnn_modern/CMakeLists.txt:20 (ocv_download)

  11.  
  12.  
  13. -- Configuring incomplete, errors occurred!

  14. See also "/home/ubuntu/opencv3.1.0/opencv-3.1.0/build/CMakeFiles/CMakeOutput.log".

  15. See also "/home/ubuntu/opencv3.1.0/opencv-3.1.0/build/CMakeFiles/CMakeError.log".

需要把

[plain] view plain copy

print?

  1. opencv_contrib/modules/dnn_modern/CMakeLists.txt 中的FILENAME替換為PACKAGE
  2. 對應的**.cmake也中對應錯誤處 中的FILENAME替換為PACKAGE

同理,其他地方報錯,繼續如此替換即可!

 

參考連結:

1. Ubuntu16.04下安裝OpenCV3.2.0 - Arkenstone - 部落格園    http://www.cnblogs.com/arkenstone/p/6490017.html

2. OpenCV: Installation in Linux    https://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html