我正在尝试使用openCV(使用C)计算从Canny边缘图像中检索到的轮廓中非零像素的数量。我正在使用 cvFindNextContour 来查找使用轮廓扫描仪检索到的后续轮廓。
但是当我在轮廓上使用 cvCountNonZero 时,会出现错误:
Bad flag (parameter or structure field) (Unrecognized or unsupported array type)
in function cvGetMat, C:\User\..\cvarray.cpp(2881)
我的代码是:
cvCvtColor(image, gray, CV_BGR2GRAY);
cvCanny(gray, edge, (float)edge_thresh, (float)edge_thresh*4, 3);
sc = cvStartFindContours( edge, mem,
sizeof(CvContour),
CV_RETR_LIST,
CV_CHAIN_APPROX_SIMPLE,
cvPoint(0,0) );
while((contour = cvFindNextContour(sc))!=NULL)
{
CvScalar color = CV_RGB( rand()&255, rand()&255, rand()&255 );
printf("%d\n",cvCountNonZero(contour));
cvDrawContours(final, contour, color, CV_RGB(0,0,0), -1, 1, 8, cvPoint(0,0));
}
任何形式的帮助都将受到高度赞赏。提前致谢。