//常见的数据结构和函数
//点的表示:Point类
Point point;
point.x = 10;
point.y = 8;
//或者
Point point = Point(10, 8 );
//颜色的表示:Scalar类
Scalar(a, b, c);
//RGB颜色值:红色分量为c,绿色分量为b, 蓝色分量为a
//尺寸的表示:Size类
//常用构造函数
Size_(_Tp _width, _Tp _height);
示例: Size(5, 5);
//矩形的表示:Rect类
Rect类成员变量有x, y, width, height分别表示左上角坐标和矩形的宽和高
area() //返回矩形面积
contains(Point)//判断点是否在矩形内
inside(Rect)//函数判断矩形是否在矩形内
tl() // 返回左上角坐标
br() //返回左下角
//求两个矩形的交集和冰集
Rect rect = rect1 & rect2;
Rect rect = rect1 | rect2;
//矩形的平移或者缩放
Rect rectShift = rect + point;
Rect rectScale = rect + size;
//颜色空间转换cvtColor()
cvtColor(srcImage, dstImage, COLOR_GRAY2BGR);
//基本图形的绘制
//绘制直线的line函数
//绘制椭圆的ellipse函数
//绘制矩形的rectangle函数
Mat myMat = imread("1.jpg");
int thickness = 2;
int lineType = 8;
double angle = 10;
ellipse(myMat,
Point(WINDOW_WIDTH / 2, WINDOW_WIDTH / 2),
Size(WINDOW_WIDTH / 4, WINDOW_WIDTH / 8),
angle, //椭圆旋转角度
0, //扩展弧度为0度到360度
360,
Scalar(255, 129, 0), //圆形颜色
thickness, //线宽
lineType //线型
);
imshow("原图1", myMat);
waitKey(0);
thickness = 1;
//画圆
circle(myMat,
Point(WINDOW_WIDTH / 2, WINDOW_WIDTH / 2),
WINDOW_WIDTH / 32,
Scalar(0, 0, 255),
thickness, // -1 为实心圆
lineType);
imshow("原图2", myMat);
waitKey(0);
thickness = 2;
lineType = 8;
//画线
line(myMat,
Point(WINDOW_WIDTH / 16, WINDOW_WIDTH / 2),
Point(WINDOW_WIDTH / 2, WINDOW_WIDTH / 2),
Scalar(0, 0, 0),
thickness,
lineType);
imshow("原图3", myMat);
waitKey(0);
rectangle(myMat,
Point(WINDOW_WIDTH / 16, WINDOW_WIDTH / 16),
Point(WINDOW_WIDTH / 2, WINDOW_WIDTH / 2),
Scalar(0, 255, 0),
thickness,
lineType);
imshow("原图4", myMat);
waitKey(0);