欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

opencv学习-013-几何形状绘制(绘制直线line,绘制矩形rectangle,绘制圆circle,绘制椭圆ellipse)

程序员文章站 2022-05-21 09:22:43
...

opencv学习-013-几何形状绘制(绘制直线,绘制圆,绘制矩形,绘制椭圆)

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

using namespace cv;
using namespace std;

int main(int argc, char** argv) {
	Mat image = Mat::zeros(Size(512, 512), CV_8UC3);
	line(image, Point(50, 50), Point(200, 50), Scalar(255, 255, 255), 2, LINE_AA, 0);
	Rect rect(100, 100, 200, 200);
	rectangle(image, rect, Scalar(255, 0, 0), 2, LINE_8, 0);
	circle(image, Point(256, 256), 50, Scalar(0, 0, 255), 2, LINE_8, 0);
	ellipse(image, Point(256, 256), Size(150, 50), 360, 0, 360, Scalar(0, 255, 0), 2, LINE_8, 0);
	imshow("image", image);
	waitKey(0);
	return 0;
}

opencv学习-013-几何形状绘制(绘制直线line,绘制矩形rectangle,绘制圆circle,绘制椭圆ellipse)

OpenCV没有专门的填充方法,只是把绘制几何形状时候的线宽 - thickness参数值设置为负数即表示填充该几何形状或者使用参数CV_FILLED
比如把circle函数中thickness参数值设置为-1,则运行后结果:
opencv学习-013-几何形状绘制(绘制直线line,绘制矩形rectangle,绘制圆circle,绘制椭圆ellipse)

1. line

void line(	Mat& img, 
			Point pt1, 
			Point pt2, 
			const Scalar& color, 
			int thickness=1, 
			int lineType=8, 
			int shift=0);
			
参数:

img: 		要绘制线段的图像。
pt1: 		线段的起点。
pt2: 		线段的终点。
color: 		线段的颜色,通过一个 Scalar 对象定义。
thickness: 	线条的宽度,默认值为 1。
lineType: 	线段的类型。可以取值 84,和 LINE_AA, 分别代表8邻接连接线,4 邻接连接线和反锯齿连接线。默认值为 8 邻接。为了获得更好地效果可以选用 LINE_AA(采用了高斯滤波)。
shift: 		坐标点小数点位数,默认值 0

2. rectangle

void rectangle(	Mat& img, 
				Point pt1, 
				Point pt2, 
				const Scalar& color, 
				int thickness=1, 
				int lineType=8, 
				int shift=0);
                
参数:

img 		图像. 
pt1 		矩形的一个顶点。 
pt2 		矩形对角线上的另一个顶点 
color 		线条颜色 (RGB) 或亮度(灰度图像 )(grayscale image)。 
thickness 	组成矩形的线条的粗细程度。取负值时(如 CV_FILLED)函数绘制填充了色彩的矩形。 
lineType: 	线段的类型。可以取值 84,和 LINE_AA, 分别代表8邻接连接线,4 邻接连接线和反锯齿连接线。默认值为 8 邻接。为了获得更好地效果可以选用 LINE_AA(采用了高斯滤波)。
shift: 		坐标点小数点位数,默认值 0

3. circle

void circle(	Mat& img, 
				Point center, 
				int radius, 
				const Scalar& color, 
				int thickness=1, 
				int lineType=8, 
				int shift=0);
参数:

img 		图像。 
center 		圆心坐标。 
radius 		圆形的半径。 
color 		线条的颜色。 
thickness 	如果是正数,表示组成圆的线条的粗细程度。否则,表示圆是否被填充。 
lineType: 	线段的类型。可以取值 84,和 LINE_AA, 分别代表8邻接连接线,4 邻接连接线和反锯齿连接线。默认值为 8 邻接。为了获得更好地效果可以选用 LINE_AA(采用了高斯滤波)。
shift: 		坐标点小数点位数,默认值 0

4. ellipse

void ellipse(	Mat& img, 
				Point center, 
				Size axes,
				double angle, 
				double startAngle, 
				double endAngle, 
				const Scalar& color, 
				int thickness=1,
				int lineType=8, 
				int shift=0);
参数:

img: 		要绘制椭圆的图像。
center: 	椭圆中心点坐标。
axes: 		椭圆位于该 Size 决定的矩形内。(即定义长轴和短轴)。
angle: 		椭圆的角度。
startAngle: 椭圆开始绘制时角度,顺时针旋转。
endAngle: 	椭圆绘制结束时角度。(若绘制一个完整的椭圆,则startAngle=0, endAngle = 360)。
color: 		椭圆的颜色。
thickness: 	绘制椭圆线粗。负数表示全部填充。
lineType: 	线段的类型。可以取值 84,和 LINE_AA, 分别代表8邻接连接线,4 邻接连接线和反锯齿连接线。默认值为 8 邻接。为了获得更好地效果可以选用 LINE_AA(采用了高斯滤波)。
shift: 		坐标点小数点位数,默认值 0
相关标签: opencv 图像处理