#include "opencv2/core.hpp" // 引入opencv2核心头文件
#include "opencv2/imgproc.hpp" // 引入opencv2图像处理头文件
#include "opencv2/highgui.hpp" // 引入opencv2高级GUI(head-up display)头文件
#include <stdio.h> // 引入标准输入输出头文件
using namespace cv; // 使用cv命名空间
// 帮助函数,用于打印程序说明
static void help(char** argv)
{
printf("\nThis program demonstrates OpenCV drawing and text output functions.\n"
"Usage:\n"
" %s\n", argv[0]);
}
// 函数生成随机颜色,用于绘图
static Scalar randomColor(RNG& rng)
{
int icolor = (unsigned)rng; // 生成随机数作为颜色值
return Scalar(icolor&255, (icolor>>8)&255, (icolor>>16)&255); // 返回一个Scalar, 表示BGR颜色
}
// 主函数
int main(int /* argc */, char** argv) // main函数,笔误argv用于命令行参数
{
help(argv); // 调用help函数显示帮助
char wndname[] = "Drawing Demo"; // 窗口名
const int NUMBER = 100; // 定义数量常量
const int DELAY = 5; // 定义延时常量
int lineType = LINE_AA; // 定义线类型为抗锯齿线条,可以改为LINE_8查看非抗锯齿效果
int i, width = 1000, height = 700; // 定义循环变量i以及窗口宽高
int x1 = -width/2, x2 = width*3/2, y1 = -height/2, y2 = height*3/2; // 定义坐标范围
RNG rng(0xFFFFFFFF); // 创建随机数生成器
Mat image = Mat::zeros(height, width, CV_8UC3); // 创建一个黑色图像
imshow(wndname, image); // 显示图像
waitKey(DELAY); // 等待键盘输入
// 绘制随机线条和箭头
for (i = 0; i < NUMBER * 2; i++)
{
Point pt1, pt2; // 定义两点
pt1.x = rng.uniform(x1, x2); // 随机生成第一个点的x坐标
p
【opencv】示例-drawing.cpp画线、箭头、矩形、多边形、椭圆、圆形以及在图像上渲染文本并通过循环实现动态绘制效果...
最新推荐文章于 2024-08-27 09:27:30 发布