系統:VMwareWorkstation裏的虛擬機ubuntu16.04,64位系統。
1、安裝openCV
1.1、下載openCV
https://github.com/opencv/opencv/archive/2.4.11.zip
這是官網的下載鏈接,你們可以自己去官網下載最新版的(以爲我的鏈接可能失效。另外,下文的鏈接你們也可以去官網下載最新版)。下載後解壓到任意一個文件夾(右擊,提取到此處)。
1.2 、安裝cmake
下載鏈接:
https://cmake.org/files/v3.8/cmake-3.8.0.tar.gz
下載後解壓,安裝先看README文件進行安裝。我的版本是直接在終端裏運行: ./bootstrap && make && make install
2、安裝openCV (轉載,原文)
①
進入解壓後的OpenCV文件夾,並運行
cmake .
注意後面有一個點
②.運行make
③.運行sudo make install
④配置環境變量
運行
sudo gedit /etc/ld.so.conf.d/opencv.conf(注:該文件爲linux中的動態鏈接庫的配置文件)
在文件中添加
/usr/local/lib
並保存
運行下面的命令來配置library:
sudo ldconfig(注:用上面的動態鏈接庫配置文件來配置動態鏈接庫)打開另一個文件
sudo gedit ~/.bashrc
在最後面添上:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
在終端運行
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config
然後重啓。
3、安裝eclipse (部分轉載,原文)
3.1、安裝java JDK
下載地址:
解壓安裝後,
1.下載jdk , 地址
2.下載 eclipse for c++,地址
3.將jdk解壓到 /opt/jvm/文件夾中
操作步驟:
sudo mkdir /opt/jvm
sudo tar zxvf jdk-8u77-linux-x64.tar.gz -C /opt/jvm
4.配置jdk的環境變量,打開 /etc/profile文件(sudo vim /etc/profile),在文件末尾添加下語句:
export JAVA_HOME=/opt/jvm/jdk1.8.0_77
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
保存後退出。
使其立即生效:sudo source /etc/profile
查看是否安裝成功:java -version 出現
說明jdk安裝成功。
5.安裝 eclipse 將其解壓(建議不要解壓到root的文件夾,因爲容易使下面的快捷方式沒有圖標,~爲你的路徑,如果不修改,就是用戶home路徑)
sudo tar zxvf eclipse-jee-mars-2-linux-gtk-x86_64.tar.gz -C ~
6.創建eclipse桌面快捷方式圖標。
cd 桌面
sudo touch eclipse.desktop
sudo vim eclipse.desktop
輸入以下內容:(~爲你的安裝路徑)
[Desktop Entry]
Encoding=UTF-8
Name=Eclipse
Comment=Eclipse
Exec=~eclipse/eclipse
Icon=~eclipse/icon.xpm
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;
保存。
執行:sudo chmod u+x eclipse.desktop 將其變爲可執行文件.
在~/eclipse/文件夾中創建一個指向JRE路徑的軟鏈接。
打開 Eclipse
到此eclipse就全部安裝完啦。
4、在eclipse裏配置openCV
4.1、檢測攝像頭
在終端中輸入cheese,打開cheese後看是否有攝像頭採集的圖像。如果有,則進入4.2,否則繼續看。
在VMware Workstation裏選擇 虛擬機->可移動設備 ,在裏面吧攝像頭切換到虛擬機裏(有對號就是在虛擬機裏),虛擬機裏最好只能掛載一個攝像頭(我有兩個攝像頭,一個筆記本攝像頭,一個usb攝像頭)。
輸入:cd /dev
cat vi*
確認只有一個video0,因爲我門只想要一個攝像頭。
輸入cheese,發現可以採集圖像。我在用usb採集圖像時,碰見圖像直接卡住不懂,如下圖:
我的建議是,如果在上面只看到一個video0,那麼這個問題就是電腦抽風了。我百度谷歌了好久都麼用,重啓電腦都沒有用。最後關機,睡了一覺,第二天自己好了。
4.2、寫openCV程序(部分轉載,原文)
配置方法如下:
1,新建一個c++項目:new->project->c++project->Hello World C++ Project(toolchains:linux C++),然後一路next。
2,右鍵點擊新建的項目,在項目屬性的C++ Build->Settings,這裏要對編譯器參數進行設置。在GCC C++ Compiler->include的includepaths中新增一個/usr/local/include/opencv,需要注意這裏的路徑在Linux上安裝opencv的include的路徑,可以直接照搬(建議先自己去該路徑下看看有沒有東西)。
3,在GCC C++ Linker->Libraries的libraries中分別加入opencv_core, opencv_highgui, opencv_imgproc,opencv_ml(注意這個一次只能添加一個,默認的已經帶-l了。建議去改下面的路徑下看看,乾脆把所有模塊全添加了);並在下面的library search path一項中新增爲/usr/local/lib,與第2步的注意事項相同。
如此三步,就完成了eclipse下配置opencv的步驟!步驟2和3的效果如下。
測試用例:
//============================================================================
// Name : opencvTest.cpp
// Author :
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/video/background_segm.hpp>
using namespace std;
using namespace cv;
int main()
{
cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
VideoCapture capture(0);
while(1)
{
Mat frame;
capture>>frame;
imshow("讀取視頻",frame);
waitKey(30);
}
return 0;
}
測試結果: