C++ 如何在OpenCV中将点传递给cvFitEllipse2

C++ 如何在OpenCV中将点传递给cvFitEllipse2,c++,iphone,opencv,C++,Iphone,Opencv,我是OpenCV新手,我有一个CGPoints数组,我需要将这些值传递给cvFitEllipse2,如何传递这些值?现在我得到例外,如果我通过如下 std::vector<cv::Point> contours; contours.resize(self.points.count); for(int i = 0 ; i < self.points.count ; i++) { CGPoint point = [self.point

我是OpenCV新手,我有一个CGPoints数组,我需要将这些值传递给cvFitEllipse2,如何传递这些值?现在我得到例外,如果我通过如下

    std::vector<cv::Point> contours;
    contours.resize(self.points.count);
    for(int i = 0 ; i < self.points.count ; i++)
    {
        CGPoint point = [self.points objectAtIndex:i];
        cv::Point val;
        val.x = point.x;
        val.y = point.y;
        contours[i] = val;
    }

    CvBox2D rect = cvFitEllipse2(&contours);
std::矢量轮廓;
等高线。调整大小(self.points.count);
对于(int i=0;i
试试这个:

std::vector<cv::Point> contours;
contours.resize(self.points.count);
for(int i = 0 ; i < self.points.count ; i++)
{
    CGPoint point = [self.points objectAtIndex:i];
    cv::Point val;
    val.x = point.x;
    val.y = point.y;
    contours[i] = val;
}

cv::RotatedRect rect = cv::fitEllipse(contours);
std::矢量轮廓;
等高线。调整大小(self.points.count);
对于(int i=0;i
之后,可以将rotatedRect转换为所需的类型

如果要将C API用于fitEllipse调用,必须根据

将向量转换为
CvSeq*
CvMat*
,尝试以下操作:

std::vector<cv::Point> contours;
contours.resize(self.points.count);
for(int i = 0 ; i < self.points.count ; i++)
{
    CGPoint point = [self.points objectAtIndex:i];
    cv::Point val;
    val.x = point.x;
    val.y = point.y;
    contours[i] = val;
}

cv::RotatedRect rect = cv::fitEllipse(contours);
std::矢量轮廓;
等高线。调整大小(self.points.count);
对于(int i=0;i
之后,可以将rotatedRect转换为所需的类型

如果要将C API用于fitEllipse调用,必须根据

将向量转换为
CvSeq*
CvMat*
,尝试以下操作:

std::vector<cv::Point> contours;
contours.resize(self.points.count);
for(int i = 0 ; i < self.points.count ; i++)
{
    CGPoint point = [self.points objectAtIndex:i];
    cv::Point val;
    val.x = point.x;
    val.y = point.y;
    contours[i] = val;
}

cv::RotatedRect rect = cv::fitEllipse(contours);
std::矢量轮廓;
等高线。调整大小(self.points.count);
对于(int i=0;i
之后,可以将rotatedRect转换为所需的类型

如果要将C API用于fitEllipse调用,必须根据

将向量转换为
CvSeq*
CvMat*
,尝试以下操作:

std::vector<cv::Point> contours;
contours.resize(self.points.count);
for(int i = 0 ; i < self.points.count ; i++)
{
    CGPoint point = [self.points objectAtIndex:i];
    cv::Point val;
    val.x = point.x;
    val.y = point.y;
    contours[i] = val;
}

cv::RotatedRect rect = cv::fitEllipse(contours);
std::矢量轮廓;
等高线。调整大小(self.points.count);
对于(int i=0;i
之后,可以将rotatedRect转换为所需的类型


如果要使用C API进行fitEllipse调用,必须根据

将向量转换为
CvSeq*
CvMat*
,请使用cv::fitEllipse,而不是神秘的C-API调用请使用cv::fitEllipse,不是神秘的C-API调用请使用cv::fitEllipse,而不是神秘的C-API调用请使用cv::fitEllipse,不是神秘的c-api调用