Opencv中文网

快速使用OpenCV入门

注:本站教程若所特殊说明,所使用的OpenCV版本为OpenCV – 4.6.0。

下载地址:https://sourceforge.net/projects/opencvlibrary/files/4.6.0/opencv-4.6.0-vc14_vc15.exe/download

打开Visual Studio 2022,创建一个C++应用程序项目并取名为opencvProject,然后按照前面的教程在项目的属性对话框中,配置opencv相关的引入参数,这样一个C++应用程序的准备工作就完成了。

接着在该项目中新增一个C++类,类名为ImageHelper。IDE会帮我们分别创建ImageHelper.h头文件和ImageHelper.cpp类文件。打开ImageHelper.h头文件,键入下面的代码

#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

class ImageHelper
{
public:
    void Start();
};

然后在ImageHelper.cpp类文件中,键入下面的代码

#include "ImageHelper.h"

void ImageHelper::Start() {
	Mat image(300, 500, CV_8UC3, Scalar(0, 0, 255));	
	string text = "Hello,OpenCV";
	Point pos(50, image.rows / 2);			// 写入坐标 
	int font = cv::FONT_HERSHEY_SIMPLEX;	// 字体类型
	double scale = 2.0;						// 字号缩放
	Scalar color(0, 255, 255);				// 黄色
	int thickness = 5;						// 笔画粗细
	putText(image, text, pos, font, scale, color, thickness);	
	namedWindow("image", WINDOW_AUTOSIZE);	// 创建窗口	
	imshow("image", image);					// 显示图片
	imwrite("image.bmp", image);			// 保存图片
}

最后,打开opencvProject.cpp,找到InitInstance函数,在函数的最后增加下面的代码

 //使用图像类
   ImageHelper helper;
   helper.Start();

最后,我们来看完整的InitInstance函数的样子

//
//   函数: InitInstance(HINSTANCE, int)
//
//   目标: 保存实例句柄并创建主窗口
//
//   注释:
//
//        在此函数中,我们在全局变量中保存实例句柄并
//        创建和显示主程序窗口。
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   hInst = hInstance; // 将实例句柄存储在全局变量中

   HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);

   if (!hWnd)
   {
      return FALSE;
   }

   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);

   //使用图像类
   ImageHelper helper;
   helper.Start();

   return TRUE;
}

做完这一切工作,就可以按下F5,运行这个项目。如何一切OK,您会看到在启动的C++应用程序中弹出了一个对话框,并在该对话框中显示了一张图片。

这张图就是使用OpenCV库的Mat类快速创建的,它的背景是红色的,前景(字体颜色)是黄色的,尺寸为500*300,大小约为439k。

打开项目的根目录,您还会在其中找到名为“image.bmp”的图像,这张图像也是由opencv提供的imwrite函数保存的。

我知道您一定有许多的疑问,比如计算机是如何表示一张图像的,图像都有哪些参数或特性,图像的大小是如何计算的,我们如何通过opencv实现对图像更多的操作。这些问题,我们将在下一节得到解答。

——重庆教主 2025年5月6日

copyright @重庆教主 WPF中文网 联系站长:(QQ)23611316 (微信)movieclip (QQ群).NET小白课堂:864486030 | 本文由WPF中文网原创发布,谢绝转载 渝ICP备2023009518号-1