文章目錄
[TOC]
前言
自己近期在學習機器學習,想要動手做一個人臉識別項目,而OpenCV是一個非常不錯的開源計算機視覺和機器學習庫,里面包含很多人臉檢測和識別算法,并且包含很多訓練好的模型,實際實踐起來相對簡單,很適合現階段的學習。OpenCV支持Python、C++、Java等多種語言,基于Python環境的搭建過程比較簡單(Pycharm+Anaconda+OpenCV),本文主要記錄VisualStudio下C++環境的搭建以及OpenCV相關的配置
環境
Windows10
Visual Studio 2019
OpenCV-4.3.0
引用
1.官網VS2019安裝教程
2.創建C++控制臺程序官網教程
3.visual studio 2019安裝配置可編寫c/c++語言的IDE環境
4.Visual Studio 與Visual C++ 有什么區別
5.VS2017+opencv4.2.0環境搭建詳細步驟圖解
VS2019下載與安裝
-
VS官網免費下載Visual Studio 2019社區版
Y6YFDx.md.png - 在VS2019 installer中勾選C++組件選項,也可以修改安裝路徑(本機C盤是SSD,使用了默認路徑,以便打開速度更快)
Y6ttw6.md.png - 等待安裝完畢
OpenCV下載與安裝
下載
官網下載OpenCV
https://opencv.org/releases/選擇當前最新版本的
OpenCV-4.3.0
,點擊Windows
[圖片上傳失敗...(image-bb29f9-1589629891250)]注意:不同版本的OpenCV對應于不同版本的
Visual C++
,這里的vc14_vc15
表示包含VC++14
和VC++15
編譯后的兩個版本。之所以要注意這一點是因為不同的版本的Visual Studio
中包含不同版本的Visual C++
。關于這兩者之間的關系,可以參考引用[4]。-
部分
Visual Studio
與Visual C++
版本對應關系如下表:Visual Studio 版本 Visual C++ 版本 VS 6.0 VC 6.0 VS 2013 VC 12 VS 2015 VC 14 VS 2017 VC 15 VS 2019 VC 16
安裝
-
配置環境變量,將安裝文件下的
bin
文件添加到系統變量Path
中,例如添加D:\Program Files\OpenCV\build\x64\vc15\bin
,根據自己的安裝路徑調整
YcpCsP.png 注意:選擇
vc15
對應的文件夾
創建&配置C++項目
填寫項目名稱和存放路徑
[圖片上傳失敗...(image-643b74-1589629891250)]-
項目配置有兩種方式:
- 一種是只配置當前項目的設置
- 一種是配置當前用戶的設置
-
以配置當前項目為例:
-
編寫簡單的C++程序,并將編譯平臺設置為
x64
這是因為OpenCV4.3.0
只支持x64
Ycu4iR.png -
右擊項目名
OpenCV
→Properties
→VC++ Directories
YcKytA.png -
配置頭文件包含路徑,編輯
include Directories
,將目錄D:\Program Files\OpenCV\build\include
和目錄D:\Program Files\OpenCV\build\include\opencv2
加入其中
YcQPaQ.png -
配置庫文件路徑,編輯
Library Directories
,添加目錄D:\Program Files\OpenCV\build\x64\vc15\lib
YcQWdg.png 配置鏈接器,回到
OpenCV Property Pages
頁面,點擊Linker
→Input
,選擇右側第一個附加依賴項Additional Dependencies
,點擊編輯
[圖片上傳失敗...(image-ed7c6e-1589629891250)]-
將文件夾
D:\Program Files\OpenCV\build\x64\vc15\lib
下的opencv_world430d.lib
文件名加入其中(注意:不同OpenCV版本的這個庫文件編號不同,具體依據自己實際下載情況)
Yc1h2n.png
opencv_world430d.lib是Debug版本的文件庫,填入即可
Yc1cVS.png 點擊
應用
和確認
,重啟VS2019
測試
- 替換
main.cpp
內容為以下測試代碼:
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int argc, char* argv[]) {
const char* imagename = "****";//此處為你自己的圖片路徑
//從文件中讀入圖像
Mat img = imread(imagename, 1);
//如果讀入圖像失敗
if (img.empty()) {
fprintf(stderr, "Can not load image %s\n", imagename);
return -1;
}
//顯示圖像
imshow("image", img);
//此函數等待按鍵,按鍵盤任意鍵就返回
waitKey();
return 0;
}
-
點擊
Build
→build solution
或則Ctrl+Shift+S
,觀察編譯輸出的信息,沒有問題選擇Debug
→Start Debuging
或者F5
,觀察運行結果
YcYb9g.png 如果出現以上界面,說明配置成功(示例代碼沒有提供照片路徑,需要自己添加)