0
点赞
收藏
分享

微信扫一扫

opencv (十八)绘制图形(直线、圆、椭圆、矩形、变形、文字)

小白学视觉,笔记,扩展

在这里插入图片描述
在这里插入图片描述

LINE_4
4连接:33网格中,从上下左右4个方向,向中心点填充
LINE_8
8连接:3
3网格中,从周围8个方向,向中心点填充
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include <opencv2\opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
	Mat img = Mat::zeros(Size(512, 512), CV_8UC3);  //生成一个黑色图像用于绘制几何图形

	//绘制圆形
	circle(img, Point(50, 50), 25, Scalar(255, 255, 255), -1);  //绘制一个实心圆
	circle(img, Point(100, 50), 20, Scalar(255, 255, 255), 4);  //绘制一个空心圆

	//绘制直线
	line(img, Point(100, 100), Point(200, 100), Scalar(255, 255, 255), 2, LINE_4, 0);  //绘制一条直线

	//绘制椭圆
	ellipse(img, Point(300, 255), Size(100, 70), 0, 0, 100, Scalar(255, 255, 255), -1);  //绘制实心椭圆的一部分

	//绘制矩形
	rectangle(img, Point(50, 400), Point(100, 450), Scalar(125, 125, 125), -1);


	//绘制多边形
	Point pp[2][6];//二维数组pp[2][6]可以写成两个一维数组pp[0],pp[1]
	pp[0][0] = Point(72, 200);
	pp[0][1] = Point(142, 204);
	pp[0][2] = Point(226, 263);
	pp[0][3] = Point(172, 310);
	pp[0][4] = Point(117, 319);
	pp[0][5] = Point(15, 260);
	pp[1][0] = Point(359, 339);
	pp[1][1] = Point(447, 351);
	pp[1][2] = Point(504, 349);
	pp[1][3] = Point(484, 433);
	pp[1][4] = Point(418, 449);
	pp[1][5] = Point(354, 402);
	Point pp2[5];
	pp2[0] = Point(350, 83);
	pp2[1] = Point(463, 90);
	pp2[2] = Point(500, 171);
	pp2[3] = Point(421, 194);
	pp2[4] = Point(338, 141);

	
	const Point* pts[3] = { pp[0],pp[1],pp2 };  //pts变量的生成,pts中是3个元素,代表3个多边形
	int npts[] = { 6,6,5 };  //顶点个数数组的生成,多边形的顶点个数分别是6,6,5
	fillPoly(img, pts, npts, 3, Scalar(125, 125, 125), 8);  //绘制3个多边形

	//生成文字
	putText(img, "Learn OpenCV 4", Point(100, 400), 2, 1, Scalar(255, 255, 255));

	imshow("", img);
	waitKey(0);
	return 0;
}

在这里插入图片描述

举报

相关推荐

0 条评论