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));
}
どんな種類の助けも大歓迎です。前もって感謝します。