函数
CV_EXPORTS_W void approxPolyDP( InputArray curve,OutputArray approxCurve,double epsilon, bool closed );
参数详解:
InputArray curve:一般是由图像的轮廓点组成的点集;
OutputArray approxCurve:表示输出的多边形点集;
double epsilon:拟合的多边形到原轮廓的最大距离,根据经验如果要拟合四边形,则该值为contour.size() / 4;
bool closed:表示输出的多边形是否封闭;
用例:
std::vector<std::vector<cv::Point>> contours;
std::vector<cv::Vec4i> hierachy;
cv::findContours(binary, contours, hierachy, cv::RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point(-1,-1));
std::vector<std::vector<cv::Point>> contours_ploy(contours.size());
for(int i=0; i<contours.size(); i++)
{
approxPolyDP(contours[i], contours_ploy[i], contours[i].size() / 4, true);
}