visual studio 2013中配置opencv图文教程 Opencv2.4.9安装配置教程

yizhihongxing

Visual Studio 2013中配置OpenCV图文教程

前提条件

在开始配置前,需要确认以下条件已满足:

  1. 已经安装了Visual Studio 2013,且安装的版本为Professional或以上(Community版本不支持使用OpenCV);
  2. 已经下载并安装了OpenCV 2.4.9 或以上的版本。

安装配置过程

步骤一:新建项目

首先,我们需要在Visual Studio中新建一个项目。在新建项目的对话框中,选择Visual C++,然后选择Win32控制台应用程序,并命名为ProjectName(可以根据实际情况自行命名)。然后,按照默认设置,勾选“空项目”(Empty project),并点击“确定”。

步骤二:配置附加包含目录

点击“项目”菜单,选择“ProjectName属性”(其中ProjectName为你之前设置的项目名称)。然后在属性窗口中,选择“VC++目录”下的“包含目录”,单击编辑,添加OpenCV头文件的目录(例如D:\OPENCV2\build\include),并单击“确定”保存。

步骤三:配置附加库目录和链接器库

同样在之前的属性窗口中,选择“VC++目录”下的“库目录”,单击编辑,添加OpenCV库文件的目录(例如D:\OPENCV2\build\x86\vc12\lib)。然后选择“链接器”下的“输入”,单击“附加依赖项”,添加OpenCV的库文件(例如opencv_core249d.lib;opencv_highgui249d.lib)。

步骤四:编写示例代码并测试

在项目中新建.cpp文件,输入以下内容:

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

using namespace std;
using namespace cv;

int main(int argc, char** argv)
{
    Mat img = imread("test.jpg");
    if (img.empty())
    {
        cout << "Could not open or find image" << endl;
        return -1;
    }
    namedWindow("test");
    imshow("test", img);
    waitKey(0);
    return 0;
}

其中,imread函数用于读取名为test.jpg的图片,如果图片不存在,则会输出错误信息。然后,使用namedWindow函数创建一个主窗口,使用imshow函数显示图片,并使用waitKey函数等待用户按键。

进行编译时,需要选择“Release”方式编译,即“生成”->“生成解决方案”,或使用快捷键“Ctrl + Shift + B”。编译成功后,可以在Debug或者Release目录下找到生成的可执行文件,运行后即可显示测试图片。

示例说明

示例一:检测并识别人脸

使用OpenCV的人脸检测功能,先使用级联分类器对象对图像进行分类,然后再在图像中对人脸进行检测。

以下是示例代码:

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

using namespace std;
using namespace cv;

int main(int argc, char** argv)
{
    CascadeClassifier cascade;
    if (!cascade.load("haarcascade_frontalface_alt.xml"))
    {
        cout << "could not read classifer file" << endl;
        return -1;
    }

    Mat img = imread("test.jpg");
    if (img.empty())
    {
        cout<<"could not read image file"<<endl;
        return -1;
    }

    vector<Rect> faces;
    cascade.detectMultiScale(img, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, Size(30, 30));

    for (size_t i = 0; i < faces.size(); i++)
    {
        rectangle(img, faces[i], Scalar(255, 0, 0), 2, 8, 0);
    }

    imshow("test", img);
    waitKey(0);
    return 0;
}

该程序加载了OpenCV预先训练好的人脸分类器文件“haarcascade_frontalface_alt.xml”,并将其应用于输入的图像。然后根据检测到的人脸位置绘制矩形框。

示例二:图像降噪

在图像处理中,降噪是一个常见的需求。OpenCV提供了不同的降噪方法来应对不同的问题。以下示例代码使用中值滤波器进行图像降噪:

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

using namespace std;
using namespace cv;

int main(int argc, char** argv)
{
    Mat img = imread("test.jpg");
    if (img.empty())
    {
        cout<<"could not read image file"<<endl;
        return -1;
    }

    Mat blurred;
    medianBlur(img, blurred, 5);

    imshow("original", img);
    imshow("blurred", blurred);
    waitKey(0);
    return 0;
}

该程序加载名为test.jpg的原始图像,然后使用medianBlur函数进行降噪。通过调整参数,可以调整滤波器的尺寸。最后,程序将原始图像和降噪后的图像同时显示出来,方便观察区别。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:visual studio 2013中配置opencv图文教程 Opencv2.4.9安装配置教程 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • CentOS7 Nvidia Docker环境搭建

    CentOS7 Nvidia Docker环境搭建的完整攻略可以分为以下几个步骤: 准备工作 在开始之前,需要确保以下条件已经满足: 首先,确保你的服务器拥有 Nvidia 显卡,并且已经安装了 Nvidia 驱动程序。 其次,需要安装 Docker,可以通过以下命令安装: $ sudo yum install -y yum-utils $ sudo yum…

    人工智能概览 2023年5月25日
    00
  • nodejs实现连接mongodb数据库的方法示例

    当我们使用Node.js来开发应用程序时,使用MongoDB作为数据库是非常常见的选择。在本文中,我们将学习如何使用Node.js与MongoDB集成,并实现数据库的连接。 环境准备 在开始前,要确保你的机器上已经安装了Node.js, MongoDB和npm包管理器。 安装依赖 要在Node.js应用程序中使用MongoDB,我们需要使用npm安装mong…

    人工智能概论 2023年5月25日
    00
  • Win2008 R2下配制负载均衡方法(图文简洁版)

    下面我将为您详细讲解“Win2008 R2下配制负载均衡方法(图文简洁版)”的完整攻略。首先,让我们从以下几个方面来讲解:环境准备、网络配置、安装NLB服务、创建NLB群集和添加主机节点、配置NLB群集属性以及测试NLB群集。 环境准备 在开始之前,我们需要准备好以下内容: 两台或以上Windows Server 2008 R2服务器; 一个HUB或交换机,…

    人工智能概览 2023年5月25日
    00
  • php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式

    PHP 与 Nginx 处理方式 在 Web 服务器中,PHP 与 Nginx 的结合使用可以有效地提高网站的响应速度和并发量。Nginx 作为 Web 服务器,负责接收和响应客户端的请求,同时可以通过配置文件实现负载均衡、缓存和反向代理等功能;而 PHP 则作为处理脚本,负责处理客户端的请求并生成响应返回给 Nginx。 nginx 与 php-fpm 通…

    人工智能概览 2023年5月25日
    00
  • 一文读懂区块链BSN是什么意思?

    一文读懂区块链BSN是什么意思? BSN是什么? BSN是Blockchain-based Service Network(基于区块链的服务网络)的缩写。它是由中国国家信息中心、中国电信、中国银行、中国移动、中国联通等七家单位共同发起和建立的区块链技术基础设施。 BSN的作用 BSN旨在提供一种基于互联网的、低成本的、跨平台的、安全可信的、易部署的区块链技术…

    人工智能概览 2023年5月25日
    00
  • Nginx反向代理学习实例教程

    当谈到Nginx时,最常被提到的就是它作为一个反向代理的功能。反向代理在现代网络架构中扮演着非常重要的角色,因为它可以允许多个服务器在后端工作,但在前端仅暴露一个出口。这也有助于提高系统的可扩展性和安全性。 以下是Nginx反向代理的学习实例教程,它会带你从头开始学习如何使用Nginx来实现反向代理。 技能要求 在深入学习Nginx反向代理之前,需要掌握以下…

    人工智能概览 2023年5月25日
    00
  • Angular.js中上传指令ng-upload的基本使用教程

    下面是关于“Angular.js中上传指令ng-upload的基本使用教程”的完整攻略,具体说明如下: 什么是ng-upload ng-upload是一个AngularJS的上传指令,能够帮助我们方便地实现文件上传功能。 安装和引入 安装 # 使用 bower 安装 bower install ng-file-upload # 或者使用 npm 安装 npm…

    人工智能概论 2023年5月25日
    00
  • docker中的volume和bind mount区别讲解

    下面是关于“docker中的volume和bind mount区别讲解”的完整攻略。 什么是 Volume? Volume 是 Docker 中一个独立于容器的数据管理方式,可以让我们在容器和主机之间有效分享数据。在使用 Volume 时,我们可以将数据存储在 Docker 主机或者其他远程数据存储系统上。相较于 Bind Mount,Volume 具有以下…

    人工智能概览 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部