day7:基础图形绘制

1.基础图形绘制:

直线,矩形,圆,椭圆,多边形;

2. putText()函数:

putText( Mat& img, const string& text, Point org,
              int fontFace, double fontScale, Scalar color,
             int thickness=1, int lineType=8,
               bool bottomLeftOrigin=false );

参数解释:
. Mat& img: 要添加备注的图片
. const string& text: 要添加的文字内容
. Point org: 要添加的文字基准点或原点坐标,左上角还是左下角取决于最后一个参数bottomLeftOrigin的取值
. int fontFace: 文字的字体类型(Hershey字体集),可供选择的有
FONT_HERSHEY_SIMPLEX:正常大小无衬线字体
FONT_HERSHEY_PLAIN:小号无衬线字体
FONT_HERSHEY_DUPLEX:正常大小无衬线字体,比FONT_HERSHEY_SIMPLEX更复杂
FONT_HERSHEY_COMPLEX:正常大小有衬线字体
FONT_HERSHEY_TRIPLEX:正常大小有衬线字体,比FONT_HERSHEY_COMPLEX更复杂
FONT_HERSHEY_COMPLEX_SMALL:FONT_HERSHEY_COMPLEX的小译本
FONT_HERSHEY_SCRIPT_SIMPLEX:手写风格字体
FONT_HERSHEY_SCRIPT_COMPLEX:手写风格字体,比FONT_HERSHEY_SCRIPT_SIMPLEX更复杂
这些参数和FONT_ITALIC同时使用就会得到相应的斜体字
. double fontScale: 字体相较于最初尺寸的缩放系数。若为1.0f,则字符宽度是最初字符宽度,若为0.5f则为默认字体宽度的一半
. Scalar color: 很熟悉了,字体颜色
. int thickness = 1: 字体笔画的粗细程度,有默认值1
. int lineType = 8: 字体笔画线条类型,有默认值8
. bool bottomLeftOrigin = false: 如果取值为TRUE,则Point org指定的点为插入文字的左上角位置,如果取值为默认值false则指定点为插入文字的左下角位置.

代码:

void visionagin::DrawingOperate()
{
	Mat base = Mat::zeros(Size(480, 480), CV_8UC3);
	line(base, Point(150, 150), Point(300, 300), Scalar(200, 0, 0), 2,LINE_AA);
	circle(base, Point(240, 240), 150, Scalar(0, 0, 200), 2, LINE_AA);
	rectangle(base, Point(100, 100), Point(150,180), Scalar(0, 200, 0),1, LINE_AA);//矩形左上,右下点
	ellipse(base,Point(150, 150), Size(100, 150), 0,0,360, Scalar(0, 0, 200), 2, 8);
	ellipse(base, Point(150, 150), Size(100, 150), 45, 0, 360, Scalar(0, 200, 0), 2, 8);//45,0,360分别为椭圆旋转角度(顺时针旋转),以及绘制的椭圆的弧度,0-360即绘制整个椭圆
	//绘制多边形
	vector<Point>pts;//多边形顶点点集
	pts.push_back(Point(100, 80));
	pts.push_back(Point(200, 80));
	pts.push_back(Point(200, 180));
	pts.push_back(Point(150, 240));
	pts.push_back(Point(100, 180));
	vector<vector<Point>>npts;//多个多边形点集的集,本例只绘制一个
	npts.push_back(pts);
	int ptnum[1] = { pts.size()};//多边形顶点数,本例只绘制有个多边形
	polylines(base, npts, true, Scalar(200, 0, 0), 1, LINE_AA, 0);//绘制
	//填充多边形
	fillPoly(base, npts, Scalar(200, 0, 0), 8, 0);
	//txt插入
	putText(base, "drawingpicture", Point(200, 200),FONT_HERSHEY_SCRIPT_COMPLEX, 1, Scalar(255, 255, 255));
	imshow("drawingdemo", base);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值