cvCheckContourConvexity

CVAPI(int) cvCheckContourConvexity( const CvArr* contour );
该函数用于判断轮廓是否为凸(如果为凸返回值为 1,如果为凹返回0
contour为要判断的轮廓指针.

轮廓相关函数笔记

明显:CvSeq* contours2也属于CvArr*
CvRect rect = cvBoundingRect( contours2, 0 );//返回一个2d矩形的点集合,这个方框必须是正的。
CvBox2D box = cvMinAreaRect2( contours2, minStorage );//包围所有点的轮廓的最小矩形。这个矩形可以是倾斜的

int checkcxt = cvCheckContourConvexity( contours2 );//检测输入的轮廓是否是凸的
CvSeq* hull = cvConvexHull2( contours2, 0, CV_CLOCKWISE, 0 );//二维凸包
CvSeq* defect = cvConvexityDefects( contours2, hull, dftStorage );//凸包中的缺陷
通过检查二维凸包缺陷的数量,和程度,可以判断轮廓的外形。

 

 

PointPolygonTest 测试点是否在多边形中
double cvPointPolygonTest( const CvArr* contour,CvPoint2D32f pt, int measure_dist );
contour
输入轮廓.
pt
针对轮廓需要测试的点。
measure_dist
如果非0,函数将估算点到轮廓最近边的距离。
函数cvPointPolygonTest 决定测试点是否在轮廓内,轮廓外,还是轮廓的边上(或者共边的交点上),它的返回值是正负零,相对应的,当measure_dist=0时,返回值是1, -1,0, 同样当 measure_dist≠0 ,它是返回一个从点到最近的边的带符号距离。

你可能感兴趣的:(opencv)