centos6.5下安裝OpenCV+P
- 2020 年 1 月 9 日
- 筆記
Python調用opencv的原理是:opencv編譯出共享庫文件,python把這個共享庫文件作為一個模塊加載並使用。通俗點就是,編譯opencv的時候開啟python接口選項,編譯好了會產生cv2.so(linux下)或者cv2.pyd(windows下)這個共享庫文件,python代碼中import這個cv2就可以用了。為了能正確import它,往往需要把cv2.so放在python找包能找到的路徑下,或者修改PYTHONPATH環境變量讓它包含cv2.so所在路徑。此外,python的opencv接口中,圖像使用numpy數組表示的,所以往往還需要安裝numpy、scipy、matplotlib這幾個包。
step:
初始化開發環境:
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers gd gd2 gd-devel gd2-devel perl-CPAN pcre-devel sqlite-devel blas-devel lapack-devel
一、
安裝python2.7
tar -xf Python-2.7.9.tar.xz cd Python-2.7.9 ./configure –prefix=/usr/local/ -enable-shared CFLAGS=-fPIC make /usr/bin/install -c -m 644 ./Tools/gdb/libpython.py python-gdb.py make altinstall
報錯處理:python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
- 可以使用如下方式編譯Python以解決這個問題: ./configure –enable-shared –prefix=/usr/local/python27 make && make install 2. cp /usr/local/python27/lib/libpython2.7.so.1.0 /usr/local/lib cd /usr/local/lib ln -s libpython2.7.so.1.0 libpython2.7.so 3. 使用命令whereis libpython2.7.so.1.0得到如下結果就說明 libpython2.7.so.1: /usr/local/lib/libpython2.7.so.1.0 4. 如果whereis沒有結果,或者還有import錯誤,可以嘗試如下操作:(可用) 在/etc/ld.so.conf中加入新行/usr/local/lib 保存後,運行 /sbin/ldconfig /sbin/ldconfig -v
因為後期還需要使用pip安裝模塊所以要安裝pip:具體參考:http://crfsz.blog.51cto.com/7835882/1889350
二、NumPy 一個用於大型矩陣處理的庫,這個需要安裝不然沒辦法去編譯opencv。
unzip numpy-1.11.1.zip cd numpy-1.11.1/ python setup.py install
三、cmake 編譯OpenCV時使用,也需要手動安裝。
wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz tar -zxvf cmake-2.8.10.2.tar.gz cd cmake-2.8.10.2 ./bootstrap gmake gmake install cmake -version
四、安裝openvc
cd opencv-3.0.0-beta/ // 創建build mkdir build cd build cmake -D CMAKE_BUILD_TYPE=release -D CMAKE_INSTALL_PREFIX=/usr/local .. 注意了:這一步開始編譯opencv,這裡會出現要下載ippicv_linux_20151201.tgz這麼個東西,這裡是個坑啊,因此上面步驟應該會出現錯誤,因此到網上下載這個文件,將其複製到自己的目錄 opencv-3.0.0-beta/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b/中,覆蓋掉原來的tgz文件。 然後重新編譯cmake ,這是應該不會出錯了。如果沒提示錯誤: make make install 則完成安裝
ps:安裝過程時間可能會有點長10~30分鐘左右,編譯完成之後OpenCV就安裝到了指定的/usr/local下面的一些目錄中,庫文件就安裝到了/usr/local/lib下,Python的模塊安裝位置是:/usr/local/lib/python2.7/site-packages,執行 ls /usr/local/lib/python2.7/site-packages/ 可以看到兩個文件,一個是cv2.so一個是cv.py
測試py腳本:
#!/usr/bin/python# -*- coding:utf-8 -*-import cv2 p_w_picpath = cv2.imread("test.jpg")print p_w_picpath cv2.imwrite("test1.jpg",p_w_picpath)

六、安裝opencv爬的坑:
ImportError: No module named skp_w_picpath.feature
pip install scikit-p_w_picpath
未完待續……