wndows平台VS2019+OpenCV+cmake简单应用
- 1.下载并解压文件
- 2.结合人脸检测demo在vs中进行配置
- 2.1 人脸检测代码
- 2.2 在VS项目—属性中配置
- 2.2.1 配置包含目录
- 2.2.2 配置库目录
- 2.2.3 配置链接器附加依赖项
- 2.3 通过cmake进行配置与编译
- 2.3.1 添加CMakeLists.txt文件
- 2.3.2 cmake命令行执行
- 2.4 执行代码测试效果
- 参考文献
1.下载并解压文件
在opencv 官网下载对应平台的版本,我这里选择当前最新的OpenCV–4.7.0。
解压到指定目录,方便起见,直接加压到C盘或D盘根目录下。
2.结合人脸检测demo在vs中进行配置
2.1 人脸检测代码
在vs中创建项目demo
,代码文件名为main.cpp
。
#include <iostream>
#include <string>
#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/objdetect.hpp>
#include <opencv2/imgproc/types_c.h>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
std::string filepath("test.jpg");
Mat img, gray;
img = imread(filepath, 1);
cvtColor(img, gray, CV_BGR2GRAY);
CascadeClassifier classifier;
classifier.load("C:/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml");
Scalar color = Scalar(0, 255, 255);
vector<Rect> faceRects;
classifier.detectMultiScale(gray, faceRects, 1.1, 3, 0, Size(32, 32));
cout << faceRects.size() << endl;
for (size_t i = 0; i < faceRects.size(); i++)
{
rectangle(img, faceRects[i], color);
}
namedWindow("Display window", WINDOW_AUTOSIZE);
imshow("Display window", img);
waitKey(0);
return 0;
}
haarcascade_frontalface_default.xml
文件在C:/opencv/sources/data/haarcascades
目录下。
此时会提示opencv2下的那些库函数找不到。
2.2 在VS项目—属性中配置
2.2.1 配置包含目录
2.2.2 配置库目录
2.2.3 配置链接器附加依赖项
DEBUG版本使用opencv_world470d.lib
,RELEASE版本使用opencv_world470.lib
。
注意这里不需要添加完整目录。
2.3 通过cmake进行配置与编译
2.3.1 添加CMakeLists.txt文件
cmake_minimum_required(VERSION 3.10)
project(demo)
find_package( OpenCV REQUIRED )
include_directories(${OpenCV_INCLUDE_DIRS})
link_libraries( ${OpenCV_LIBS})
#message( STATUS "OpenCV_INCLUDE_DIRS: ${OpenCV_INCLUDE_DIRS}\n" )
###也可以手动添加include文件及lib
#include_directories("D:/opencv/build/include")
#LINK_LIBRARIES("D:/opencv/build/x64/vc16/lib/opencv_world470.lib")
add_executable(demo main.cpp)
2.3.2 cmake命令行执行
cmd中执行:
cd project_dir
cmake .
cmake --build . --config release
生成对应的exe文件。
2.4 执行代码测试效果
把lena.jpg,放到项目文件目录下:
执行代码,可以看到人脸正确圈出来了:
参考文献
[1] windows下OpenCV的安装配置部署详细教程
[2] OpenCV 最新版windows下安装教程
[3] LINK : fatal error LNK1104: 无法打开文件“opencv_world400d.lib”—VS2017+OpenCV配置过程
[4] Jetson Nano 从入门到实战(案例:Opencv配置、人脸检测、二维码检测)
[5] VS的VC++目录和C/C++
[6] opencv实现人脸识别(c++实现)