OpenCV(C )创建图片绘制图形(矩形、圆、文字、线段等等)

OpenCV(C )创建图片绘制图形(矩形、圆、文字、线段等等)

首页休闲益智能画多圆游戏更新时间:2024-04-20
一、OpenCV介绍

OpenCV 是基于开源许可证的跨平台计算机视觉库,提供了一组丰富、广泛的图像处理和计算机视觉算法。OpenCV 支持多种编程语言,包括 C 、Python、Java 等,可以运行在 Linux、Windows、Mac OS 等平台上。

OpenCV 能够在图像上绘制各种几何形状、文本和曲线,以及对图像进行调整、裁剪和旋转等操作,这些功能都为图像的分析和处理提供了很大的帮助。

以下是 OpenCV 可以绘制图像的一些应用:

(1)图像标注:在图像上添加标注或者注释,例如在目标检测或者图像分类任务中,通过在图像上绘制框、标签等信息来标记检测到的目标。

(2)处理后显示:例如在图像处理过程中,可以在处理前和处理后的图像上绘制对比图,直观地显示图像处理的效果。

(3)实时显示:通过持续不断地在屏幕上绘画来实现实时显示效果,例如在视频处理中输出处理后的视频流并将其实时渲染在屏幕上。

二、绘制图形【1】绘制图形弹窗显示

下面代码实现的功能:

使用 OpenCV(C ) 新建一张透明图片,在图片里绘制一个矩形、一条直线、一段文字、一个圆。

// 创建一张大小为 512x512,具有 alpha 通道的透明图片 cv::Mat img(512, 512, CV_8UC4, cv::Scalar(0, 0, 0, 0)); // 在图片上绘制一个矩形 cv::rectangle(img, cv::Point(50, 50), cv::Point(200, 150), cv::Scalar(255, 0, 0, 255), -1); // 在图片上绘制一条直线 cv::line(img, cv::Point(300, 100), cv::Point(450, 100), cv::Scalar(0, 255, 0, 255), 3); // 在图片上绘制一段文本 std::string text = "Hello, OpenCV!"; cv::putText(img, text, cv::Point(50, 300), cv::FONT_HERSHEY_SIMPLEX, 1, cv::Scalar(0, 0, 255, 255), 2); // 在图片上绘制一个圆 cv::circle(img, cv::Point(400, 350), 50, cv::Scalar(255, 255, 0, 255), -1); // 显示图片 cv::imshow("image", img); cv::waitKey(0);

cv::Mat 是 OpenCV 中表示图像的数据结构,它可以存储多通道的图像。 cv::Scalar 是一个四通道的实数向量,用于表示像素点的颜色和 alpha 值。 cv::Point 是一个二维整型向量,用于表示像素点的坐标。 cv::Rectangle 函数用于在图片上绘制矩形。 cv::line 函数用于在图片上绘制直线。 cv::putText 函数用于在图片上绘制文本。 cv::circle 函数用于在图片上绘制圆。

【2】绘制图形保存到本地

// 创建一张大小为 512x512,具有 alpha 通道的透明图片 cv::Mat img(512, 512, CV_8UC4, cv::Scalar(0, 0, 0, 0)); // 在图片上绘制一个矩形 cv::rectangle(img, cv::Point(50, 50), cv::Point(200, 150), cv::Scalar(255, 0, 0, 255), -1); // 在图片上绘制一条直线 cv::line(img, cv::Point(300, 100), cv::Point(450, 100), cv::Scalar(0, 255, 0, 255), 3); // 在图片上绘制一段文本 std::string text = "Hello, OpenCV!"; cv::putText(img, text, cv::Point(50, 300), cv::FONT_HERSHEY_SIMPLEX, 1, cv::Scalar(0, 0, 255, 255), 2); // 在图片上绘制一个圆 cv::circle(img, cv::Point(400, 350), 50, cv::Scalar(255, 255, 0, 255), -1); // 保存图片到本地 cv::imwrite("output.png", img);三、函数功能介绍【1】绘制直线

cv::line 函数用于在图像上绘制一条直线,其参数如下:

void cv::line(InputOutputArray img, Point pt1, Point pt2, const Scalar& color, int thickness = 1, LineTypes lineType = LINE_8, int shift = 0);

【2】绘制圆

cv::circle 函数用于在图像上绘制一个圆,其参数如下:

void cv::circle(InputOutputArray img, Point center, int radius, const Scalar& color, int thickness = 1, LineTypes lineType = LINE_8, int shift = 0);

【3】绘制矩形

cv::rectangle 函数用于在图像上绘制一个矩形,其参数如下:

void cv::rectangle(InputOutputArray img, Rect rect, const Scalar& color, int thickness = 1, LineTypes lineType = LINE_8, int shift = 0);

【4】绘制文本

cv::putText 函数用于在图像上绘制文本,其参数如下:

void cv::putText(InputOutputArray img, const String& text, Point org, int fontFace, double fontScale, Scalar color, int thickness = 1, int lineType = LINE_8, bool bottomLeftOrigin = false);



,
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved