查找轮廓
基于图像边缘提取的基础寻找对象轮廓,边缘提取的阈值选定会影响轮廓发现的结果
void findContours( InputOutputArray image, OutputArrayOfArrays contours, int mode, int method, Point offset = Point());
image:图像(uint8)
contours:查找轮廓
mode:轮廓返回的模式
method:发现方法
offset:轮廓像素位移
绘制轮廓
void drawContours( InputOutputArray image, InputArrayOfArrays contours, int contourIdx, const Scalar& color, int thickness = 1, int lineType = LINE_8, InputArray hierarchy = noArray(), int maxLevel = INT_MAX, Point offset = Point() );
image:图像
contours:轮廓对象
contourIdx:轮廓索引号
color:绘制颜色
thickness:线宽
lineType:线类型
hierarchy:扩扑结构图
maxLevel:最大层数(0绘制当前,1绘制当前及内嵌的轮廓,轮廓位移)
offset:轮廓像素位移
轮廓外接最小正矩形
Rect boundingRect( InputArray array);
array:输入点
轮廓外接最小面积矩形(可能是斜矩形)
RotatedRect minAreaRect(InputArray points)
points:输入点
多边形拟合曲线
基于RDP算法实现减少多边形轮廓点数
void approxPolyDP( InputArray curve, OutputArray approxCurve, double epsilon, bool closed );
curve:输入的点集
approxCurve:输出的点集
epsilon:精度(原始曲线与近似曲线之间的最大距离)
closed:近似曲线是否闭合