3.1 (win10 + vs2019) cmake編譯 (opencv4.1.0 + opencv_contrib4.1.0)

目錄:

0. 一起走進openCv - 目錄

A. 步驟

  • 1.使用cmake-gui配置opencv
  • 2.添加opencv_contrib,生成建構檔
  • 3.使用vs2019打開建構項目,編譯、安裝

B. 簡介

1. cmake簡介

cmake是跨平臺的建構工具,能產生標準的建構檔(如Unix的 Makefile 或 Windows projects/workspaces)。其他工具利用標準的建構檔來生成軟件。

2. opencv_contrib簡介

opencv中用於放置已開發的穩定功能模塊,contrib中是正在開發的新特性分支。

contrib中包含 釋義
aruco 增強現實
bioinspired 生物視覺
cnn_3dobj CNN物體識別和姿態估計
face 人臉識別
fuzzy 視覺的模糊邏輯
freetype 寫字
line_descriptor 線條匹配與提取
ovis 3D可視化
text 文字識別
tracking 目標跟蹤
xfeatures2d 2d特徵算法
ximgproc 擴展的圖像處理
xobjdetect 增強的2d物體檢測
等等

B. 安裝

注意:筆者使用的win10系統

1. 安裝cmake

點擊安裝即可

2. 安裝vs2019

可參考之前的博客:
圖文詳解 - windows下安裝vs2017(適用vs2019)

3. 安裝openCv

3.1 opencv安裝包

點擊下載,如圖所示:

可參考之前的博客:
openCv4.1.0+win10(x64)+vs2019環境搭建

4. 下載opencv_contrib

注意: opencv安裝包和contrib壓縮包的版本要一致,否則後面的編譯會出錯

4.1 opencv_contrib壓縮包

點擊下載,如圖所示:

C. 配置和編譯

1.使用cmake-gui配置opencv

1.1 打開安裝好的cmake-gui

1.2 使用gui配置opencv

注意:指定的“編譯目錄”如果沒有的話,點擊configure後,確定即可

選配編譯環境(我們指定爲vs2019)

配置完成:

1.3.添加opencv_contrib,生成建構檔


3.使用vs2019打開建構項目,編譯、安裝

在cmake-gui完成Generate後,"Open Project"就由灰色變爲可選了,右擊就使用之前配置的vs2019來打開編譯(可以根據需要編譯,如編譯Release和Debug版):

4. 新建一個opencv項目,更新vs2019項目的屬性文件,使用新編譯的opecv庫和擴展庫contrib

可參考(需要使用"build/install/目錄下"對應的信息):2. win10(x64)+vs2019+openCv4.1.0環境搭建

特別注意項:

  • 1.別忘了爲新opencv編譯"build\install\x64\vc15\bin"增加win10的環境變量
  • 2.vs2019的屬性文件的"鏈接器"->“輸入”->“附加依賴項”,需要添加所有的新庫文件名稱
  • 其他需要更改項:
    • “VC++目錄”->“包含目錄”
    • “VC++目錄”->“庫目錄”

測試代碼1(測試opencv):

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main()
{
	String winname = "Image Window";
	//當前目錄中添加一個名稱爲"color_wheel.jpg的圖片文件"
	//指定圖片來源和名稱要和實際對應, 注意“/”
	Mat image = imread("./color_wheel.jpg");
	if (image.data == NULL)
	{
		cerr << "錯誤: 沒找到文件。" << endl;
	}
	else
	{
		//指定圖片顯示器的標題名稱
		imshow(winname, image);
	}
	//等待按鍵操作,避免閃退
	waitKey(0);
	return 0;
}

測試代碼2(測試contrib)

#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2\face.hpp>

using namespace std;
using namespace cv;
using namespace face;

int main()
{

    Ptr<FaceRecognizer> model;
	waitKey(0);
	return 0;
}

編譯測試代碼成功,則表示新opencv庫和contrib庫編譯成功

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