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日

相关文章

  • Win10+GPU版Pytorch1.1安装的安装步骤

    以下是Win10+GPU版Pytorch1.1安装的完整步骤攻略: 步骤1:安装CUDA 首先需要安装NVIDIA CUDA Toolkit,前往NVIDIA官网下载对应的版本。安装时需要注意选择适合你电脑的操作系统和显卡型号的版本。 安装完成后,需要将CUDA的bin和lib路径加入到环境变量PATH中。 步骤2:安装cuDNN cuDNN是NVIDIA针…

    人工智能概论 2023年5月25日
    00
  • 浅析MongoDB 全文检索

    浅析MongoDB全文检索 在MongoDB中进行全文搜索可以使用它的全文索引。MongoDB中的全文搜索可以对文本字段建立索引,对这些字段进行全文搜索。下面将介绍如何在MongoDB中建立全文索引,并进行全文搜索。 建立全文索引 在MongoDB中建立全文索引可以使用文本索引类型。假设我们有一个名为users集合,其中包含一个description字段,请…

    人工智能概论 2023年5月25日
    00
  • 从荣耀7看 有点不同 的荣耀品牌

    从荣耀7看 有点不同 的荣耀品牌攻略 荣耀品牌作为华为旗下的手机品牌,近年来备受关注。让我们以荣耀7为例,看一下荣耀品牌与其他手机品牌有哪些不同。 硬件配置的高性价比 荣耀7的硬件配置虽然不如当今的旗舰机型,但在当时的市场上,无疑是性价比最高的一款手机。它搭载了华为自主研发的麒麟925芯片,配备了3GB的大内存以及32GB的存储空间。相比当时的市场主流机型,…

    人工智能概览 2023年5月25日
    00
  • 巧妙使用python opencv库玩转视频帧率

    下面是“巧妙使用Python OpenCV库玩转视频帧率”的完整攻略。 1. 相关背景知识 在进行本篇攻略之前,您需要先了解以下基本概念: 帧率(Frames Per Second,FPS):视频以每秒多少帧的速度播放,即每秒显示多少张图像。 OpenCV (Open Source Computer Vision Library):是一个计算机视觉的开源库,…

    人工智能概览 2023年5月25日
    00
  • java如何创建普通二叉树

    下面是Java创建普通二叉树的完整攻略。 第一步:定义二叉树结构 在Java中定义二叉树需要有一个二叉树结点类,一个二叉树根节点类。 // 二叉树结点类 public class Node { int val; Node left, right; Node(int val) { this.val = val; left = null; right = nul…

    人工智能概览 2023年5月25日
    00
  • Python一行代码识别发票并保存Excel示例详解

    下面是关于“Python一行代码识别发票并保存Excel示例详解”这个主题的详细讲解攻略。 一、概述 这篇文章主要介绍了如何使用Python代码识别发票信息并保存到Excel中。使用OCR技术识别出图片中的文字,并使用正则表达式进行匹配提取出发票的相关信息,最后将提取出的信息保存到Excel文件中。 二、实现步骤 1. 安装依赖包 使用Python代码处理图…

    人工智能概论 2023年5月25日
    00
  • 详解Java 连接MongoDB集群的几种方式

    下面是详解Java连接MongoDB集群的几种方式的完整攻略: 1. 概述 MongoDB是一个高性能、可扩展的NoSQL数据库。在一些大型应用场景中,可能需要连接MongoDB集群来支持更高的并发、可用性等需求。本文将对Java连接MongoDB集群的几种方式进行详解,包括连接字符串、副本集连接、分片连接。 2. 连接字符串 首先,我们来介绍连接字符串的方…

    人工智能概论 2023年5月25日
    00
  • python OpenCV的imread不能读取中文路径问题及解决

    首先我们需要了解一下imread函数在读取图片时的路径解析规则。在Windows平台上,OpenCV默认使用GBK编码解析文件路径,而不是UTF-8。这就导致了中文路径在使用imread函数读取时可能会出现问题。 解决方法有两种: 1. 使用raw string 将中文路径使用raw string(在字符串前加上r)的方式来解决。 import cv2 im…

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