针对"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技术站