-
從 OpenCV3.4.6 點擊 Sources 開始下載
opencv
源碼:opencv-3.4.6.zip
,下載完成後解壓縮$ unzip PATH/opencv-3.4.6
-
安裝
cmake
$ sudo apt update $ sudo apt install cmake
-
安裝
opencv
依賴# 同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中源的索引 $ sudo apt update # 安裝 opencv 依賴包 $ sudo apt install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
-
如果安裝
opencv
依賴時 提示E: Unable to locate package ……
錯誤,即 Ubuntu 無法定位某個安裝包,使用以下命令解決。sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" sudo apt update sudo apt install libjasper1 libjasper-dev
2. 編譯 opencv
-
創建編譯文件夾:進入
opencv-3.4.6
解壓縮後的目錄,創建編譯目錄$ cd PATH/opencv-3.4.6 $ mkdir opencv_build $ cd opencv_build
-
工程構建:在
build
目錄下使用cmake
執行以下命令進行工程構建$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
工程構建成功將會有以下輸出:
-
執行
sudo make
,開始編譯opencv-3.4.6
,編譯時間很長,需要耐心等待,開始編譯後命令行輸出如下圖
-
編譯完成後,將
opencv
安裝到 Ubuntu 操作系統中,執行sudo make install
,安裝完成後命令行輸出如下圖。可以看到opencv
已經安裝到/usr/local/lib
中
3. 相關配置
-
opencv 配置文件
- 打開 opencv 配置文件:
sudo vim /etc/ld.so.conf.d/opencv.conf
- 文件末尾添加:
/usr/local/lib
- 關閉配置文件,並執行
sudo ldconfig
使新的更改生效
- 打開 opencv 配置文件:
-
環境變量配置:
-
打開環境變量配置文件:
sudo vim /etc/bash.bashrc
-
文件末尾添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH
-
關閉環境變量配置文件,並執行
source /etc/bash.bashrc
使新的更改生效
-
4. 測試
寫一個簡單的測試程序測試 opencv 是否安裝成功。
4.1 編寫測試代碼
新建一個測試工程,如 test_opencv,編寫 display_image.cpp 文件如下:
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main( int argc, char** argv )
{
cv::Mat image;
image = cv::imread( argv[1], 1 );
if( argc != 2 || !image.data )
{
printf( "No image data \n" );
return -1;
}
cv::namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
cv::imshow( "Display Image", image );
cv::waitKey(0);
return 0;
}
4.2 CMakeLists.txt 文件
編寫 CMakeLists.txt 文件如下:
cmake_minimum_required(VERSION 3.10)
project(display_image)
set(CMAKE_CXX_STANDARD 11)
find_package(OpenCV)
add_executable(display_image display_image.cpp)
target_link_libraries(display_image ${OpenCV_LIBS})
4.3 編譯運行
在測試工程目錄下打開終端,依次運行如下命令:
$ cmake .
$ make
$ ./display_image 圖片路徑
最終顯示結果如下,opencv
安裝成功!
5. QT + OpenCV
-
在 QT 中創建項目:
File
->New File or Project...
->Non-Qt project
->Plain C++ application
-
在新建項目的
.proj
文件中添加以下內容:INCLUDEPATH += /usr/local/include \ /usr/local/include/opencv \ /usr/local/include/opencv2 LIBS += /usr/local/lib/libopencv_highgui.so \ /usr/local/lib/libopencv_core.so \ /usr/local/lib/libopencv_imgproc.so \ /usr/local/lib/libopencv_imgcodecs.so
-
在
main.cpp
文件中編輯以下代碼:#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/opencv.hpp> using namespace std; using namespace cv; int main() { cv::Mat ship = cv::imread("ship.jpg"); cv::imshow("ship", ship); cv::waitKey(0); return 0; }
-
運行以上代碼後顯示圖片如下: