環境
- Ubuntu18.04
- OpenCV4
准備
需要下列的依賴,[optional]為可選。
[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
下載OpenCV
- 發行版本:OpenCV Release
- github源碼:OpenCV github
使用CMake構建
創建build文件夾
cd ~/opencv
mkdir build
cd build
配置Cmake ,選擇需要編譯的選項
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -DOPENCV_GENERATE_PKGCONFIG=ON ..
注意: -DOPENCV_GENERATE_PKGCONFIG=ON 會生成.pc文件, 想在VSCode中使用的話一定要加。
執行make
make -j7 # 使用7個線程
安裝庫文件
sudo make install
使用
VSCode 使用
要想在VSCode中使用OpenCV, 要將生成的.pc文件添加到環境變量。
看下是否有這個文件
接下來設置環境變量
vim /etc/bash.bashrc
添加下面兩行
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
Cmake 和 g++使用 OpenCV
創建一個測試文件,DisplayImage.cpp
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
if ( argc != 2 )
{
printf("usage: DisplayImage.out <Image_Path>\n");
return -1;
}
Mat image;
image = imread( argv[1], 1 );
if ( !image.data )
{
printf("No image data \n");
return -1;
}
namedWindow("Display Image", WINDOW_AUTOSIZE );
imshow("Display Image", image);
waitKey(0);
return 0;
}
g++直接編譯
g++ `pkg-config opencv --cflags` DisplayImage.cpp -o DisplayImage `pkg-config opencv --libs`
運行一下
./DisplayImage /home/hichens/Datasets/pic/bigbang.jpg # 圖片路徑
CMake 編譯
創建 CMakelists.txt文件
vim CMakelists.txt
build
mkdir build
cd build
cmake ..
make
運行一下
./DisplayImage /home/hichens/Datasets/pic/bigbang.jpg # 圖片路徑