OpenCV– 一個完全開源的圖像處理庫,通常用于圖像處理,包涵了“模糊” “特征提取” “邊緣檢測” “目標(biāo)跟蹤”等多個CV領(lǐng)域的基礎(chǔ)問題。它是基于C++語言來實(shí)現(xiàn)的,具有C++、C、Python和Java的接口,并且支持Windows, Linux, Mac, OS, iOS和Android。即具有很好的平臺兼容性。OpenCV專為計算效率而設(shè)計,并強(qiáng)調(diào)實(shí)時應(yīng)用。 以優(yōu)化的C / C ++編寫,該庫可以利用多核處理。 通過啟用OpenCL,可以對底層硬件進(jìn)行加速。
使用OpenCV的用戶已經(jīng)超過4.7萬人,下載量超過1400萬。 用途從互動藝術(shù),到礦山檢查,網(wǎng)上縫合地圖或通過先進(jìn)的機(jī)器人。
配置OpenCV的目的?
1. 你的C++代碼里面需要進(jìn)行一定的圖像或者視頻操作;
2. 別人的代碼里面調(diào)用到了OpenCV內(nèi)部的一些函數(shù)。你需要運(yùn)行別人的代碼,來觀察最后的結(jié)果;
3. 你的”數(shù)據(jù)挖掘” “機(jī)器學(xué)習(xí)” “深度學(xué)習(xí)”等應(yīng)用中需要調(diào)用Opencv中的函數(shù),來加速你的開發(fā)進(jìn)程;
總之,如果你本人的研究領(lǐng)域是CV領(lǐng)域,那么你可能就需要使用到OpenCV。
下面開始我們的配置過程吧。
1.首先,你需要去OpenCV的官網(wǎng)中下載最新版本的OpenCV安裝包。下載鏈接
2.你需要將下載到的壓縮包解壓到特定的文件夾下面。
tar -zxvf xxx.tar
3. 接下來,你需要安裝一些依賴包,這是個漫長的過程,需要你耐心的去等待。
1) sudo apt
-get install libopencv
-dev build
-essential cmake git libgtk2
.0-dev pkg
-config python
-dev python
-numpy libdc1394
-22 libdc1394
-22-dev libjpeg
-dev libpng12
-dev libtiff5
-dev libjasper
-dev libavcodec
-dev libavformat
-dev libswscale
-dev libxine2
-dev libgstreamer0
.10-dev libgstreamer
-plugins-base0.10-dev libv4l
-dev libtbb
-dev libqt4
-dev libfaac
-dev libmp3lame
-dev libopencore
-amrnb-dev libopencore
-amrwb-dev libtheora
-dev libvorbis
-dev libxvidcore
-dev x264 v4l
-utils unzip
2) sudo apt
-get install build
-essential cmake git
3) sudo apt
-get install ffmpeg libopencv
-dev libgtk
-3-dev python
-numpy python3
-numpy libdc1394
-22 libdc1394
-22-dev libjpeg
-dev libpng12
-dev libtiff5
-dev libjasper
-dev libavcodec
-dev libavformat
-dev libswscale
-dev libxine2
-dev libgstreamer1
.0-dev libgstreamer
-plugins-base1.0-dev libv4l
-dev libtbb
-dev qtbase5
-dev libfaac
-dev libmp3lame
-dev libopencore
-amrnb-dev libopencore
-amrwb-dev libtheora
-dev libvorbis
-dev libxvidcore
-dev x264 v4l
-utils unzip
這個過程很麻煩,可能與你的網(wǎng)速息息相關(guān),因此建議你選擇一個高速的網(wǎng)絡(luò)。在這里給大家介紹一個Linux中的小技巧。即選擇一個高速的安裝源。具體的方法如下所示:
方案一:
1)在Linux的界面下點(diǎn)擊左下角的“system setting”,如下圖所示。
2)選擇“Software&Update”,如下圖所示:
3)選擇“DownLoad from”,如下圖所示:
4)點(diǎn)擊最下方的“others”;
5)在“china”中選擇“mirrors.tuna.tsinghua.edu.cn”;
6)點(diǎn)擊右下方的“Choose Server”;
7)輸入你的密鑰;
8)選擇“close”
9)選擇“Reload”
到此就結(jié)束了,最后一步可能會花費(fèi)一定的時間,希望你能耐心等待。我們選擇的源是“清華的”,經(jīng)過測試驗(yàn)證在國內(nèi)這個源比較快,你可以可以嘗試使用其他的下載源,方法如上所述。
方案二:
你可以將所有的依賴項(xiàng)添加到一個.sh文件中,只需要執(zhí)行一個
shell文件就可以安裝所有的安裝包,這也是一個不錯的選擇。
4.
cd xxx/opencv
注:你可以使用 whereis opencv來查找你的opencv路徑,默認(rèn)路徑為/usr/local中。
5. mkdir build #新建一個build文件夾,編譯的工程都在這個文件夾里
6. cd build/
7. cmake -
D CMAKE_BUILD_TYPE=RELEASE -
D CMAKE_INSTALL_PREFIX=/usr/local -
D WITH_TBB=ON -
D WITH_V4L=ON -
D WITH_QT=ON -
D INSTALL_C_EXAMPLES=ON -
D
INSTALL_PYTHON_EXAMPLES=ON -
D WITH_OPENGL=ON ..
# 利用cmake來編譯整個工程,這一步在編譯源碼中經(jīng)常會看到。
注:
1)CMAKE_INSTALL_PREFIX用來指定安裝的位置。INSTALL_C_EXAMPLES用來安裝官方的opencv(
C樣例)。INSTALL_PYTHON_EXAMPLES安裝python樣例。這些樣例可以用于后面的測試。
2)這個階段需要花費(fèi)一定的時間。
3)如果cmake成功,會出現(xiàn)下面的輸出結(jié)果。
-- Generating done
-- Build files have been written to: /home/ise/software/opencv-
3.2.0/build
8.
sudo make -j8
注:
1)其中-j表示本機(jī)的內(nèi)核數(shù),可以加快執(zhí)行,如果你CPU是四核的,你需要使用 -j4
2)這個過程會花費(fèi)相當(dāng)長的一段時間,你需要耐心的等待,建議你去干別的事情,因?yàn)樗枰ㄙM(fèi)半小時左右。
9.
sudo make install
10.
sudo /bin/bash -c
'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
11.
sudo ldconfig
12.
sudo gedit /etc/bash.bashrc
13. 在文件的末尾添加PKG_CONFIG_PATH=
$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
14.
sudo source /etc/bash.bashrc
15. 重啟系統(tǒng)后
cd到build文件夾下
16.
sudo apt-get install checkinstall
17.
sudo checkinstall
18. 按照提示就行操作即可。注:
1)使用checkinstall的目的是為了更好的管理我安裝的opencv,因?yàn)閛pencv的安裝很麻煩,卸載更麻煩,其安裝的時候修改了一大堆的文件,當(dāng)我想使用別的版本的opencv時,將當(dāng)前版本的opencv卸載就是一件頭疼的事情,因此需要使用checkinstall來管理我的安裝。
執(zhí)行了checkinstall后,會在build文件下生成一個以backup開頭的.tgz的備份文件和一個以build開頭的.deb安裝文件,當(dāng)你想卸載當(dāng)前的opencv時,直接執(zhí)行dpkg -r build即可。
2)這幾步可以不執(zhí)行,它只是為了更好的管理opencv,方便卸載。
19. 驗(yàn)證opencv是否正確安裝,這一步非常關(guān)鍵,有很多人會直接忽視掉這個過程,直接跑別人的代碼,代碼一直報錯,卻找不到問題,最后發(fā)現(xiàn)是自己的opencv沒有配置好,這就有些尷尬啦。
方案一:測試自己寫的一個小案例 -- 利用opencv來讀取lena圖片
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{Mat srcImage = imread(
"lena.jpg");imshow(
"srcIMage",srcImage);waitKey(
0);
return 0;
}
1)執(zhí)行g(shù)++ `pkg-config opencv --cflags` opencv.cpp -o opencv `pkg-config opencv --libs`
2)./opencv
# 運(yùn)行結(jié)果注:你需要保證lena.jpg位于當(dāng)前目錄下。
輸出的結(jié)果如下所示:
方案二:測試opencv自帶的樣例
1)cd ~/opencv/samples/c
# 切換到opencv的樣例文件夾
2)chmod +
x build_all
.sh # 改變文件的權(quán)限
3)./build_all
.sh # 編譯所有的示例代碼
4)運(yùn)行人臉檢測代碼
./facedetect --cascade=
"/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=
1.5 lena
.jpg
結(jié)果如下所示:
. --. ---. --. .
~
/opencv-2.4.9/build/bin/cpp-example-grabcut ~
/opencv-2.4.9/samples/cpp/lena.jpg
運(yùn)行結(jié)果如下所示:
注:
1)這里面有很多有趣的樣例,你可以進(jìn)行測試。它們可能需要配置一些參數(shù),你可以查看“readme.txt”文件來了解詳情。
2)lena.jpg原始圖像如下所示:
3)建議你安裝最新版本的opencv庫,因?yàn)樾掳姹緯倪M(jìn)一些Bug的同時增加一些新的函數(shù)和功能。由于opencv的版本更新速率很快,這個博客很快就是過時,但是不同版本的安裝流程基本相同,你仍然可以使用這個教程進(jìn)行安裝。
4)在編譯cmake和make的過程中,可能會出現(xiàn)一些錯誤,如果你解決了相關(guān)問題,希望你能夠共享,我將加入這個博客中。
5)如果您對本博客有任何問題,可以給我留言,我會在第一時間進(jìn)行恢復(fù)大家,一起學(xué)習(xí),一起進(jìn)步。
6)由于個人能力有限,難免會有一些問題,還望大家多多包涵。
7)本博客是我自己的原創(chuàng),如果想要轉(zhuǎn)載,需要與我取得聯(lián)系,我會盡快回復(fù)大家。
郵箱:1575262785@qq.com
總結(jié)
以上是生活随笔為你收集整理的Linux16.04配置OpenCV3.2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。