久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

在樹(shù)莓派3搭載Raspbian Jessie系統(tǒng)上編譯openCV

 風(fēng)雪夜歸人_95 2017-08-27
      本文主要參考了一個(gè)外國(guó)人寫(xiě)的博客:http://www./2016/04/18/install-guide-raspberry-pi-3-raspbian-jessie-opencv-3/
      其他系統(tǒng)或平臺(tái)可以根據(jù)下面這個(gè)地址對(duì)號(hào)入座:http://www./opencv-tutorials-resources-guides/
      感覺(jué)外國(guó)人寫(xiě)的東西還是比較清楚的,step by step,。這篇文章還把每一步所需要的時(shí)間也拿出來(lái)了,非常貼心。避免在一些要很長(zhǎng)時(shí)間的步驟傻等在那的尷尬,。本文根據(jù)第一個(gè)網(wǎng)址在裝有Raspbian Jessie 的樹(shù)莓派3上編譯openCV。但是還是遇到了一些問(wèn)題或者與作者描述不同的現(xiàn)象,,現(xiàn)在把它記錄下來(lái),,針對(duì)一些時(shí)間超過(guò)五分鐘的步驟,筆者也把它標(biāo)記一下,。下面的內(nèi)容已經(jīng)默認(rèn)已經(jīng)有了一個(gè)裝有Raspbian Jessie的樹(shù)莓派3,,且可以通過(guò)SSH或者其他方式可以訪問(wèn)到樹(shù)莓派。

一 查看樹(shù)莓派版本
      如果不確定樹(shù)莓派的系統(tǒng)版本,,可以使用    lsb_release -a   命令,。
      注意,,有的網(wǎng)友說(shuō)使用    uname -a   命令。但是得到的卻不是這里需要的信息,。
     
二 擴(kuò)張文件系統(tǒng)
      使用下面命令打開(kāi)配置項(xiàng):  sudo raspi-config

并沒(méi)有找到原文作者寫(xiě)的“Expand File System”這一項(xiàng),,并且使用  df -h  命令查看了一下可用空間,由于作者用的8GSD卡,,筆者用的是16G的,,故大膽猜測(cè),跳過(guò)這一步,,應(yīng)該不會(huì)有太大問(wèn)題,。
      至于原文作者提到為了節(jié)省空間,刪除wolfram-engine,,可以節(jié)省600多兆的空間,。wolfram-engine用于支持wolfram語(yǔ)言,被捆綁在樹(shù)莓派的操作系統(tǒng)中,。百度了一把wolfram感覺(jué)不明覺(jué)厲,。

三  安裝依賴文件
1. 更新數(shù)據(jù)源      
       sudo apt-get update
       sudo apt-get upgrade 
       這一步實(shí)際上才是正式開(kāi)始的第一步,但是筆者一上來(lái)更新數(shù)據(jù)源就出師不利,,第二個(gè)命令就出錯(cuò)了,,非常影響心情。
       具體的報(bào)錯(cuò) 當(dāng)時(shí)忘了記錄下來(lái),,但反正就是更新數(shù)據(jù)源失敗之類的錯(cuò)誤,,主要問(wèn)題還是在樹(shù)莓派更新景象地址上。樹(shù)莓派的鏡像地址存放在 /etc/apt/sources.list 文件中(里面總共三行內(nèi)容,,后兩行被注釋掉),。當(dāng)然換個(gè)國(guó)內(nèi)的源應(yīng)該沒(méi)有問(wèn)題,但筆者是按照當(dāng)時(shí)網(wǎng)上的一種做法:將該文件第一,、二行注釋掉,,第三行放出來(lái),如下圖:
這個(gè)做法是可以解決上面的報(bào)錯(cuò)問(wèn)題的,。 筆者后面也搜到了一些源,,不過(guò)擔(dān)心安全問(wèn)題,就沒(méi)有用,??赡苁枪P者多慮了!  

2. 安裝依賴文件
這一步和原文的描述出入最大,,很多庫(kù)文件都安裝不了,,可能還是和上一步的數(shù)據(jù)源有關(guān)。這里僅僅羅列了需要 sudo apt-get 來(lái)安裝的庫(kù),,沒(méi)有或者報(bào)"can't locate module XXX"的庫(kù),,則直接忽略:  build-essential cmake pkg-config libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev 
libgtk2.0-dev libatlas-base-dev fortran python2.7-dev python3-dev

四  下載openCV源碼
wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.1.0.zip
unzip opencv.zip
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip
unzip opencv_contrib.zip
這一步下載了opencv 和 opencv_contrib的源文件,。opencv_contrib中存放了一些opencv中不太穩(wěn)定的內(nèi)容,。但最好保證opencv_contrib和opencv的版本要保持一致。

五 安裝python及虛擬環(huán)境
在Mac上默認(rèn)安裝了python2.7和python3.6,。這里就涉及一個(gè)問(wèn)題:到底是選擇python2 還是python3,。由于樹(shù)莓派默認(rèn)是已經(jīng)安裝了python2.7,,當(dāng)時(shí)就想用python2.但是python2 會(huì)有一個(gè)坑,就是不支持中文編碼,,而python3已經(jīng)支持了中文編碼,,所以這里建議還是安裝python3,也可
以都裝一遍,。但是如果在一臺(tái)機(jī)器上,,同時(shí)安裝了python2 和python3 很容易搞混,所以這里建議使用virtualenv,。有點(diǎn)虛擬機(jī)的意思,,就是提供了一套獨(dú)立的python環(huán)境。比如有兩個(gè)項(xiàng)目分別要用到不同的環(huán)境,,而我們可以根據(jù)各自項(xiàng)目需求來(lái)配置不同環(huán)境,,不用都全局安裝。
1. 安裝pip
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
如果已經(jīng)安裝了就可跳過(guò)這一步,,筆者這里就直接跳過(guò)了,。

2.安裝virtualenv和virtualenvwrapper
sudo pip install virtualenv virtualenvwrapper
sudo rm -rf ~/.cache/pip

第二個(gè)命令不知道為什么要執(zhí)行,但筆者并沒(méi)有找到這個(gè)路徑,,反正也是要?jiǎng)h除,,略過(guò)。

3. 配置virtualenv環(huán)境
# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
在~/.profile文件的末尾添加上面的內(nèi)容,,此時(shí)重新打開(kāi)終端,,就可以執(zhí)行virtualenv相關(guān)的命令。如果想在當(dāng)前終端中生效,,也可以執(zhí)行 source ~/.profile 命令,。

4. 創(chuàng)建virtualenv工作環(huán)境
mkvirtualenv cv -p python2
mkvirtualenv ovforp3 -p python3
上面分別創(chuàng)建了使用python2 和 python3 的環(huán)境,實(shí)際使用時(shí) 根據(jù)需求選擇其中一個(gè)命令執(zhí)
行即可,。筆者這里選擇了第二條命令執(zhí)行,。
執(zhí)行完后,如果在前面可以看到類似上圖紅框中的字段,,則證明當(dāng)前處于創(chuàng)建的virtualenv工作環(huán)境中,。上面的創(chuàng)建命令只用使用一次,即創(chuàng)建該工作環(huán)境時(shí),。之后,,如果需要重新進(jìn)入該虛擬
環(huán)境,,可以使用下面的workon命令:
workon ovforp3
這時(shí)就可以得到類似上圖的現(xiàn)象。

5. 安裝Numpy
pip install numpy
這里沒(méi)什么可講,,記錄一下,,之前在python2環(huán)境中編譯時(shí),這里一直安裝失??;換成python3環(huán)境后,就沒(méi)有問(wèn)題,。

六. 編譯 安裝 OpenCV
1. 配置編譯項(xiàng)  
編譯前確定當(dāng)前是處于虛擬工作環(huán)境中,,然后執(zhí)行下面的命令:
cd ~/opencv-3.1.0/
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.1.0/modules \
    -D BUILD_EXAMPLES=ON ..
 
這里首先創(chuàng)建了一個(gè)build的目錄,進(jìn)入該目錄,,并執(zhí)行后面的cmake命令,。這個(gè)build不知道有什么用,反正從頭到最后 也沒(méi)看到里面有什么內(nèi)容,。但是如果不在這里執(zhí)行cmake命令,,又會(huì)報(bào)錯(cuò)。姑且這么干吧,! 可以看見(jiàn)Cmake命令后面跟了長(zhǎng)串參數(shù),。大家可以根據(jù)名字猜測(cè)用處。其中OPENCV_EXTRA_MODULES_PATH的值可以根據(jù)實(shí)際的路徑進(jìn)行修改,。其他的保持不變,。
其次 BUILD_EXAMPLES的值后面 有一個(gè)“..”(表示上一級(jí)),不要忘了,。忘了也會(huì)出錯(cuò),。
按照原文多說(shuō)法,這里會(huì)得到類似下面的結(jié)果:
 筆者也確實(shí)得到了,,但其中的Interpreter一欄并沒(méi)有指向像上圖中的虛擬環(huán)境中的地址,,而是直接指向了本機(jī)的實(shí)際地址。這種現(xiàn)象,,原文的解釋是當(dāng)前的工作環(huán)境沒(méi)有切到對(duì)應(yīng)的虛擬環(huán)境中,,所以使用workon命令做一下切換就可以了。但筆者試了好幾次,,仍然不行,。這讓人很納悶,只能先忽略這個(gè)問(wèn)題,。

2. 執(zhí)行編譯
先退回到opencv源代碼的根目錄,,然后執(zhí)行 make 命令即可。正如原文作者所說(shuō),,使用
 make -j4 執(zhí)行一段時(shí)間后 由于爭(zhēng)搶內(nèi)核場(chǎng)景的原因會(huì)報(bào)錯(cuò),。那么老老實(shí)實(shí)用make命令吧,。
執(zhí)行這個(gè)編譯命令非常耗時(shí)。筆者編過(guò)三次,,每次的時(shí)間至少都在一個(gè)小時(shí)以上,,所以,大家可以干點(diǎn)其他事,,再來(lái)看結(jié)果,。
上面也說(shuō)了,筆者編了三次,,肯定不會(huì)沒(méi)事閑的慌,編三次,。說(shuō)明上面的命令有問(wèn)題,。真是坑呀。編了一個(gè)小時(shí)多,,然后就編不過(guò)了,。看看出錯(cuò)信息:
stitching_detailed.cpp:(.text+0x188c): undefined reference to `cv::detail::SurfFeaturesFinderGpu::SurfFeaturesFinderGpu(double, int, int, int, int)'
這就讓人蒙了,,突然來(lái)一個(gè)找不到函數(shù),。搜了好久,發(fā)現(xiàn)了一個(gè)帖子,,很有啟發(fā):
https://devtalk./default/topic/766474/opencv4tegra-sourcecode-anyone-/
總結(jié)一下,,就是這里在編譯 example目錄時(shí),由于缺少了opencv4tegra類庫(kù),。兩種方法:要么安裝缺少的類庫(kù),,要么在編譯選項(xiàng)時(shí)不編譯這部分內(nèi)容。 考慮到上面的帖子的描述并不是針對(duì)樹(shù)莓派環(huán)境,,且這部分內(nèi)容只是example,,不影響openCV核心功能,所以決定使用第二種方法,。這里需要退到上一步重新執(zhí)行cmake命令,,修改后的cmake命令如下:
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.1.0/modules \
    -D BUILD_EXAMPLES=OFF ..
再次執(zhí)行make問(wèn)題,就不會(huì)報(bào)錯(cuò)了,。

3. 安裝
sudo make install
sudo ldconfig

4.驗(yàn)證
在/usr/local/lib/python3.4/site-packages/或者/usr/local/lib/python3.4/dist-packages路徑下(二選一)中可以找到cv2.cpython-34m.so文件(在python2中是cv2.so文件),。將它的名字改回cv2.so,并在當(dāng)前的虛擬工作環(huán)境中建立軟連接,。
sudo mv cv2.cpython-34m.so cv2.so
cd ~/.virtualenvs/cv/lib/python3.4/site-packages/
ln -s /usr/local/lib/python3.4/site-packages/cv2.so cv2.so
此時(shí),,在終端輸入python,進(jìn)入python交互式命令行,,看能否打印出cv2的版本號(hào),,如下圖:
大功告成,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多