無sudo權(quán)限安裝OpenCV from source

Based on?https://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/

############## Version 3.4.0 ##################

1. [前提]

conda environment

python = 3.5

CUDA = 9.0

gcc/g++ = 6.0

2. [conda 環(huán)境設(shè)置]

將下一行添加到 ~/.bashrc涎跨,

```

export PATH=/path-to-your-anaconda/bin:$PATH

```

添加后source該文件

```

source ~/.bashrc

```

生成python 3.5環(huán)境

```

conda create -n py35 python=3.5

```

3. [路徑設(shè)置]

# 在激活py35環(huán)境的同時(shí)激活以下路徑設(shè)置

```

mkdir -p /home/virtual-environments/anaconda2/envs/py35/etc/conda/activate.d

touch /home/virtual-environments/anaconda2/envs/py35/etc/conda/activate.d/activate.sh

nano /home/virtual-environments/anaconda2/envs/py35/etc/conda/activate.d/activate.sh

```

----- 將下面的內(nèi)容寫入activate.sh-----

```

#!/bin/sh

ORIGINAL_LD_LIBRARY=$LD_LIBRARY_PATH

ORIGINAL_PATH=$PATH

ORIGINAL_PKG_CONFIG_PATH=$PKG_CONFIG_PATH

ORIGINAL_PYTHONPATH=$PYTHONPATH

ORIGINAL_CPATH=$CPATH

export LD_LIBRARY_PATH=/home/virtual-environments/anaconda2/lib:/usr/local/cuda$

export PATH=/usr/local/cuda-9.0/bin:$PATH

export PKG_CONFIG_PATH=/home/virtual-environments/anaconda2/lib/pkgconfig:/usr/$

export PYTHONPATH=/home/virtual-environments/anaconda2/envs/py35/bin/python3:$P$

export CPATH=/home/virtual-environments/anaconda2/envs/py35/include:$CPATH

```

---------------我是分割線--------------

# 在解除py35環(huán)境同時(shí)解除路徑設(shè)置

```

chmod +x /home/virtual-environments/anaconda2/envs/py35/etc/conda/activate.d/activate.sh

mkdir -p /home/virtual-environments/anaconda2/envs/py35/etc/conda/deactivate.d

touch /home/virtual-environments/anaconda2/envs/py35/etc/conda/deactivate.d/deactivate.sh

nano /home/virtual-environments/anaconda2/envs/py35/etc/conda/deactivate.d/deactivate.sh

```

----- 將下面的內(nèi)容寫入 deactivate.sh -----

```

#!/bin/sh

export LD_LIBRARY_PATH=$ORIGINAL_LD_LIBRARY_PATH

export PATH=$ORIGINAL_PATH

export PKG_CONFIG_PATH=$ORIGINAL_PKG_CONFIG_PATH

export PYTHONPATH=$ORIGINAL_PYTHONPATH

export CPATH=$ORIGINAL_CPATH

unset ORIGINAL_LD_LIBRARY_PATH

unset ORIGINAL_PATH

unset ORIGINAL_PKG_CONFIG_PATH

unset ORIGINAL_PYTHONPATH

unset ORIGINAL_CPATH

```

--------------- 我是分割線 --------------

# chmod一下deactivate.sh

```

chmod +x /path-to-your-anaconda/envs/py35/etc/conda/deactivate.d/deactivate.sh

```

4. [安裝OpenCV依賴庫(kù)們]

```

source activate py35

conda install -n py35 numpy

conda install -n py35 -c conda-forge libzip

conda install -n py35 -c anaconda cmake

conda install -n py35 -c anaconda libboost

conda install -n py35 -c anaconda boost

conda install -n py35 -c conda-forge harfbuzz

conda install -n py35 -c conda-forge freetype

conda install -n py35 -c anaconda hdf5

conda install -n py35 -c omgarcia gcc-6

conda install -n py35 -c anaconda atlas

conda install -n py35 -c conda-forge doxygen

conda install -n py35 -c anaconda openblas

conda install -n py35 -c conda-forge gtk2

conda install -n py35 -c pkgw-forge gtk3

conda install -n py35 -c nersc libjasper

```

5. [安裝OpenCV]

# cmake里面的路徑記得修改哦

# 這個(gè)版本安裝完后cv2.VideoCapture()有一定概率不好用六敬,因?yàn)閃ITH_V4L被設(shè)置成了OFF碘赖。但是,WITH_V4L設(shè)置成ON會(huì)導(dǎo)致編譯不成功普泡,需要sudo權(quán)限來四處挪一挪呀改一改。所以审编,暫時(shí)拋棄VideoCapture()功能。:( 有大神解決了這個(gè)問題的話請(qǐng)一定要告訴我垒酬!感謝砰嘁!?

```

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/path-to-where-you-extract-opencv/opencv-3.4.0 -D INSTALL_PYTHON_EXAMPLES=OFF -D INSTALL_C_EXAMPLES=OFF -D OPENCV_EXTRA_MODULES_PATH=/path-to-where-you-extract-opencv/opencv_contrib-3.4.0/modules -D PYTHON3_EXECUTABLE=/path-to-your-anaconda/envs/py35/bin/python3.5m -D PYTHON3_LIBRARY=/path-to-your-anaconda/envs/py35/lib/libpython3.5m.so?-D PYTHON3_INCLUDE_DIR=/path-to-your-anaconda/envs/py35/include/python3.5m -D PYTHON3_NUMPY_INCLUDE_DIRS=/path-to-your-anaconda/envs/py35/lib/python3.5/site-packages/numpy/core/include -D PYTHON3_PACKAGES_PATH=/path-to-your-anaconda/envs/py35/lib/python3.5/site-packages -D WITH_V4L=OFF -D WITH_LIBV4L=ON -D BUILD_EXAMPLES=OFF -D ENABLE_PRECOMPILED_HEADERS=OFF -D CUDA_NVCC_FLAGS=--expt-relaxed-constexpr ..

make -j32

make install

```

6. [完成OpenCV 安裝]

```

locate?cv2.cpython-35m-x86_64-linux-gnu.so

```

# 上述.so文件應(yīng)該在 xxx/python3.5/site-packages/

# 當(dāng)找到多個(gè)地址時(shí),每個(gè)文件夾都要修改

```

cd /path/to/cv2.cpython-35m-x86_64-linux-gnu.so?

mv?cv2.cpython-35m-x86_64-linux-gun.so?cv2.so

```

7.?[使用OpenCV]

```

source activate py35

```

# 然后在py35環(huán)境下自由的玩耍OpenCV吧 ~

8. [Trouble Shooting]

來這里看cmake的錯(cuò)誤報(bào)告: /path-to-where-you-extract-opencv/opencv-3.4.0/build/CMakeFiles/CMakeError.log

8.1. /usr/bin/ld: cannot find –lxxxxx

https://stackoverflow.com/questions/16710047/usr-bin-ld-cannot-find-lnameofthelibrary

# 先看一下缺少的庫(kù)是怎么個(gè)調(diào)取方法

```

ld -lxxxxx --verbose

```

解決方案? ?:? a. 將調(diào)取方法里面某一個(gè)順眼的路徑加到 LD_LIBRARY_PATH中 (前提是該庫(kù)文件在這個(gè)順眼的路徑下面)

? ? ? ? ? ? ? ? ? ? ?b. If you are root, then change the name or add a symbolink

```

????????????????????????sudo ln -s /usr/lib/libz.so.1.2.8 /usr/lib/libzlib.so

```

8.2. -++++++-FOR OPENCV-3.1.0-ONLY-++++++-

BUG: ffmpeg/avformat.h not found:

解決方案:?

```

mkdir /usr/include/ffmpeg

cd /usr/include/ffmpeg

sudo ln -sf /usr/include/x86_64-linux-gnu/libavcodec/*.h ./

sudo ln -sf /usr/include/x86_64-linux-gnu/libavformat/*.h ./

sudo ln -sf /usr/include/x86_64-linux-gnu/libswscale/*.h ./

sudo ln -s /usr/include/ffmpeg/*.h /usr/include/x86_64-linux-gnu/ffmpeg

```

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末矮湘,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子口糕,更是在濱河造成了極大的恐慌缅阳,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件十办,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡超棺,警方通過查閱死者的電腦和手機(jī)棠绘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門霍衫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事◆锓” “怎么了辩稽?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)从媚。 經(jīng)常有香客問我逞泄,道長(zhǎng),這世上最難降的妖魔是什么拜效? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任喷众,我火速辦了婚禮,結(jié)果婚禮上紧憾,老公的妹妹穿的比我還像新娘到千。我一直安慰自己,他們只是感情好赴穗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布憔四。 她就那樣靜靜地躺著,像睡著了一般般眉。 火紅的嫁衣襯著肌膚如雪了赵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天甸赃,我揣著相機(jī)與錄音柿汛,去河邊找鬼。 笑死辑奈,一個(gè)胖子當(dāng)著我的面吹牛苛茂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鸠窗,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼妓羊,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了稍计?” 一聲冷哼從身側(cè)響起躁绸,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后净刮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體剥哑,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年淹父,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了株婴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡暑认,死狀恐怖困介,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蘸际,我是刑警寧澤座哩,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站粮彤,受9級(jí)特大地震影響根穷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜导坟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一屿良、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧乍迄,春花似錦管引、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至漾狼,卻和暖如春重慢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背逊躁。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工似踱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人稽煤。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓核芽,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親酵熙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子轧简,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容