opencv - 如何将凸包点转换为图像中的实坐标

标签 opencv

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

    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。这正常吗?如果是这样,我怎样才能得到他们的图像坐标?

最佳答案

问题出在 convexHull 函数调用中:

cvConvexHull2( maxCtr, 0, CV_CLOCKWISE, 0 )

当最后一个参数return_points 设置为 时,该函数将为您提供点的索引,而不是点本身

为了使这项工作有效,我认为您应该将最后一个参数替换为 one 以便能够获得积分。

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

相关文章:

opencv - 闭眼检测opencv C++

java.lang.UnsatisfiedLinkError : Native method not found 错误

python - 仅使用 OpenCV 检测图像中的虚线(断线)

c++ - 与MATLAB相比,OpenCV从视频文件中提取的帧更少

c++ - 我可以在哪个 C++ 类中找到 cv::findChessboardCorners()

opencv - 'cmake'将引发 “OpenCVGenSetupVars.cmake”错误(在配置OpenCV时)

opencv - cvSetErrMode 不工作

python - 我正在尝试使用cv2.projectPoints(),但出现错误

java - Android OpenCV 中的高斯低通滤波器。

opencv - OpenCv-深度图