gpt4 book ai didi

objective-c - openCV cvContourArea

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:53:31 25 4
gpt4 key购买 nike

我正在尝试使用 cvFindContours,这绝对是正确的选择。我在获得最大的一个时遇到了问题。有一个函数调用 cvContourArea,它假定获取序列中轮廓的面积。我遇到了麻烦。

int conNum = cvFindContours(outerbox, storage, &contours, sizeof(CvContour),CV_RETR_LIST,CV_CHAIN_APPROX_NONE,cvPoint(0, 0));
CvSeq* current_contour = contours;
double largestArea = 0;
CvSeq* largest_contour = NULL;


while (current_contour != NULL){
double area = fabs(cvContourArea(&storage,CV_WHOLE_SEQ, false));
if(area > largestArea){
largestArea = area;
largest_contour = current_contour;
}
current_contour = current_contour->h_next;
}

我尝试用轮廓替换存储(在 cvContourArea 中),但无论如何都会出现同样的错误:

OpenCV Error: Bad argument (Input array is not a valid matrix) in cvPointSeqFromMat, file /Volumes/ramdisk/opencv/OpenCV-2.2.0/modules/imgproc/src/utils.cpp, line 53

我用谷歌搜索,几乎找不到接受 3 个参数的 cvContourArea 的例子。好像它最近发生了变化。我想遍历找到的轮廓并找到最大的轮廓,然后使用 cvDrawContours 方法绘制它。谢谢!

最佳答案

尝试将以下语句中的&storage更改为current_contour

改变

double area = fabs(cvContourArea(&storage,CV_WHOLE_SEQ, false)); 

double area = fabs(cvContourArea(current_contour,CV_WHOLE_SEQ, 0));

关于objective-c - openCV cvContourArea,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9232080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com