使用OpenCV检测ecllipse

时间:2017-01-22 04:52:51

标签: xcode opencv image-processing

尝试在xcode中使用OpenCV来检测图像的某些椭圆:

CvMemStorage *storage2 = cvCreateMemStorage(0);
CvSeq *contours = cvCreateSeq(0, sizeof(CvSeq), sizeof(CvPoint), storage2);

IplImage *th = cvCreateImage(imgSize, 8, 1);
cvThreshold(mask, th, 0.1, 255, CV_THRESH_BINARY_INV );


cvFindContours(th, storage2, &contours, sizeof(CvContour), CV_RETR_LIST, CV_CHAIN_APPROX_NONE, cvPoint(0, 0));

cvDrawContours(th, contours, CV_RGB(0,255,0), CV_RGB(0,0,255),
               2, 3, 8, cvPoint(0, 0));


cv::Vector<cv::RotatedRect> minRect(contours->total);
cv::Vector<cv::RotatedRect> minEllipse(contours->total);

for( int i = 0; i < contours->total ; i++ )
{
    minRect[i] = cvMinAreaRect2(&contours[i]);

}

我正在使用OpenCV文档中提供的示例。

当我尝试运行此代码时,出现错误:

error: (-5) Input array is not a valid matrix in function cvPointSeqFromMat

对于该行:     minRect[i] = cvMinAreaRect2(&contours[i]);

我对opencv很新,会感激任何帮助!!

由于

1 个答案:

答案 0 :(得分:0)

结果我需要调用h_next作为轮廓的下一个指针!!