OpenCV4.1.0+VS2017环境配置的方法步骤

yizhihongxing

下面是OpenCV4.1.0+VS2017环境配置的方法步骤:

前置条件

在搭建OpenCV4.1.0+VS2017环境之前,需要先安装VS2017或以上版本,并安装C++开发环境。

步骤一:下载OpenCV4.1.0

访问OpenCV官网,下载OpenCV4.1.0版本的zip文件,解压到任意一个目录。

步骤二:配置VS2017

启动VS2017,创建C++项目。在项目属性页面,选择“Release”配置,选择“平台”为“x64”。

在“VC++目录”下加入“包含目录”和“库目录”,分别为解压后的OpenCV目录下的“include”文件夹和“x64/vc15/lib”文件夹。

在“链接器”->“常规”下的“附加库目录”中加入“x64/vc15/lib”文件夹。

在“链接器”->“输入”下的“附加依赖项”下添加以下依赖:
- opencv_core410.lib
- opencv_highgui410.lib
- opencv_imgcodecs410.lib
- opencv_imgproc410.lib
- opencv_videoio410.lib

步骤三:测试程序

在VS2017中创建一个C++源文件,用以下代码验证OpenCV是否已正确配置:

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

using namespace cv;
using namespace std;

int main()
{
    Mat img = imread("test.jpg",IMREAD_COLOR);
    if (img.empty())
    {
        cout << "读入图像失败!" << endl;
        return -1;
    }
    imshow("image", img);
    waitKey(0);
    return 0;
}

此时,应使用以下代码进行编译:

cl /EHsc /Zi /MDd test.cpp /I <OpenCVPath>\include /link <OpenCVPath>\x64\vc15\lib\opencv_core410.lib <OpenCVPath>\x64\vc15\lib\opencv_highgui410.lib <OpenCVPath>\x64\vc15\lib\opencv_imgproc410.lib <OpenCVPath>\x64\vc15\lib\opencv_imgcodecs410.lib <OpenCVPath>\x64\vc15\lib\opencv_videoio410.lib /LIBPATH:<OpenCVPath>\x64\vc15\lib

其中,<OpenCVPath>为OpenCV的解压路径。

若代码编译无误,运行程序,应会弹出一个名为“image”的窗口,并展示一张图片。

示例说明

示例一:图像处理

我们需要实现以下功能:将一张彩色(RGB)图像转换为灰度图像、旋转图像并保存。

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

using namespace cv;
using namespace std;

int main()
{
    Mat img = imread("test.jpg",IMREAD_COLOR);
    if (img.empty())
    {
        cout << "读入图像失败!" << endl;
        return -1;
    }

    Mat grayImg;
    cvtColor(img, grayImg, COLOR_RGB2GRAY);
    imshow("gray image", grayImg);

    Mat rotateImg;
    Point2f center(img.cols / 2, img.rows / 2);
    double angle = 30.0;
    Mat rot = getRotationMatrix2D(center, angle, 1.0);
    warpAffine(img, rotateImg, rot, img.size());
    imshow("rotate image", rotateImg);

    imwrite("gray.jpg", grayImg);
    imwrite("rotate.jpg", rotateImg);

    waitKey(0);
    return 0;
}

同样使用上述编译命令进行编译,运行程序后,可以查看生成的两张图片是否正确。

示例二:摄像头实时图像处理

我们需要实现以下功能:从摄像头读取视频流,并进行图像处理,最终实时展示。

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

using namespace cv;
using namespace std;

int main()
{
    VideoCapture capture(0);
    if (!capture.isOpened())
    {
        cout << "打开摄像头失败!" << endl;
        return -1;
    }

    while (true)
    {
        Mat frame;
        capture >> frame;

        if (frame.empty())
        {
            break;
        }

        Mat grayImg;
        cvtColor(frame, grayImg, COLOR_RGB2GRAY);
        imshow("gray image", grayImg);

        if (waitKey(30) == 'q')
        {
            break;
        }
    }

    return 0;
}

同样使用上述编译命令进行编译,运行程序后,即可查看实时的摄像头图像,并实现图像灰度处理。若需要退出程序,按下“q”即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:OpenCV4.1.0+VS2017环境配置的方法步骤 - Python技术站

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

相关文章

  • pytorch 实现二分类交叉熵逆样本频率权重

    下面是使用PyTorch实现二分类交叉熵逆样本频率权重的完整攻略: 1. 什么是二分类交叉熵逆样本频率权重 逆样本频率权重(inverse class frequency)是一种处理类别不平衡问题(class imbalance)的技术。具体来说,就是在计算交叉熵损失函数时,给每个类别加上一个权重,使得少数类别的损失值更为显著,从而更加重视这些少数类别的分类…

    人工智能概论 2023年5月25日
    00
  • PyTorch 多GPU下模型的保存与加载(踩坑笔记)

    PyTorch是一个开放源码的机器学习库,支持多GPU并行计算。在使用多GPU训练模型时,保存和加载模型需要特别注意。下面是“PyTorch 多GPU下模型的保存与加载(踩坑笔记)”的攻略过程,具体包含以下几个步骤: 1. 引入必要的库 在保存和加载模型之前,我们需要引入必要的库来支持模型的保存和加载。 import torch from torch.nn.…

    人工智能概论 2023年5月25日
    00
  • Django def clean()函数对表单中的数据进行验证操作

    Django中的表单验证是在视图函数中使用的,在视图函数中,使用表单的is_valid()方法进行验证,但是有时候我们需要在表单类中对用户提交的数据进行进一步的自定义验证操作,这时候就需要使用到clean()函数。 clean()函数介绍 clean()函数是在django中的表单验证过程中定义的一个函数,可以对用户提交的数据进行自定义验证操作。clean(…

    人工智能概论 2023年5月25日
    00
  • Python3控制路由器——使用requests重启极路由.py

    下面是“Python3控制路由器——使用requests重启极路由”的完整攻略。 1. 背景 在路由器的管理界面上,有时候我们需要进行一些特殊操作,比如重启路由器等操作,一般情况下是需要登录到管理界面后手动操作的。但是,如果我们能够通过 Python 程序直接进行操作的话,那将会大大提高我们的效率。 2. 目标 本文的目标是使用 Python3 的 requ…

    人工智能概览 2023年5月25日
    00
  • 详解docker-compose.yml文件常用模版命令

    下面是关于docker-compose.yml文件常用模板命令的详解攻略。 什么是docker-compose.yml文件? docker-compose.yml文件是Docker Compose工具的核心配置文件,由YAML语言编写。它可以定义一组关联的Docker容器,组合它们为一个应用,并对它们进行管理。 常用模板命令 version 该命令指定doc…

    人工智能概览 2023年5月25日
    00
  • tensorflow 保存模型和取出中间权重例子

    下面是tensorflow 保存模型和取出中间权重的完整攻略,包含两条示例说明。 标准流程 TensorFlow中训练好的模型需要保存下来,以便在需要时进行加载和使用。保存模型需要进行两步,第一步是定义saver,第二步是运行saver实例的save方法。加载模型需要进行两步,第一步是定义saver,第二步是运行saver实例的restore方法。 保存模型…

    人工智能概论 2023年5月24日
    00
  • Django 对象关系映射(ORM)源码详解

    Django ORM 源码详解 什么是 Django ORM Django ORM(对象关系映射)是 Django 中的一种机制,用于将数据库中的数据映射到 Python 对象中。ORM 的基本思想是将数据库中的表与对象的属性相对应,将行数据与对象实例相对应。ORM 使得操作数据库时不用编写 SQL 语句,从而简化了开发人员的工作,提高了代码的可读性和可维护…

    人工智能概论 2023年5月25日
    00
  • Django如何实现内容缓存示例详解

    Django具有强大的缓存机制,可以大大提高网站的性能。以下是Django如何实现内容缓存的详细攻略: 什么是Django内容缓存 Django缓存通过存储常用对象,从而减少了对数据库的访问,提高了网站的响应速度。Django中的缓存可以存储各种内容,包括完整的HTML响应、数据库查询结果和每个视图的渲染结果等。 缓存的设置 Django缓存系统需要配置。首…

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