wndows平台VS2019+OpenCV+cmake简单应用

news2025/1/15 20:03:21

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++实现)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/156133.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

普中学习板准备工作

目录 1.1 ch341驱动安装 1. 目标板上的usb-串口模块插上 2. 按下目标板上的上电按钮 3. 打开ch341驱动程序&#xff0c;点击安装&#xff0c;等待结果 1.2 使用自动下载软件 1. 使用普中的自动下载软件 2. 串口号处选择安装好的驱动端口 3. 打开文件选择编译好的程序 …

2023 RealWorldCTF “Ferris proxy”逆向题分析(不算wp)

这题第二天才开始做&#xff0c;结果到比赛后4个小时才做出来&#xff0c;真是老了&#xff0c;不过也算有收获&#xff0c;对rust的程序更熟悉了~ client编译后的代码有41M&#xff0c;WTF 主函数入口 根据main函数找到两个入口 第二个函数很明显是主入口&#xff0c;不过…

数字图像相关系列笔记:DuoDIC

文章目录概述Algorithms and workflowStep 1: Stereo camera calibrationStep 2: Image cross-correlation (2D-DIC)Step 3: 3D reconstructionStep 4: Post processingValidation using a rigid body motion (RBM) testLimitations遗留问题参考资料附录概述 3D-DIC is a non-…

【C++、数据结构】AVL树 模拟实现

文章目录&#x1f4d6; 前言1. AVL树的概念1.1 二叉搜索树的缺点&#xff1a;1.2 AVL树的引入&#xff1a;1.2 AVL树的性质&#xff1a;2. AVL树的模拟实现2.1 AVL树结点的定义&#xff1a;2.2 AVL树的插入&#xff1a;&#xff08;重点&#xff09;2.2.1 插入结点后平衡因子的…

【前端】Vue项目:旅游App-(14)home+search:搜索按钮及其路由跳转、分组数据的网络请求request、数据存储store和动态显示

文章目录目标过程与代码搜索部分&#xff1a;搜索按钮点击搜索按钮路由跳转并传数据search页面隐藏TabBar分类部分&#xff1a;数据请求&#xff1a;request、store显示数据分类的样式总代码修改或添加的文件common.cssrouter的index.jsservice的home.jsstore的home.jshome-cat…

Windows系统下 pyinstaller将python文件打包成可执行文件exe的方法

使用环境为Windows10系统&#xff08;64&#xff09;&#xff0c;Python版本为3.11.1。 1.将pip加入环境变量 &#xff08;1&#xff09;右击此电脑点击"属性"&#xff0c;点击高级系统设置&#xff0c; &#xff08;2&#xff09;选择最下面的环境变量&#xff1b…

C++之继承

文章目录一、继承的基本理解1.继承的概念2.继承的定义二、基类和派生类对象赋值转换三、继承中的作用域四、派生类的默认成员函数五、继承与友元六、继承与静态成员七、复杂的菱形继承及菱形虚拟继承1.继承关系2.菱形继承存在数据冗余和二义性的问题3.虚拟继承可以解决菱形继承…

前端优化原理篇(生命周期)

1&#xff0c; 性能评估模型 对于前端的性能的评判 主要是以下四个方面&#xff1a; 2&#xff0c;性能测量工具 1&#xff0c;浏览器的performarce功能 指路可看链接 2&#xff0c;lighthouse工具 3&#xff0c;生命周期 网站 页面的整个生命周期&#xff0c;通俗的讲&a…

移动端App 页面秒开优化总结

前言 App优化&#xff0c;是一个工作、面试或KPI都绕不开的话题&#xff0c;如何让用户使用流畅呢&#xff1f;今天谨以此篇文章总结一下过去两个月我在工作中的优化事项到底有那些&#xff0c;优化方面还算小白&#xff0c;有不对的地方还望指出海涵, 该文章主要通过讲述Nati…

CSS入门三、盒子模型

零、文章目录 文章地址 个人博客-CSDN地址&#xff1a;https://blog.csdn.net/liyou123456789个人博客-GiteePages&#xff1a;https://bluecusliyou.gitee.io/techlearn 代码仓库地址 Gitee&#xff1a;https://gitee.com/bluecusliyou/TechLearnGithub&#xff1a;https:…

力扣sql基础篇(四)

力扣sql基础篇(四) 1 每位学生的最高成绩 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 # rank()函数间隔排序 若前两个字段值相同且都是并列的第一名,那么后面的一个非连续数字就是第三名 如 1 1 3 SELECT e.student_id,e.course_id,e.grade FROM…

ISO12233分辨率测试卡分类及功能说明

概述相机图像分辨率的测试&#xff0c;依据的标准是ISO 12233. 目前分为 ISO12233:2000 ,ISO12233:4000, ISO12233:2014.目前很多厂家已经开始使用新的ISO标准&#xff0c;淘汰了十几年前的“落伍”标准&#xff0c;而更新成了ISO12233&#xff1a;2014。新的分辨率测试标板是由…

代码随想录算法训练营第四期第五十六天 | 583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结篇

583. 两个字符串的删除操作 # 给定两个单词word1和word2&#xff0c;返回使得word1和word2相同所需的最小步数。 # 每步可以删除任意一个字符串中的一个字符。 # # 示例 1&#xff1a; # 输入: word1 "sea", word2 "eat" # 输出: 2 # 解释: 第一步将 &…

安顺控股冲刺A股上市:拟募资6.5亿元,九成收入来自天然气销售

近日&#xff0c;安顺控股股份有限公司&#xff08;下称“安顺控股”&#xff09;递交招股书&#xff0c;准备在上海证券交易所主板上市。本次冲刺上市&#xff0c;安顺控股计划募资6.50亿元&#xff0c;将用于溧阳市城镇燃气高压管网二期项目、溧阳市美丽乡村天然气利用项目一…

openstack私有网络

1.前情回顾 目前环境使用的是Provider网络现在需要将其修改为Self-service网络&#xff0c;类似于公有云的vpc网络 2.流程 1.控制节点配置修改 1.修改/etc/neutron/neutron.conf的[DEFAULT]区域 # 原来的配置 # core_plugin ml2 # service_plugins # # 修改后的配置 c…

GitHub Enterprise Server 存在授权不当漏洞(CVE-2022-46258)

漏洞描述 GitHub Enterprise Server 是一个面向开源及私有软件项目的托管平台&#xff0c;GitHub scope 用于限制 OAuth token 的访问范围。 在 GitHub Enterprise Server 中&#xff0c;除非提交位于同一存储库的不同分支中且和 Workflow files 内容相同的 Workflow 文件 &a…

【学习】Reptile、梯度下降的LSTM、Siamese Network、原型网络、匹配网络、关系网络

文章目录ReptileRNNLSTM梯度下降的LSTM基于度量的方法Siamese NetworkN-way Few/One-shot Learning原型网络匹配网络关系网络虚拟数据的少量学习Train Test as RNNReptile RNN LSTM RNN的变形 加入门 梯度下降的LSTM GD看似像简化的LSTM 可以让机器自动学习这些zf和zi …

sql的where使用运算后的列后报错

sql的where语句中如果使用了经过运算处理后的某个列的话会报错&#xff0c;例如&#xff1a;上面红框部分就是经过运算后的列&#xff0c;但这个语法是错误的&#xff0c;但如果想通过运算后的某个列来筛选条件&#xff0c;应该怎么办&#xff1f;可以使用嵌套查询&#xff1a;…

SpringBoot实践(三十八):自定义spring-boot-starter

目录 自动配置原理 自定义starter包 导入springboot的自动配置依赖 测试业务代码 spring.factories配置 ​编辑 本地包上传 使用自定义starter依赖 测试和配置 自动配置原理 基于springBoot的starter机制能够让我们在使用外部包时候非常方便&#xff0c;只需要引入该组…

PCB学习笔记—3D PCB封装的创建

放置3D元件体&#xff1a;常规的、自定义、圆柱形、球体。第一个是厚度&#xff0c;第二个是焊盘和芯片的悬浮高度。一般电阻的高度设置成0.6mm就够了&#xff0c;电容1.25mm&#xff0c;悬浮高度为0。按键&#xff1a;放置3D元件体&#xff0c;Tab键&#xff0c;选择常规&…