开发者

the probIem of "cvEigenVV"

When I compile the program,VC2005 always tell:

error C2198: 'cvEigenVV' : too few arguments for call"

Part of the code below:

void draw_oxfd_feature( IplImage* img, struct feature* feat, CvScalar color )

{
 double m[4] = { feat->a, feat->b, feat->b, feat->c };

 double v[4] = { 0 };
 double e[2] = { 0 };
 CvMat M;
 CvMat V;
 CvMat E;
 double alpha, l1, l2;

 /* compute axes and orientation of ellipse surrounding affine region */
 cvInitMatHeader( &M, 2, 2, CV_64FC1, m, CV_AUTOSTEP );
 cvInitMatHeader( &V, 2, 2, CV_64FC1, v, CV_AUTOSTEP );
 cvInitMatHeader( &E, 2, 1, CV_64FC1, e, CV_AUTOSTEP );

 cvEigenVV( &M, &V, &E, DBL_EPSILON );

 l1 = 1 / sqrt( e[1] );
 l2 = 1 / sqrt( e[0] );
 alpha = -atan2( v[1], v[0] );
 alpha *= 180 / CV_PI;

 cvEllipse( img, cvPoint( feat->x, feat->y ), cvSize( l2, l1 ), alpha,
    0, 360, CV_RGB(0,0,0), 3, 8, 0 );
 cvEllipse( img, cvPoint( feat->x, feat->y ), cvSize( l2, l1 ), alpha,
    0, 360, color, 1, 8, 0 );
 cvLine( img, cvPoint( feat->x+2, feat->y ), cvPoint( feat->x-2, feat->y ),
   color, 1, 8, 0 );
 cvLine( img, cvPoint( feat->x, feat->y+2 ), cvPoint( feat->x, feat->y-2 ),
   color, 1, 8, 0 );
//     cvCircle(img,cvPoint(cvRound( feat->x ),c开发者_运维问答vRound( feat->y )),2, color, CV_FILLED, 8, 0);
  cvCircle(img,cvPoint( cvRound( feat->x ), cvRound( feat->y )), 2,CV_RGB(0,255,0), CV_FILLED, 8, 0 );

}

How to solve the problem?Thank you!


Take a look at the declaration of the cvEigenVV() function call, wherever that's located. It looks like you are either missing a parameter, or have too many....

Is it possible that there are overloaded versions, and that due to type conversion problems, the wrong one is being called when the overload is being resolved?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜