我一定完全误会了。我正在使用以下代码来查找四边形的角点

    maxCtr = cvApproxPoly( maxCtr, sizeof(CvContour), mem2, CV_POLY_APPROX_DP, 5, 1 );
    CvSeq* hull = cvConvexHull2( maxCtr, 0, CV_CLOCKWISE, 0 );
    int numOfHull =hull->total;
    CvPoint*  hullPoints;
    hullPoints = ( CvPoint *)malloc((hull->total)*sizeof(CvSeq));
    cvCvtSeqToArray(hull,hullPoints);

正如我使用cvDrawContours验证的那样,找到正确的形状效果很好。但是,当我查看hullPoints并期望它们是四个角的坐标时,它们的x和y值看起来很疯狂,例如83603736、83603744。这正常吗?如果是这样,我如何获取图像的坐标?

最佳答案

我在第五行看到一个问题:

hullPoints = ( CvPoint *)malloc((hull->total)*sizeof(CvSeq));

应该:
hullPoints = ( CvPoint *)malloc((hull->total)*sizeof(CvPoint));

关于opencv - 如何将凸包点转换为图像中的真实坐标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10199595/

10-09 07:09