天天看點

Ubuntu16.04+python2.7搭建opencv3.2.0

在安裝opencv3.2.0的過程中,我遇到了好多坑,特此記錄一下。建議安裝了Anaconda的朋友們找一找網上的方法,直接利用它進行安裝,可以避免很多坑。

下面結合參考的網上的教程,說一說我的安裝過程和解決辦法。

一、準備工作

提前下載下傳好三個檔案,https://github.com/hanxuan123/opencv3.2/tree/master/all,這裡給出網上分享的一個連結(感謝)。包括opencv-3.2.0、ippicv_linux_20151201.tgz、opencv_contrib-3.2.0

二、安裝依賴檔案

這裡每個人需要裝的檔案可能不同,我是根據https://blog.csdn.net/yifa3588/article/details/78284794這篇部落格中給的依賴檔案先安裝的,之後再根據CMake的報告添加缺少的依賴檔案

在終端輸入

sudo apt-get install build-essential  
sudo apt-get install cmake git libgtk2-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev  
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394--dev
           

三、編譯

3.1

首先将第一步中下載下傳好的opencv-3.2.0解壓到一個新的檔案夾中,我的新檔案夾命名為opencv3,opencv_contrib-3.2解壓到opencv-3.2.0中,再在opencv-3.2.0中建立一個檔案夾,命名為build,并在該檔案下編譯。

3.2

3.3

cmake -D CMAKE_BUILD_TYPE=RELEASE \
 -D CMAKE_INSTALL_PREFIX=/usr/local \
 -D INSTALL_C_EXAMPLES=ON \
 -D OPENCV_EXTRA_MODULES_PATH=/home/software/opencv3/opencv-./opencv_contrib-./modules/  ..   #這裡根據自己的路徑調整, 注意最後的兩個點
           

注意:這是重要的一步,這一步可能會出現各種各樣的問題,要根據所遇到的問題,對症下藥~在此附上我遇到的一些問題和解決辦法,僅供參考。

...

Checking for module 'gstreamer-base-1.0'
--   No package 'gstreamer-base-1.0' found
-- Checking for module 'gstreamer-video-1.0'
--   No package 'gstreamer-video-1.0' found
-- Checking for module 'gstreamer-app-1.0'
--   No package 'gstreamer-app-1.0' found
-- Checking for module 'gstreamer-riff-1.0'
--   No package 'gstreamer-riff-1.0' found
-- Checking for module 'gstreamer-pbutils-1.0'
--   No package 'gstreamer-pbutils-1.0' found
-- Checking for module 'gstreamer-base-0.10'
--   Found gstreamer-base-., version .
-- Checking for module 'gstreamer-video-0.10'
--   No package 'gstreamer-video-0.10' found
-- Checking for module 'gstreamer-app-0.10'
--   No package 'gstreamer-app-0.10' found
-- Checking for module 'gstreamer-riff-0.10'
--   No package 'gstreamer-riff-0.10' found
-- Checking for module 'gstreamer-pbutils-0.10'
--   No package 'gstreamer-pbutils-0.10' found
-- Looking for linux/videodev.h
-- Looking for linux/videodev.h - not found
-- Looking for linux/videodev2.h
-- Looking for linux/videodev2.h - found
-- Looking for sys/videoio.h
-- Looking for sys/videoio.h - not found
-- Checking for module 'libavresample'
--   No package 'libavresample' found
-- Checking for module 'libgphoto2'
--   No package 'libgphoto2' found
-- found IPP (ICV version): . [.]
-- at: /home/elsa/software/opencv3/opencv-./build/rdparty/ippicv/ippicv_lnx
-- Could not find OpenBLAS include. Turning OpenBLAS_FOUND off
-- Could not find OpenBLAS lib. Turning OpenBLAS_FOUND off
-- Could NOT find Atlas (missing:  Atlas_CBLAS_INCLUDE_DIR Atlas_CLAPACK_INCLUDE_DIR Atlas_CBLAS_LIBRARY Atlas_BLAS_LIBRARY Atlas_LAPACK_LIBRARY) 
-- Could NOT find Doxygen (missing:  DOXYGEN_EXECUTABLE) 
-- Could NOT find JNI (missing:  JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH) 
-- Could NOT find Matlab (missing:  MATLAB_MEX_SCRIPT MATLAB_INCLUDE_DIRS MATLAB_ROOT_DIR MATLAB_LIBRARIES MATLAB_LIBRARY_DIRS MATLAB_MEXEXT MATLAB_ARCH MATLAB_BIN) 
-- VTK is not found. Please set -DVTK_DIR in CMake to VTK build directory, or to VTK install subdirectory with VTKConfig.cmake file
CMake Error at cmake/OpenCVModule.cmake:295 (message):
  No extra modules found in folder:
  /home/software/opencv3/opencv3.2.0/opencv_contrib-3.2.0/modules

  Please provide path to 'opencv_contrib/modules' folder.
Call Stack (most recent call first):
  modules/CMakeLists.txt:7 (ocv_glob_modules)


......


-- 
-- Configuring incomplete, errors occurred!
See also "/home/elsa/software/opencv3/opencv-3.2.0/build/CMakeFiles/CMakeOutput.log".
See also "/home/elsa/software/opencv3/opencv-3.2.0/build/CMakeFiles/CMakeError.log".
           

出現這種情況,基本上就是失敗了,要根據提示挨個填坑了。

首先是安裝缺少的依賴包

根據這些提示,

sudo apt-get install \
libgstreamer0-dev \ 
libgstreamer-plugins-base0-dev \ 
libgstreamer1-dev \ 
libgstreamer-plugins-base1-dev \ 
gstreamer-plugins-base-devel \
libgphoto2-dev \
           

當然,最好将cmake更新一下,不然也可能出現錯誤。

sudo apt-get install cmake
           

除此之外,還可能存在ippicv_linux_20151201.tgz下載下傳失敗的問題。這時候可以将第一步中我們提前下載下傳好的該檔案,移動到報告中提示的路徑。

例如,報告稱/opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/找不到該檔案,我們就可以在新的終端中進行如下操作

sudo mv ippicv_linux_20151201.tgz /opencv-./rdparty/ippicv/downloads/linux-b791a6eac9ed78d32a7666804320e 
           

之後可以建立終端,重新進行cmake

如果提示

-- Configuring done
-- Generating done 
           

則可以進行下一步

依次進行

sudo make
sudo make install
           

四、測試

這裡我在python2.7.12下測試才成功,其他版本下測試 均提示找不到cv2 module

測試如下:

XXX:~$ python
Python  |Anaconda, Inc.| (default, Oct  , ::) 
[GCC ] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line , in <module>
ModuleNotFoundError: No module named 'cv2'
>>> quit()
XXXXX:~$ source activate python2
(python2) xxxxxxx:~$ python
Python  |Anaconda, Inc.| (default, Mar  , ::) 
[GCC ] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line , in <module>
ImportError: No module named cv2
>>> 
(python2) xxxxxxxx:~$ sudo python
[sudo] xxx的密碼: 
Python  (default, Dec   , ::) 
[GCC  ] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line , in <module>
ImportError: /lib/x86_64-linux-gnu/libz.so: version `ZLIB_1' not found (required by /home/software/anaconda3/lib/libpng16.so.16)
>>> 
           

根據提示,缺少了ZLIB,參考這裡給的幫助

可以下載下傳Zlib,然後依次執行:

tar -xvf ~/Downloads/zlib-.tar.gz
cd zlib-
sudo -s
./configure; make; make install
cd /lib/x86_64-linux-gnu
ln -s -f /usr/local/lib/libz.so/lib libz.so
cd ~
rm -rf zlib-
           

附上下載下傳位址戳這裡~

過程如下:

XXXX:~$ tar -xvf ~/下載下傳/zlib-.tar.gz
zlib-/
zlib-/adler32.c
zlib-/amiga/
zlib-/ChangeLog
zlib-/CMakeLists.txt
zlib-/compress.c
zlib-/configure
zlib-/contrib/
zlib-/crc32.c
zlib-/crc32.h
zlib-/deflate.c
zlib-/deflate.h
zlib-/doc/
zlib-/examples/
zlib-/FAQ
zlib-/gzclose.c
zlib-/gzguts.h
zlib-/gzlib.c
zlib-/gzread.c
zlib-/gzwrite.c
zlib-/INDEX
zlib-/infback.c
zlib-/inffast.c
zlib-/inffast.h
zlib-/inffixed.h
zlib-/inflate.c
zlib-/inflate.h
zlib-/inftrees.c
zlib-/inftrees.h
zlib-/make_vms.com
zlib-/Makefile
zlib-/Makefile.in
zlib-/msdos/
zlib-/nintendods/
zlib-/old/
zlib-/os400/
zlib-/qnx/
zlib-/README
zlib-/test/
zlib-/treebuild.xml
zlib-/trees.c
zlib-/trees.h
zlib-/uncompr.c
zlib-/watcom/
zlib-/win32/
zlib-/zconf.h
zlib-/zconf.h.cmakein
zlib-/zconf.h.in
zlib-/zlib
zlib-/zlib.pdf
zlib-/zlib.h
zlib-/zlib.map
zlib-/zlib.pc.cmakein
zlib-/zlib.pc.in
zlib-/zlib2ansi
zlib-/zutil.c
zlib-/zutil.h
zlib-/win32/DLL_FAQ.txt
zlib-/win32/Makefile.bor
zlib-/win32/Makefile.gcc
zlib-/win32/Makefile.msc
zlib-/win32/README-WIN32.txt
zlib-/win32/VisualC.txt
zlib-/win32/zlib.def
zlib-/win32/zlib1.rc
zlib-/watcom/watcom_f.mak
zlib-/watcom/watcom_l.mak
zlib-/test/example.c
zlib-/test/infcover.c
zlib-/test/minigzip.c
zlib-/qnx/package.qpg
zlib-/os400/bndsrc
zlib-/os400/make.sh
zlib-/os400/README400
zlib-/os400/zlib.inc
zlib-/old/descrip.mms
zlib-/old/Makefile.emx
zlib-/old/Makefile.riscos
zlib-/old/os2/
zlib-/old/README
zlib-/old/visual-basic.txt
zlib-/old/os2/Makefile.os2
zlib-/old/os2/zlib.def
zlib-/nintendods/Makefile
zlib-/nintendods/README
zlib-/msdos/Makefile.bor
zlib-/msdos/Makefile.dj2
zlib-/msdos/Makefile.emx
zlib-/msdos/Makefile.msc
zlib-/msdos/Makefile.tc
zlib-/examples/enough.c
zlib-/examples/fitblk.c
zlib-/examples/gun.c
zlib-/examples/gzappend.c
zlib-/examples/gzjoin.c
zlib-/examples/gzlog.c
zlib-/examples/gzlog.h
zlib-/examples/README.examples
zlib-/examples/zlib_how.html
zlib-/examples/zpipe.c
zlib-/examples/zran.c
zlib-/doc/algorithm.txt
zlib-/doc/rfc1950.txt
zlib-/doc/rfc1951.txt
zlib-/doc/rfc1952.txt
zlib-/doc/txtvsbin.txt
zlib-/contrib/ada/
zlib-/contrib/amd64/
zlib-/contrib/asm686/
zlib-/contrib/blast/
zlib-/contrib/delphi/
zlib-/contrib/dotzlib/
zlib-/contrib/gcc_gvmat64/
zlib-/contrib/infback9/
zlib-/contrib/inflate86/
zlib-/contrib/iostream/
zlib-/contrib/iostream2/
zlib-/contrib/iostream3/
zlib-/contrib/masmx64/
zlib-/contrib/masmx86/
zlib-/contrib/minizip/
zlib-/contrib/pascal/
zlib-/contrib/puff/
zlib-/contrib/README.contrib
zlib-/contrib/testzlib/
zlib-/contrib/untgz/
zlib-/contrib/vstudio/
zlib-/contrib/vstudio/readme.txt
zlib-/contrib/vstudio/vc10/
zlib-/contrib/vstudio/vc11/
zlib-/contrib/vstudio/vc12/
zlib-/contrib/vstudio/vc14/
zlib-/contrib/vstudio/vc9/
zlib-/contrib/vstudio/vc9/miniunz.vcproj
zlib-/contrib/vstudio/vc9/minizip.vcproj
zlib-/contrib/vstudio/vc9/testzlib.vcproj
zlib-/contrib/vstudio/vc9/testzlibdll.vcproj
zlib-/contrib/vstudio/vc9/zlib.rc
zlib-/contrib/vstudio/vc9/zlibstat.vcproj
zlib-/contrib/vstudio/vc9/zlibvc.def
zlib-/contrib/vstudio/vc9/zlibvc.sln
zlib-/contrib/vstudio/vc9/zlibvc.vcproj
zlib-/contrib/vstudio/vc14/miniunz.vcxproj
zlib-/contrib/vstudio/vc14/minizip.vcxproj
zlib-/contrib/vstudio/vc14/testzlib.vcxproj
zlib-/contrib/vstudio/vc14/testzlibdll.vcxproj
zlib-/contrib/vstudio/vc14/zlib.rc
zlib-/contrib/vstudio/vc14/zlibstat.vcxproj
zlib-/contrib/vstudio/vc14/zlibvc.def
zlib-/contrib/vstudio/vc14/zlibvc.sln
zlib-/contrib/vstudio/vc14/zlibvc.vcxproj
zlib-/contrib/vstudio/vc12/miniunz.vcxproj
zlib-/contrib/vstudio/vc12/minizip.vcxproj
zlib-/contrib/vstudio/vc12/testzlib.vcxproj
zlib-/contrib/vstudio/vc12/testzlibdll.vcxproj
zlib-/contrib/vstudio/vc12/zlib.rc
zlib-/contrib/vstudio/vc12/zlibstat.vcxproj
zlib-/contrib/vstudio/vc12/zlibvc.def
zlib-/contrib/vstudio/vc12/zlibvc.sln
zlib-/contrib/vstudio/vc12/zlibvc.vcxproj
zlib-/contrib/vstudio/vc11/miniunz.vcxproj
zlib-/contrib/vstudio/vc11/minizip.vcxproj
zlib-/contrib/vstudio/vc11/testzlib.vcxproj
zlib-/contrib/vstudio/vc11/testzlibdll.vcxproj
zlib-/contrib/vstudio/vc11/zlib.rc
zlib-/contrib/vstudio/vc11/zlibstat.vcxproj
zlib-/contrib/vstudio/vc11/zlibvc.def
zlib-/contrib/vstudio/vc11/zlibvc.sln
zlib-/contrib/vstudio/vc11/zlibvc.vcxproj
zlib-/contrib/vstudio/vc10/miniunz.vcxproj
zlib-/contrib/vstudio/vc10/miniunz.vcxproj.filters
zlib-/contrib/vstudio/vc10/minizip.vcxproj
zlib-/contrib/vstudio/vc10/minizip.vcxproj.filters
zlib-/contrib/vstudio/vc10/testzlib.vcxproj
zlib-/contrib/vstudio/vc10/testzlib.vcxproj.filters
zlib-/contrib/vstudio/vc10/testzlibdll.vcxproj
zlib-/contrib/vstudio/vc10/testzlibdll.vcxproj.filters
zlib-/contrib/vstudio/vc10/zlib.rc
zlib-/contrib/vstudio/vc10/zlibstat.vcxproj
zlib-/contrib/vstudio/vc10/zlibstat.vcxproj.filters
zlib-/contrib/vstudio/vc10/zlibvc.def
zlib-/contrib/vstudio/vc10/zlibvc.sln
zlib-/contrib/vstudio/vc10/zlibvc.vcxproj
zlib-/contrib/vstudio/vc10/zlibvc.vcxproj.filters
zlib-/contrib/untgz/Makefile
zlib-/contrib/untgz/Makefile.msc
zlib-/contrib/untgz/untgz.c
zlib-/contrib/testzlib/testzlib.c
zlib-/contrib/testzlib/testzlib.txt
zlib-/contrib/puff/Makefile
zlib-/contrib/puff/puff.c
zlib-/contrib/puff/puff.h
zlib-/contrib/puff/pufftest.c
zlib-/contrib/puff/README
zlib-/contrib/puff/zeros.raw
zlib-/contrib/pascal/example.pas
zlib-/contrib/pascal/readme.txt
zlib-/contrib/pascal/zlibd32.mak
zlib-/contrib/pascal/zlibpas.pas
zlib-/contrib/minizip/configure.ac
zlib-/contrib/minizip/crypt.h
zlib-/contrib/minizip/ioapi.c
zlib-/contrib/minizip/ioapi.h
zlib-/contrib/minizip/iowin32.c
zlib-/contrib/minizip/iowin32.h
zlib-/contrib/minizip/make_vms.com
zlib-/contrib/minizip/Makefile
zlib-/contrib/minizip/Makefile.am
zlib-/contrib/minizip/miniunz.c
zlib-/contrib/minizip/miniunzip
zlib-/contrib/minizip/minizip
zlib-/contrib/minizip/minizip.c
zlib-/contrib/minizip/minizip.pc.in
zlib-/contrib/minizip/MiniZip64_Changes.txt
zlib-/contrib/minizip/MiniZip64_info.txt
zlib-/contrib/minizip/mztools.c
zlib-/contrib/minizip/mztools.h
zlib-/contrib/minizip/unzip.c
zlib-/contrib/minizip/unzip.h
zlib-/contrib/minizip/zip.c
zlib-/contrib/minizip/zip.h
zlib-/contrib/masmx86/bld_ml32.bat
zlib-/contrib/masmx86/inffas32.asm
zlib-/contrib/masmx86/match686.asm
zlib-/contrib/masmx86/readme.txt
zlib-/contrib/masmx64/bld_ml64.bat
zlib-/contrib/masmx64/gvmat64.asm
zlib-/contrib/masmx64/inffas8664.c
zlib-/contrib/masmx64/inffasx64.asm
zlib-/contrib/masmx64/readme.txt
zlib-/contrib/iostream3/README
zlib-/contrib/iostream3/test.cc
zlib-/contrib/iostream3/TODO
zlib-/contrib/iostream3/zfstream.cc
zlib-/contrib/iostream3/zfstream.h
zlib-/contrib/iostream2/zstream.h
zlib-/contrib/iostream2/zstream_test.cpp
zlib-/contrib/iostream/test.cpp
zlib-/contrib/iostream/zfstream.cpp
zlib-/contrib/iostream/zfstream.h
zlib-/contrib/inflate86/inffas86.c
zlib-/contrib/inflate86/inffast.S
zlib-/contrib/infback9/infback9.c
zlib-/contrib/infback9/infback9.h
zlib-/contrib/infback9/inffix9.h
zlib-/contrib/infback9/inflate9.h
zlib-/contrib/infback9/inftree9.c
zlib-/contrib/infback9/inftree9.h
zlib-/contrib/infback9/README
zlib-/contrib/gcc_gvmat64/gvmat64.S
zlib-/contrib/dotzlib/DotZLib/
zlib-/contrib/dotzlib/DotZLib.build
zlib-/contrib/dotzlib/DotZLib.chm
zlib-/contrib/dotzlib/DotZLib.sln
zlib-/contrib/dotzlib/LICENSE_1_0.txt
zlib-/contrib/dotzlib/readme.txt
zlib-/contrib/dotzlib/DotZLib/AssemblyInfo.cs
zlib-/contrib/dotzlib/DotZLib/ChecksumImpl.cs
zlib-/contrib/dotzlib/DotZLib/CircularBuffer.cs
zlib-/contrib/dotzlib/DotZLib/CodecBase.cs
zlib-/contrib/dotzlib/DotZLib/Deflater.cs
zlib-/contrib/dotzlib/DotZLib/DotZLib.cs
zlib-/contrib/dotzlib/DotZLib/DotZLib.csproj
zlib-/contrib/dotzlib/DotZLib/GZipStream.cs
zlib-/contrib/dotzlib/DotZLib/Inflater.cs
zlib-/contrib/dotzlib/DotZLib/UnitTests.cs
zlib-/contrib/delphi/readme.txt
zlib-/contrib/delphi/ZLib.pas
zlib-/contrib/delphi/ZLibConst.pas
zlib-/contrib/delphi/zlibd32.mak
zlib-/contrib/blast/blast.c
zlib-/contrib/blast/blast.h
zlib-/contrib/blast/Makefile
zlib-/contrib/blast/README
zlib-/contrib/blast/test.pk
zlib-/contrib/blast/test.txt
zlib-/contrib/asm686/match.S
zlib-/contrib/asm686/README
zlib-/contrib/amd64/amd64-match.S
zlib-/contrib/ada/buffer_demo.adb
zlib-/contrib/ada/mtest.adb
zlib-/contrib/ada/read.adb
zlib-/contrib/ada/readme.txt
zlib-/contrib/ada/test.adb
zlib-/contrib/ada/zlib-streams.adb
zlib-/contrib/ada/zlib-streams.ads
zlib-/contrib/ada/zlib-thin.adb
zlib-/contrib/ada/zlib-thin.ads
zlib-/contrib/ada/zlib.adb
zlib-/contrib/ada/zlib.ads
zlib-/contrib/ada/zlib.gpr
zlib-/amiga/Makefile.pup
zlib-/amiga/Makefile.sas
XXXX:~$ cd zlib-
XXXX:~/zlib-$ sudo -s
[sudo] XXXX 的密碼: 
[email protected]:~/zlib-# ./configure; make; make install
Checking for gcc...
Checking for shared library support...
Building shared library libz.so with gcc.
Checking for size_t... Yes.
Checking for off64_t... Yes.
Checking for fseeko... Yes.
Checking for strerror... Yes.
Checking for unistd.h... Yes.
Checking for stdarg.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf().
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for attribute(visibility) support... Yes.
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -I. -c -o example.o test/example.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -c -o adler32.o adler32.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -c -o crc32.o crc32.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -c -o deflate.o deflate.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -c -o infback.o infback.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -c -o inffast.o inffast.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -c -o inflate.o inflate.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -c -o inftrees.o inftrees.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -c -o trees.o trees.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -c -o zutil.o zutil.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -c -o compress.o compress.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -c -o uncompr.o uncompr.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -c -o gzclose.o gzclose.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -c -o gzlib.o gzlib.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -c -o gzread.o gzread.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -c -o gzwrite.o gzwrite.c
ar rc libz.a adler32.o crc32.o deflate.o infback.o inffast.o inflate.o inftrees.o trees.o zutil.o compress.o uncompr.o gzclose.o gzlib.o gzread.o gzwrite.o 
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -o example example.o -L. libz.a
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -I. -c -o minigzip.o test/minigzip.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -o minigzip minigzip.o -L. libz.a
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -DPIC -c -o objs/adler32.o adler32.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -DPIC -c -o objs/crc32.o crc32.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -DPIC -c -o objs/deflate.o deflate.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -DPIC -c -o objs/infback.o infback.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -DPIC -c -o objs/inffast.o inffast.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -DPIC -c -o objs/inflate.o inflate.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -DPIC -c -o objs/inftrees.o inftrees.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -DPIC -c -o objs/trees.o trees.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -DPIC -c -o objs/zutil.o zutil.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -DPIC -c -o objs/compress.o compress.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -DPIC -c -o objs/uncompr.o uncompr.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -DPIC -c -o objs/gzclose.o gzclose.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -DPIC -c -o objs/gzlib.o gzlib.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -DPIC -c -o objs/gzread.o gzread.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN  -DPIC -c -o objs/gzwrite.o gzwrite.c
gcc -shared -Wl,-soname,libz.so,--version-script,zlib.map -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -o libz.so adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo  -lc 
rm -f libz.so libz.so
ln -s libz.so libz.so
ln -s libz.so libz.so
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -o examplesh example.o -L. libz.so
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -o minigzipsh minigzip.o -L. libz.so
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -I. -D_FILE_OFFSET_BITS= -c -o example64.o test/example.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -o example64 example64.o -L. libz.a
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -I. -D_FILE_OFFSET_BITS= -c -o minigzip64.o test/minigzip.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -o minigzip64 minigzip64.o -L. libz.a
rm -f /usr/local/lib/libz.a
cp libz.a /usr/local/lib
chmod  /usr/local/lib/libz.a
cp libz.so /usr/local/lib
chmod  /usr/local/lib/libz.so
rm -f /usr/local/share/man/man3/zlib
cp zlib /usr/local/share/man/man3
chmod  /usr/local/share/man/man3/zlib
rm -f /usr/local/lib/pkgconfig/zlib.pc
cp zlib.pc /usr/local/lib/pkgconfig
chmod  /usr/local/lib/pkgconfig/zlib.pc
rm -f /usr/local/include/zlib.h /usr/local/include/zconf.h
cp zlib.h zconf.h /usr/local/include
chmod  /usr/local/include/zlib.h /usr/local/include/zconf.h
[email protected]:~/zlib-# cd /lib/x86_64-linux-gnu
[email protected]:/lib/x86_64-linux-gnu# ln -s -f /usr/local/lib/libz.so.1.2.9/lib libz.so.1
[email protected]:/lib/x86_64-linux-gnu# cd ~
[email protected]:~# rm -rf zlib-1.2.11
           

此外,如果出現如下問題:

>>> import cv2
RuntimeError: module compiled against API version xa but this version of numpy is x9
Traceback (most recent call last):
  File "<stdin>", line , in <module>
ImportError: numpy.core.multiarray failed to import
           

則可能是因為numpy和opencv2版本不合,可以先

pip install -U numpy

再重新測試

這時再測試就ok啦

XXXX:~$ sudo python
Python  (default, Dec   , ::) 
[GCC  ] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.2.0'
>>> 
           

五、配置python3的opencv

該位址提供了一種在已經配置了python2和opencv的情況下,再配python3的方法

還未嘗試,留待之後親測後再來完善本篇。在這分享給大家,有需要可以自行嘗試。