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

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

  • 1. line
  • 2. rectangle
  • 3. circle
  • 4. ellipse

#include
#include

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)_第1张图片

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

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,opencv,图像处理)