轮廓曲线
void findContours(InputOutPutArray image,
OutputArrayOfArrays contours,
OutputArray hierarchy,
int mode,
int method,
Point offset = Point());
参数详解:
- 第一个参数:
- 第二个参数:
- 第三个参数:
- 第四个参数:
- 第五个参数:
- 第六个参数:
- 第七个参数:
void drawContours(InputOutPutArray image,
OutputArrayOfArrays contours,
int contourIdx,
const Scalar& color,
int thickness = 1,
int lineType = 8,
InputArray hierarchy = noArray(), intmaxLevel = INT_MAX, Point offset = Point()
);
参数详解:
- 第一个参数:
- 第二个参数:
- 第三个参数:
- 第四个参数:
- 第五个参数:
- 第六个参数:
- 第七个参数:
- 第八个参数:
- 第九个参数:
寻找凸包
凸包:将对象最外层的点连接起来构成的凸多边形。
凸缺陷
void
程序示例
使用多边形将轮廓包围
- 正矩形边界
Rect boundingRect(InputArray points);
- 最小包围矩形
RotatedRect minAreaRect(InputArray points);
- 最小包围圆形
void minEnclosingCircle(InputArray points,
Point2f& center,
float& radius);
- 椭圆拟合
RotatedRect fitEllipse(InputArray points);
- 逼近多边形曲线
void approxPolyDP(InputArray curve,
OutputArray approxCurve,
double epsilon,
bool closed);
分水岭算法
基本思想:把图像的灰度值当做海拔高度,局部极小值称为盆地,盆地的边缘形成分水岭。
void watershed(InputArray image,
InputOutputArray markers);
程序示例