Linux下Opencv的安裝及配置使用
OpenCV是提供原始碼的,所以從這個角度來說,是不區分32或64位的。但是,OpenCV裡面也會有一些已經編譯好了的庫或執行檔案,那麼這個是要區分32或64位的。
一、安裝
1 安裝cmake及一些依賴庫
sudo apt-get install cmake sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
2 安裝OpenCV
從官網下載opencv並解壓,cd命令進入opencv的目錄(原始碼的目錄)
mkdir build
cd build
cmake ..
sudo make
sudo make install
備註:
新增路徑:
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -DEIGEN_INCLUDE_PATH=/usr/local/include/Eigen/
make 時error:
/Users/ajx/Downloads/opencv/opencv_contrib/modules/rgbd/src/odometry.cpp:41:10: fatal error: 'unsupported/Eigen/MatrixFunctions' file not found
#include <unsupported/Eigen/MatrixFunctions>
解決辦法:
sudo apt-get install libeigen3-dev //預設安裝路徑是:/usr/include/eigen3
sudo cp -r usr/include/eigen3/unsported usr/local/include/
二、配置
1 將opencv的庫加入到路徑,從而讓系統可以找到
-
第一步
用vim開啟/etc/ld.so.conf,注意要用sudo開啟獲得許可權,不然無法修改,
如:sudo vim /etc/ld.so.conf,在檔案中加上一行 /usr/loacal/lib,/user/loacal是opencv安裝路徑 就是makefile中指定的安裝路徑
加了之後的變為 -
第二步
再執行sudo ldconfig,
修改bash.bashrc檔案,sudo vim /etc/bash.bashrc
在檔案末尾加入:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
加後的圖: -
第三步
然後source /etc/bash.bashrc
三、測試使用
#include <iostream>
#include <cstdio>
#include <opencv2/opencv.hpp>
#include <unistd.h>
using namespace std;
using namespace cv;
int main()
{
VideoCapture cap; //定義視訊物件
cap.open(0); //0為裝置的ID號
Mat frame;
cap >> frame;
if(frame.data)
{
cout << "!0"<<endl;
imshow("frame",frame);
waitKey(500);//等待按下函式:引數如果寫負數或者0。當顯示圖片後,按下任意鍵後程序退出。如果引數寫為3000就是3秒後程序自動退出
}
//waitKey(30); //0.03s獲取一幀
imwrite("./1.jpg",frame);
//cout <<hex<< frame <<endl;
/*
int c ;
Mat img1 = imread("2.jpg");
namedWindow("影象顯示");
while(1)
{
imshow("影象顯示",img1);
c = waitKey(0);
imwrite("33.jpg",img1);
if(c==27 || char(c)=='q' || char(c) == 'Q')
break;
}
*/
return 0;
}
~
~
g++ mat.cpp -o Mat `pkg-config --cflags --libs opencv`
四、檢視版本號
命令:pkg-config --modversion opencv
結果:2.4.10
五、資料查詢
百度輸入“opencv”出現下圖,可以根據需要點選你需要的資料,比如使用說明書。
六、呼叫多個版本中指定的opencv版本
http://www.linuxdiyf.com/linux/21233.html (多個版本的管理)
解決方案:
現在討論Ubuntu14.04下分別使用CMake和Makefile編譯執行帶Opencv程式的兩種解決方案。
1.CMake下指定Opencv版本
關鍵檔案:OpenCVConfig.cmake。在opencv編譯好後,所在目錄中一般會有一個叫OpenCVConfig.cmake的檔案,這個檔案中指定了CMake要去哪裡找OpenCV,其.h檔案在哪裡等,比如其中一行:
方法:
注意,將其新增在project(MyProjectName)之前。
如CMakeLists.txt內容如下:
cmake_minimum_required(VERSION 2.8)
set(OpenCV_DIR "/home/ubuntu/src/opencv-3.1.0/build")
project( camera )
2.Makefile下指定Opencv版本
關鍵檔案:opencv.pc 。在Makefile下,應該是可以在其中詳細設定Opencv路徑。
我們常常使用pkg-config --modversion 來檢視指定庫的版本,比如檢視opencv版本pkg-config --modversion opencv。其實pkg-config顯示的資訊來自於這個庫對應的.pc檔案,比如安裝了opencv後,我們可以在/usr/local/lib/pkgconfig/ 資料夾下找到opencv.pc或者../opencv2410/build/unix-install/opencv.pc
方法:
如果我在/usr/local/lib/pkgconfig資料夾目錄下新增opencv-3.1.0.pc檔案,是否就可以將版本指向opencv-3.1.0l了呢?答案是肯定的。
備註:
g++ detect.cpp ImageProcessClass.cpp CommonFunClass.cpp CameraProcess.cpp -o Detect `pkg-config opencv halcon --cflags --libs`
參考:https://blog.csdn.net/jay463261929/article/details/53580538