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

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日

相关文章

  • vs2019永久配置opencv开发环境的方法步骤

    以下是详细的攻略步骤: 准备工作 下载并安装vs2019,选择C++开发组件 下载并解压OpenCV的压缩包,并将解压后的文件夹放在某个路径下。示例路径:D:\OpenCV\opencv-4.5.1 配置环境变量 打开Windows的“高级系统设置”,进入“环境变量”设置界面 在“用户变量”中,新建一个变量名为“OPENCV_DIR”,变量值为OpenCV的…

    人工智能概论 2023年5月24日
    00
  • nginx提示:500 Internal Server Error错误的解决方法

    针对“nginx提示:500 Internal Server Error错误的解决方法”的问题,本文将为大家提供一个完整的攻略。下面将采用如下的结构对该问题进行逐一分析: 1.问题分析 2.解决方法 3.示例说明 1.问题分析 关于“nginx提示:500 Internal Server Error错误的解决方法”,首先我们需要知道的是,这是一个服务器端的错…

    人工智能概览 2023年5月25日
    00
  • C语言中的long型究竟占4个字节还是8个字节(遇到的坑)

    C语言中的long型是一种整型数据类型,占用的字节数取决于编译器和操作系统。 在大多数32位的机器上,long型占4个字节,即32位,范围为2147483647到-2147483648。但是,在现代的64位机器上,long型常常占用8个字节,即64位,范围为9223372036854775807到-9223372036854775808。 由于不同的机器和编…

    人工智能概览 2023年5月25日
    00
  • Java使用Tessdata做OCR图片文字识别的详细思路

    我来为你详细讲解Java使用Tessdata进行OCR图片文字识别的思路。 1. 安装Tesseract OCR引擎 首先要安装Tesseract OCR引擎。可以前往github上下载对应系统的安装包,也可以使用一些已经打包好的二进制版本。 安装完成后,可以在命令行中输入tesseract -v检查是否安装成功。 2. 下载Tessdata字库 Tessd…

    人工智能概览 2023年5月25日
    00
  • 如何利用Opencv实现图像的加密解密

    如何利用Opencv实现图像的加密解密 1. Opencv简介 OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。OpenCV的语言接口有C++、Python、Java等,可以在不同平台下灵活进行应用程序开发。 2. 图像加密解密 图像加密解密是信息安全领域的重要问…

    人工智能概览 2023年5月25日
    00
  • 电脑中ABBYY FineReader许可文件被删除的解决方法

    解决电脑中ABBYY FineReader许可文件被删除的方法如下: 步骤一:下载并安装ABBYY FineReader许可文件恢复工具 在ABBYY官网上下载ABBYY FineReader许可文件恢复工具。 下载完成后,双击安装程序,按照提示完成安装。 步骤二:使用ABBYY FineReader许可文件恢复工具恢复许可文件 打开ABBYY FineRe…

    人工智能概览 2023年5月25日
    00
  • nginx限流方案的实现(三种方式)

    下面是对于“nginx限流方案的实现(三种方式)”完整攻略的讲解。 一、什么是nginx限流 nginx限流(Rate Limiting)是指在系统中对于某些接口或某些操作的并发数、请求速率等进行限制,以避免因为某些操作造成系统过载,从而导致系统的不可用。nginx限流是一个很重要的生产环境的安全性和稳定性问题,Nginx提供了基于连接数限流和基于请求限流两…

    人工智能概览 2023年5月25日
    00
  • 关于PHP数组迭代器的使用方法实例

    关于PHP数组迭代器的使用方法实例完整攻略,我来详细讲解一下。 什么是PHP数组迭代器 PHP数组迭代器是PHP SPL库中提供的一个用于迭代操作数组的类。使用它可以通过统一的接口访问和遍历不同类型的数组数据结构。 PHP数组迭代器的使用方法 1. 创建迭代器对象 首先需要创建迭代器对象,用于访问和遍历数组数据。创建迭代器对象的方法,可以是实例化Iterat…

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