python卸载opencv包_Ubuntu16.04卸载opencv2.4.9并安装opencv3.2.0+contrib
本文為作者原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處(http://www.cnblogs.com/mar-q/)by 負(fù)赑屃
需要用到opencv中的surf和sift算法,機(jī)器上只有opencv3.2,沒有擴(kuò)展包,于是就去GitHub和官網(wǎng)看了下,沒想到8月剛出了3.3,一個(gè)激動(dòng)就想裝個(gè)opencv3.3+contrib,不過opencv3.3+contrib這產(chǎn)生segment default(段錯(cuò)誤,有可能是內(nèi)存溢出)。完全不能用啊,可能是有些包沒下到,網(wǎng)上很難搜到3.3的相關(guān)模塊,如果對(duì)opencv3.3非常有興趣可以參考一下http://www.linuxfromscratch.org/blfs/view/svn/general/opencv.html。
0:寫在最前面
如果你只是想使用python驗(yàn)證一下算法,那么恭喜你,后面不用看了。可以直接用pip獲取到帶contrib的opencv模塊,首先把你python中原有的opencv卸載掉,然后安裝帶有contrib的opencv模塊,如果沒有該包,請(qǐng)更換pip源,我使用的阿里源。你可以單獨(dú)為此次安裝指定源地址:
pip uninstall opencv-python
pipinstall opencv-contrib-python
pipinstall opencv-contrib-python -i https://mirrors.aliyun.com/pypi/simple
修正1:如果報(bào)錯(cuò):ImportError: DLL load failed: 找不到指定的模塊。
請(qǐng)?jiān)诖薶ttps://www.lfd.uci.edu/~gohlke/pythonlibs/對(duì)應(yīng)版本的opencv-python,我剛才在另一臺(tái)電腦測(cè)試,發(fā)現(xiàn)了這個(gè)錯(cuò)誤,電腦的環(huán)境是Python3.6,64位系統(tǒng),所以我下載了opencv_python-3.3.1-cp36-cp36m-win_amd64.whl,下載完成后進(jìn)入文件所在目錄,執(zhí)行:
pip install opencv_python-3.3.1-cp36-cp36m-win_amd64.whl
Python 3.6.0 |Anaconda 4.3.1 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64bit (AMD64)] on win32
Type"help", "copyright", "credits" or "license" formore information.>>>import cv2>>> cv2.__version__
'3.3.1'
>>> exit()
分析,這個(gè)問題導(dǎo)致的原因是什么捏,python其實(shí)有很多模塊在安裝的時(shí)候都會(huì)產(chǎn)生這個(gè)錯(cuò)誤,比如安裝mysql-Python的時(shí)候,這個(gè)錯(cuò)誤的原因其實(shí)是因?yàn)閜ip安裝的模塊可能只是一個(gè)Python的擴(kuò)展模塊,而缺少對(duì)應(yīng)模塊的可執(zhí)行程序(相關(guān)問題可以留言給我)。
修正2:安裝后報(bào)錯(cuò)
>>> import cv2
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python3.5/dist-packages/cv2/__init__.py", line 4, in
from .cv2 import *
ImportError: libSM.so.6: cannot open shared object file: No such file or directory
這是我在使用TensorFlow的docker中發(fā)現(xiàn)的錯(cuò)誤,這個(gè)時(shí)候,不要使用某些博客推薦的安裝python-qt4的辦法,提供兩個(gè)解決方案:
###方案1:降低opencv版本,目前默認(rèn)都是安裝opencv3.4,裝3.2即可
# pip install opencv-python==3.2.0.8
>>> import cv2
>>> cv2.__version__
'3.2.0'
###方案2:缺什么裝什么,國(guó)內(nèi)更新apt比較慢,記得換掉源
# apt update && apt install -y libsm6 libxext6
###Python3.5下安裝:apt update && apt install -y libsm6 libxext6 libxrender1 libxext-dev
>>> import cv2
>>> cv2.__version__
'3.4.0'
注意,opencv-python只能在python中使用,并且,通過pip默認(rèn)安裝的都是opencv3,如果需要安裝opencv2,并且想安裝完整的opencv sourcecode寫算法,繼續(xù)往下閱讀(opencv2和3的區(qū)別主要在于部分函數(shù)的調(diào)用,opencv2覆蓋的更全面一些,給出的api接口更多):
一、命令行查看已安裝的opencv版本
這個(gè)命令會(huì)經(jīng)常用到。也可以用上面的cv2.__version__
pkg-config --modversion opencv
二、卸載
首先要找到當(dāng)初安裝opencv sourcecode的build目錄(如果不明白什么是build目錄可以先跳過這一步,看第3步.),進(jìn)入該build目錄執(zhí)行如下操作:
sudo makeuninstall
cd ..sudo rm -r buildrm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*
刪除/usr中所有opencv相關(guān)項(xiàng)
cd /usr/
find . -name "*opencv*" | xargs sudo rm -rf
移除Python相關(guān)
apt-get remove opencv-doc opencv-data python-opencv
******如果找不到當(dāng)初安裝的目錄,執(zhí)行1,執(zhí)行3,再執(zhí)行2。******因?yàn)闄C(jī)器共享給小伙伴一起用的,我就沒找到2.4.9的安裝目錄,估計(jì)當(dāng)時(shí)被刪了,所以我先下了一個(gè)249,build一遍后才uninstall的。
三、安裝
這里提供一個(gè)opencv3.2+contrib3.2的鏈接https://pan.baidu.com/s/1-A0I5jCnMwpRwcFpguGdqg。你也可以通過官網(wǎng)或者GitHub下載相應(yīng)的版本,注意contrib模塊一定要下對(duì)應(yīng)版本的release。
把opencv3.2和contrib模塊解壓縮,應(yīng)該是兩個(gè)文件夾,建議放在同一個(gè)目錄下。由于cmake過程中,某些模塊下載速度很慢,容易導(dǎo)致build失敗,需要下載的ippicv+protobuf模塊我一并放在網(wǎng)盤內(nèi)了,拿去不謝。
完成下載工作,進(jìn)入opencv3.2:
mkdirbuild
cd build
cmake-D CMAKE_BUILD_TYPE=TELEASE \-D CMAKE_INSTALL_PREFIX=/usr/local \-D INSTALL_C_EXAMPLE=OFF \-D INSTALL_PYTHON_EXAMPLE=ON \-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.2.0/modules \-D BUILD_EXAMPLES=ON ..
注意OPENCV_EXTRA_MODULES_PATH設(shè)置成自己的路徑。
看看是否報(bào)錯(cuò):
ICV:?Downloading?ippicv_linux_20151201.tgz...
CMake?Error?at?3rdparty/ippicv/downloader.cmake:73?(file):
如果提示缺少ippicv或者protobuf,則下載相應(yīng)版本的放入錯(cuò)誤提示的目錄內(nèi)。
例如,提示缺少ippicv,新建文件夾opencv3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e,把ippicv文件放入該目錄,
再次執(zhí)行cmake,確保沒有報(bào)錯(cuò)。
執(zhí)行make和make install命令
make
......
make install
打開opencv里面的sample,隨便選一個(gè)cpp,在里面增加一些例如sift、surf等nonfree算法試試吧。
總結(jié)
以上是生活随笔為你收集整理的python卸载opencv包_Ubuntu16.04卸载opencv2.4.9并安装opencv3.2.0+contrib的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。