目标
- 你将学习一些数据结构:Point, Scalar, Size, Circle, Rect, RotatedRect 等。
Scalar 是 Javascript 中的数组类型。Point, Size, Circle, Rect 和 RotatedRect 是 JavaScript 中的对象类型。
Point
构造 Point 有两种方法,它们是相同的
// 第一种方法
let point = new cv.Point(x, y);
// 第二种方法
let point = {x: x, y: y};
- 参数
-
| x | 点的 x 坐标。(原点是图像的左上角) |
| y | 点的 y 坐标。 |
Scalar
构造 Scalar 有两种方法,它们是相同的
// 第一种方法
let scalar = new cv.Scalar(R, G, B, Alpha);
// 第二种方法
let scalar = [R, G, B, Alpha];
- 参数
-
| R | 红色通道的像素值。 |
| G | 绿色通道的像素值。 |
| B | 蓝色通道的像素值。 |
| Alpha | Alpha 通道的像素值。 |
Size
构造 Size 有两种方法,它们是相同的
// 第一种方法
let size = new cv.Size(width, height);
// 第二种方法
let size = {width : width, height : height};
- 参数
-
Circle
构造 Circle 有两种方法,它们是相同的
// 第一种方法
let circle = new cv.Circle(center, radius);
// 第二种方法
let circle = {center : center, radius : radius};
- 参数
-
Rect
构造 Rect 有两种方法,它们是相同的
// 第一种方法
let rect = new cv.Rect(x, y, width, height);
// 第二种方法
let rect = {x : x, y : y, width : width, height : height};
- 参数
-
| x | 矩形左上角顶点的 x 坐标。 |
| y | 矩形左上角顶点的 y 坐标。 |
| width | 矩形的宽度。 |
| height | 矩形的高度。 |
RotatedRect
构造 RotatedRect 有两种方法,它们是相同的
// 第一种方法
let rotatedRect = new cv.RotatedRect(center, size, angle);
// 第二种方法
let rotatedRect = {center : center, size : size, angle : angle};
- 参数
-
| center | 矩形的质心。 |
| size | 矩形的宽度和高度。 |
| angle | 顺时针方向的旋转角度。当角度为 0, 90, 180, 270 等时,矩形变为直立矩形。 |
学习如何从 rotatedRect 获取顶点
我们使用函数:cv.RotatedRect.points(rotatedRect)
- 参数
-
let vertices = cv.RotatedRect.points(rotatedRect);
let point1 = vertices[0];
let point2 = vertices[1];
let point3 = vertices[2];
let point4 = vertices[3];
学习如何从 rotatedRect 获取边界矩形
我们使用函数:cv.RotatedRect.boundingRect(rotatedRect)
- 参数
-
let boundingRect = cv.RotatedRect.boundingRect(rotatedRect);