在图像中寻找轮廓
首先利用Canny算子检测图像的边缘,再利用Canny算子的输出作为 寻找轮廓函数 findContours 的输入。最后用函数 drawContours 画出轮廓。边界Countour利用 vector<vector<Point> > 类型变量进行存储。findContour参数详细见此。
计算物体的凸包
将寻找轮廓的输出作为 函数 convexHull 的输入寻找凸包。凸包Hull也是利用 vector<vector<Point> > 类型变量进行存储,故也可以直接用函数 drawContours 画出轮廓。
创建包围轮廓的矩形和圆形边界框
- 使用OpenCV函数 boundingRect 来计算包围轮廓的矩形框.
- 使用OpenCV函数 minEnclosingCircle 来计算完全包围已有轮廓最小圆.
- approxPolyDP 多边形逼近轮廓
轮廓矩
- 使用OpenCV函数 moments 计算图像所有的矩(最高到3阶)
- 使用OpenCV函数 contourArea 来计算轮廓面积
- 使用OpenCV函数 arcLength 来计算轮廓或曲线长度
多边形测试
- 使用OpenCV函数 pointPolygonTest