VisualStudio2019配置OpenCV4.5.0的方法示例

针对"VisualStudio2019配置OpenCV4.5.0的方法示例",我们需要进行以下步骤:

1. 下载OpenCV4.5.0

首先需要到OpenCV官网https://opencv.org/releases/下载最新版本的OpenCV。

这里以Windows平台为例,下载"opencv-4.5.0-windows.exe"文件。下载完成后,双击运行该文件,选择安装路径,并勾选"Add OpenCV to the system PATH for current user"选项以将OpenCV添加至系统路径。

2. 新建工程并配置OpenCV

接下来需要在Visual Studio 2019中新建一个Windows Console Application工程,并在"属性-VC++目录"中添加OpenCV的头文件路径和库文件路径,具体路径可以根据自己的安装路径进行设置。例如:

OpenCV头文件路径:E:\OpenCV\opencv\build\include

OpenCV库文件路径:E:\OpenCV\opencv\build\x64\vc15\lib

在"属性-C/C++-代码生成-运行库"中,选择"多线程调试(/MTd)"或"多线程(/MT)"。

在"属性-链接器-输入-附加依赖项"中添加需要链接的OpenCV库文件名称,例如:

opencv_world450d.lib

opencv_world450.lib

opencv_world450m.lib

opencv_world450md.lib

3. 引用OpenCV

在源码中,引用头文件及其命名空间,例如:

#include "opencv2/opencv.hpp"

using namespace cv;
using namespace std;

接下来就可以在工程中使用OpenCV相关的函数了,例如:

Mat image = imread("test.jpg");
imshow("Image", image);
waitKey();

以上是VisualStudio2019配置OpenCV4.5.0的基本步骤。如果还有疑问,可以参考下面两条示例:

示例1:如何在Visual Studio 2019上使用OpenCV的HOG特征

在使用OpenCV的HOG特征时,需要添加libsvm库,可以到https://www.csie.ntu.edu.tw/~cjlin/libsvm/下载最新版。

在添加libsvm库后,可以按照如下方式引用和使用HOG特征:

#include "opencv2/opencv.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp"

#include <iostream>

using namespace std;
using namespace cv;

int main()
{
    // 载入图像
    Mat srcImage = imread("test.jpg");

    // 对图像进行缩放
    resize(srcImage, srcImage, Size(128, 64), 0, 0, INTER_LINEAR);

    // 转化为灰度图像
    Mat grayImage;
    cvtColor(srcImage, grayImage, COLOR_BGR2GRAY);

    // 设置HOG描述符参数
    HOGDescriptor hog;
    hog.winSize = Size(64, 128);
    hog.blockStride = Size(16, 16);
    hog.blockSize = Size(16, 16);
    hog.cellSize = Size(8, 8);

    // 计算HOG描述符
    vector<float> descriptors;
    hog.compute(grayImage, descriptors);

    // 显示图像
    imshow("srcImage", srcImage);

    // 等待按键
    waitKey();

    return 0;
}

示例2:如何在Visual Studio 2019上使用OpenCV的DNN模块

使用OpenCV的DNN模块时,需要下载相应的权重文件,可以到https://github.com/OlafenwaMoses/ImageAI/releases/download/1.0/yolo.h5下载yolo.h5文件。

在下载完成后,可以按照如下方式引用和使用DNN模块:

#include <iostream>
#include <fstream>
#include <sstream>
#include <opencv2/dnn.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>

using namespace cv;
using namespace dnn;
using namespace std;

int main(int argc, char** argv)
{
    // 加载模型和类别名称
    String modelFile = "yolo.cfg";
    String weightFile = "yolo.weights";
    String classFile = "voc.names";

    Net net = readNet(modelFile, weightFile, "Darknet");
    net.setPreferableBackend(DNN_BACKEND_OPENCV);
    net.setPreferableTarget(DNN_TARGET_CPU);

    ifstream ifs(classFile.c_str());
    string line;
    while (getline(ifs, line))
    {
        classes.push_back(line);
    }

    // 加载图像
    Mat image = imread("test.jpg");

    // 转为4维矩阵
    Mat blob = blobFromImage(image, 1 / 255.0, Size(416, 416), Scalar(0, 0, 0), true, false);

    // 输入模型
    net.setInput(blob);

    // 获得输出层
    vector<Mat> outs;
    net.forward(outs, getOutputsNames(net));

    // 后处理
    vector<int> classIds;
    vector<float> confidences;
    vector<Rect> boxes;
    for (size_t i = 0; i < outs.size(); ++i)
    {
        processOutput(outs[i], image.size(), classIds, confidences, boxes);
    }

    // 绘制检测结果
    drawDetection(image, classIds, confidences, boxes, classes);

    // 显示图像
    imshow("Detections", image);

    // 等待按键
    waitKey();

    return 0;
}

以上就是使用OpenCV 4.5.0进行图像处理的示例,希望能对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:VisualStudio2019配置OpenCV4.5.0的方法示例 - Python技术站

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

相关文章

  • 基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作

    实现条码和二维码的生成及打印处理操作,可以通过基于Bootstrap的Metronic框架来完成。下面来详细讲解实现过程: 步骤一:导入必要的工具库 使用Metronic框架实现条码和二维码的生成及打印处理操作,需要导入两个必要的工具库: JsBarcode:用于生成条码; qrcodejs:用于生成二维码; 其中,JsBarcode可以通过以下方式进行导入…

    人工智能概论 2023年5月25日
    00
  • Python抖音快手代码舞(字符舞)的实现方法

    关于“Python抖音快手代码舞(字符舞)的实现方法”的完整攻略,我将详细阐述以下步骤和示例说明。 1. 创建基础框架 我们需要先创建一个基础框架来实现这个代码舞的功能。具体步骤如下: 1.1 安装必要的库 我们需要安装几个Python库来实现这个功能,包括Pillow、numpy和opencv-python。你可以使用以下命令来安装: pip instal…

    人工智能概览 2023年5月25日
    00
  • tensorboard 可视化之localhost:6006不显示的解决方案

    当我们使用Tensorboard时,有时候会遇到localhost:6006不显示的问题。这可能是由许多不同的原因所导致的。本攻略将提供一些可能的解决方案。 确认Tensorboard已正确安装 在使用Tensorboard之前,我们需要先确认Tensorboard是否已经正确安装。我们可以在命令行中输入以下命令来检查: tensorboard –vers…

    人工智能概论 2023年5月25日
    00
  • 一文读懂Spring Cloud-Hystrix

    一文读懂Spring Cloud-Hystrix 简介 Spring Cloud-Hystrix 是 Spring Cloud 组件中的一个,用于帮助开发人员构建分布式系统中服务的容错性和可用性。当一个服务调用其他服务时,如果被调用的服务暂时不可用或者繁忙,调用方服务可以根据Hystrix的配置进行服务降级、服务熔断、服务限流等处理,以保证服务的可用性。 H…

    人工智能概览 2023年5月25日
    00
  • python初学之用户登录的实现过程(实例讲解)

    下面我将为你详细讲解“Python初学之用户登录的实现过程(实例讲解)”的完整攻略。 1. 目标 本篇教程的目标是通过Python实现一个简单的用户登录功能,包括用户注册、用户登录、密码加密等主要功能,辅助初学者熟悉Python的基本语法和流程控制。 2. 实现步骤 2.1 注册用户 在该功能中,我们需要实现用户数据的存储,包括用户名和密码。我们可以使用文件…

    人工智能概论 2023年5月25日
    00
  • python中的mock接口开发示例详解

    针对“python中的mock接口开发示例详解”,我可以提供如下攻略: Python中的Mock接口开发示例详解 简介 在Python中,Mock是一个极其强大的测试工具。Mock能够帮助开发者模拟系统各种行为,包括网络请求、文件读写、数据库操作、系统时间等等。这能够在测试代码时降低对外部依赖的需求,从而提高代码的可测试性,同时也能够使得开发和测试更加高效、…

    人工智能概览 2023年5月25日
    00
  • 解决Django数据库makemigrations有变化但是migrate时未变动问题

    解决Django数据库makemigrations有变化但是migrate时未变动问题,可以按照以下完整攻略进行操作: 确认makemigrations是否正确生成了新的迁移文件 首先,需要确认makemigrations命令是否正确生成了新的迁移文件。在执行makemigrations命令后,Django会在app的migrations目录下生成一个新的迁…

    人工智能概览 2023年5月25日
    00
  • nginx环境下配置ssl加密(单双向认证、部分https)

    当我们需要在Web服务器上启用TLS或SSL时,常见做法是通过在Web服务器上安装一个证书。在nginx环境中,我们可以通过以下步骤来配置ssl加密。 1. 生成证书 我们可以通过 OpenSSL 工具来生成证书,只需要在控制台中执行以下命令即可: openssl req -x509 -newkey rsa:4096 -keyout key.pem -out…

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