OpenCV:安裝opencv-3.1.0和opencv_contrib-3.1.0

在Windows10中配置OpenCV環境

軟件平臺:Windows 10CMake 3.13.4Qt 5.11.3

下載opencv項目

下載Windows版本的OpenCV-3.1.0:https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.1.0/opencv-3.1.0.exe/download

在這裏插入圖片描述下載的文件爲:opencv-3.1.0.exe,其是一個壓縮文件,雙擊之,將其解壓至一個選定的文件夾中。如下爲項目的文件結構,其中,一個爲build文件夾,一個爲sources文件夾,build爲一個標準的項目構建目錄,它適用於一般的情況。而如果build不適用時,可選擇編譯sources中的源代碼,以生成一個適合自己系統使用的,和build類似的構建目錄。
在這裏插入圖片描述

本系統將使用的,用於編譯項目的Qt編譯套件爲:Qt 5.11.3 MinGW 5.3.0 32bit,爲了顧名思義,在與build的同路徑中,新建一個構建目錄mingw530,以存儲相關的編譯文件和安裝文件。
在這裏插入圖片描述

使用CMake工具對opencv項目進行構建與分析

由於OpenCV是一個cmake項目,所以要編譯OpenCV源碼,需要先安裝cmake工具。在安裝了cmake工具後,可通過如下的步驟,對opencv項目進行構建與分析。

打開CMake(cmake-gui)

選定源代碼路徑和構建目錄路徑

第一行爲源代碼路徑,選擇..\opencv\sources文件夾,本系統的爲:D:\Software\opencv\sources。第二行爲項目構建目錄,此目錄存儲了cmake、make和install輸出的相關文件,路徑位置可自選,本系統的爲:D:\Software\opencv\mingw530
在這裏插入圖片描述

選定源代碼路徑和構建目錄路徑後,點擊Configure,以配置項目。第一次點擊Configure時,會出現如下的界面,用於設置生成器和編譯器。

選擇MinGW MakefilesSpecify native compilers,並點擊Next
在這裏插入圖片描述

爲項目選擇代碼編譯器,此處將選擇Qt中Tools下Qt 5.11.3 MinGW 5.3.0 32bit編譯套件中的C/C++編譯器。本系統的C/C++編譯器路徑爲:C編譯器:D:/Software/Qt/Qt5.11.3/Tools/mingw530_32/bin/gcc.exe,C++編譯器:D:/Software/Qt/Qt5.11.3/Tools/mingw530_32/bin/g++.exe,具體的路徑可根據Qt安裝路徑修改。點擊Finish
在這裏插入圖片描述

等待一會,待Configure完後,在輸出的cmake選項中,選擇WITH_QT(選擇Qt支持)和WITH_OPENGL,然後,再一次點擊Configure進行項目配置。配置結束後,點擊Generate,以生成用於編譯的相關文件。待ConfigureGenerate這兩步完成後,關閉掉CMake(cmake-gui)界面,然後開始對項目進行編譯與安裝。

編譯與安裝

本系統將使用Qt 5.11.3 MinGW 5.3.0 32bit編譯套件編譯與安裝opencv項目,其編譯和安裝命令分別爲:mingw32-makemingw32-make install

定位

# 打開命令行窗口,並定位至項目的構建目錄
# 本系統的在:D:\Software\opencv\mingw530
#
cd d:
cd Software/opencv/mingw530

編譯

mingw32-make

安裝

# 項目的安裝目錄默認在構建目錄下的install文件夾中
# 本系統的在:D:/Software/opencvmingw530/install
#
mingw32-make install

配置環境變量

在系統環境變量Path中加入:D:\Software\opencv\mingw530\install\x86\mingw\bin;D:\Software\opencv\mingw530\bin;

如此,對opencv的編譯、安裝與配置就完成了!

如下爲構建目錄mingw530的文件結構,其中,文件夾install就存儲了我們以後將要使用的相關安裝文件
在這裏插入圖片描述
打開項目的安裝文件夾install,如下爲install的文件結構,其中,include中包含的是項目頭文件,x86中包含的是項目庫文件。而頭文件與庫文件就是調用一個庫所必需的兩類型文件。
在這裏插入圖片描述

要在程序中使用opencv,只要在項目中添加相關頭文件與庫文件的路徑即可,如下即爲opencv項目的相關頭文件與庫文件
在這裏插入圖片描述

在這裏插入圖片描述
要在Qt項目中使用opencv,需要在項目的項目管理文件.pro中,添加以下代碼,以完成往程序中添加相關頭文件與庫文件的操作(這些代碼包含了opencv項目的所有頭文件與庫文件)

# 添加opencv項目的所有頭文件
#
INCLUDEPATH += D:\Software\opencv\mingw530\install\include \
               D:\Software\opencv\mingw530\install\include\opencv \
               D:\Software\opencv\mingw530\install\include\opencv2
               
# 添加opencv項目的所有庫文件
#
LIBS += D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_calib3d310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_core310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_features2d310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_flann310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_highgui310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_imgcodecs310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_imgproc310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_ml310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_objdetect310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_photo310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_shape310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_stitching310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_superres310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_ts310.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_video310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_videoio310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_videostab310.dll.a

測試opencv

基於qmake構建工具,新建一個Qt控制檯應用(項目管理文件的後綴爲:.pro):test

新建文件或項目–>Application–>Qt Console Application–>項目名稱:test–>一路next下去

測試項目的結構

./test
   |
   +---build
   |
   +---images
   |      |
   |      +---1.jpg
   |
   +---main.cpp
   |
   +---test.pro
   |
   +---test.pro.user

代碼清單:main.cpp

#include<iostream>
#include<string>

#include<opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main()
{
  cv::Mat img;
  //根據圖像的目錄進行修改,記得用轉義字符'\\'
  string filePath="..\\images\\1.jpg";
  img =cv::imread(filePath,IMREAD_COLOR);

  //判斷圖像文件是否正確讀取
  if(img.data==nullptr)
  {
    cerr<<"文件:"<<filePath<<",不存在!"<<endl;
    return 0;
  }

  //讀取圖像的寬、高和通道信息
  cout<<"圖像寬爲:"<<img.cols<<",";
  cout<<"高爲:"<<img.rows<<",";
  cout<<"通道爲:"<<img.channels()<<endl;

  cv::namedWindow("An image",WINDOW_NORMAL);
  cv::resizeWindow("An image",800,450);
  cv::imshow("An image",img);

  cv::waitKey(0);

  return 0;
}

往項目的項目管理文件test.pro中添加以下的opencv頭文件與庫文件包含代碼,這些包含代碼可根據opencv項目安裝情況的不同而做出相應的修改

INCLUDEPATH += D:\Software\opencv\mingw530\install\include \
               D:\Software\opencv\mingw530\install\include\opencv \
               D:\Software\opencv\mingw530\install\include\opencv2

LIBS += D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_calib3d310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_core310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_features2d310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_flann310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_highgui310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_imgcodecs310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_imgproc310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_ml310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_objdetect310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_photo310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_shape310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_stitching310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_superres310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_ts310.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_video310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_videoio310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_videostab310.dll.a

程序的運行結果
在這裏插入圖片描述

安裝opencv_contrib模塊

下載opencv-3.1.0對應的opencv_contrib-3.1.0模塊:https://github.com/opencv/opencv_contrib/tree/3.1.0。下載下來的是一個壓縮包:opencv_contrib-3.1.0.zip,將其解壓後,把其放到opencv的源代碼中。
在這裏插入圖片描述

打開cmake-gui,選擇之前安裝opencv-3.1.0時設置好的源碼路徑和構建目錄路徑。選擇好相應的路徑後,會出現如下的界面,在中間的方框中,定位於OPENCV_EXTRA_MODULES_PATH項,在其後面添加opencv_contrib中的模塊路徑,本系統的爲:D:\Software\opencv\sources\opencv_contrib-3.1.0\modules,注意,是精確至\modules。設置好路徑後,點擊界面左下方的Configure,待配置完後,如果中間處可能還會有紅色的塊,那繼續點擊Configure進行配置(一般會點擊兩次Configure),直到中間處的所有項都變白爲止。至此,進行下一步,點擊Generate,以生成相應的用於編譯的文件,如果結束後,提示Generate Done,那麼整個安裝opencv_contrib模塊的過程就成功一半了。

在這裏插入圖片描述

打開一個命令行窗口,並定位於opencv的構建目錄,然後,輸入編譯命令:mingw32-make對項目進行編譯。
在這裏插入圖片描述
編譯成功後,輸入安裝命令:mingw32-make install對項目進行安裝。
在這裏插入圖片描述
安裝成功後,opencv_contrib模塊就編譯且安裝成功了。

如下爲安裝了opencv_contrib模塊後的庫文件夾中的內容。與安裝opencv_contrib模塊之前相比,無疑增加了許多內容。
在這裏插入圖片描述

在Qt項目中使用opencv時,往項目的項目管理文件.pro中,添加的頭文件與庫文件包含命令需作出如下的更新。

# 添加opencv項目的所有頭文件
#
INCLUDEPATH += D:\Software\opencv\mingw530\install\include \
               D:\Software\opencv\mingw530\install\include\opencv \
               D:\Software\opencv\mingw530\install\include\opencv2

# 添加opencv項目的所有庫文件
#
LIBS += D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_aruco310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_bgsegm310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_bioinspired310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_calib3d310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_ccalib310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_core310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_cvv310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_datasets310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_dnn310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_dpm310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_face310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_features2d310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_flann310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_fuzzy310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_highgui310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_imgcodecs310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_imgproc310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_line_descriptor310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_ml310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_objdetect310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_optflow310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_photo310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_plot310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_reg310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_rgbd310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_saliency310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_shape310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_stereo310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_stitching310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_structured_light310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_superres310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_surface_matching310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_text310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_tracking310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_ts310.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_video310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_videoio310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_videostab310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_xfeatures2d310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_ximgproc310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_xobjdetect310.dll.a \
        D:\Software\opencv\mingw530\install\x86\mingw\lib\libopencv_xphoto310.dll.a

在Ubuntu14.04中配置OpenCV環境

參考文檔

windows10下安裝opencv3.2+QT Creator+MingGW:https://blog.csdn.net/a8039974/article/details/80572806

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章