绘制矩形
在前面已经介绍过了,这里就不再重复介绍了,只把代码贴在这儿。
需要注意,若矩形填充颜色,则对应的参数的值为-1,而不填充时,参数的值大于0,表示线宽。
#include <iostream>#include "14_opencv_mat.h"using namespace std;void QuickDemo::drawing_demo(Mat &image){Rect rect;rect.x = 130;rect.y = 40;rect.width = 200;rect.height = 250;rectangle(image, rect, Scalar(0,0, 255), 2, LINE_8, 0);imshow("绘制矩形", image);}
运行效果如下:
除了可以绘制矩形之外,我们还可以绘制圆形。 绘制圆形可以使用函数 circle()
#include <iostream>#include "14_opencv_mat.h"using namespace std;void QuickDemo::drawing_demo(Mat &image){/** 函数功能:画一个圆* 函数原型:* void circle(InputOutputArray img, Point center, int radius,const Scalar& color, int thickness = 1,int lineType = LINE_8, int shift = 0);* 函数参数:* img - 输入图像* center - 圆心坐标* radius - 圆的半径* color- 圆的颜色 * thickness - 圆轮廓的厚度,如果为正值。负值,比如#FILLED,表示要画一个填充的圆。* lineType - 线形,默认为LINE_8* shift- 中心坐标和半径值的小数位数。*/circle(image,Point(200,100),100,Scalar(0,0,255),2,LINE_8,0);imshow("绘制圆形", image);}
运行效果如下:
可以使用函数 line()来绘制直线
void QuickDemo::line_demo(Mat& image){/** 函数功能:绘制连接两点的线段。* 函数原型:void line(InputOutputArray img, Point pt1, Point pt2, const Scalar& color,int thickness = 1, int lineType = LINE_8, int shift = 0);函数参数:img - 输入图像。pt1 - 线段的第一点。pt2 - 线段的第二点。color - 线条颜色。thickness - 线条厚度。lineType - 线的类型,是否为反锯齿shift - 点坐标的小数位数。*/line(image,Point(20,20), Point(70, 70),Scalar(0,255,255),2);imshow("line_demo", image);}
运行效果如下:
可以使用函数 ellipse()来绘制椭圆
估计不常用,就不学了,用到了再来补充。