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没有专门的填充方法,只是把绘制几何形状时候的线宽 - thickness参数值设置为负数即表示填充该几何形状或者使用参数CV_FILLED
比如把circle函数中thickness参数值设置为-1,则运行后结果:
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: 线段的类型。可以取值 8,4,和 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: 线段的类型。可以取值 8,4,和 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: 线段的类型。可以取值 8,4,和 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: 线段的类型。可以取值 8,4,和 LINE_AA, 分别代表8邻接连接线,4 邻接连接线和反锯齿连接线。默认值为 8 邻接。为了获得更好地效果可以选用 LINE_AA(采用了高斯滤波)。
shift: 坐标点小数点位数,默认值 0。
上一篇: 18款适用于开发人员的网页代码编辑器
下一篇: redis学习之发布订阅