Opencv fitEllipse和RotatedRect c ++

时间:2014-09-18 09:41:24

标签: c++ opencv

我遇到了一个项目的问题,我有一个点的模式,想要找到pettern的角度,我想我可以使用fitEllipse和RotatedRect来完成工作。但它什么也没有回报。

void GetAng(IplImage *image, std::vector<cv::Point> points)
{

    cv::RotatedRect r = cv::fitEllipse(points);

    char debug_val3 [100];
    sprintf (debug_val3, "Angle: %.2f", r.angle);
    debug(debug_val3);

    cv::Point2f vertices[4];

    r.points(vertices);
    for( int i = 0; i < 4; i++ )
    cvLine(image, vertices[i], vertices[(i+1)%4], CV_RGB(255, 255, 255), 1, 8, 0);
}

//the function I use for adding points to the vector, the x_dot and y_dot is in pixels.
points.push_back(cv::Point(x_dot,y_dot));

//here I call the function
GetPatternAng(iplDst,points);

The points:

[0]{x=97 y=866 }
[1]{x=287 y=868 }
[2]{x=475 y=867 }
[3]{x=663 y=868 }
[4]{x=853 y=870 }
[5]{x=96 y=671 }    
[6]{x=287 y=672 }   
[7]{x=475 y=671 }   
[8]{x=664 y=673 }   
[9]{x=854 y=674 }   
[10]{x=95 y=478 }   
[11]{x=287 y=479 }  
[12]{x=475 y=479 }  
[13]{x=663 y=480 }  
[14]{x=853 y=481 }  
[15]{x=96 y=286 }   
[16]{x=286 y=287 }
[17]{x=475 y=287 }  
[18]{x=663 y=288 }  
[19]{x=853 y=288 }  
[20]{x=96 y=90 }    
[21]{x=286 y=92 }   
[22]{x=474 y=92 }   
[23]{x=662 y=93 }   
[24]{x=851 y=93 }

有没有人能说出我做错了什么以及如何解决?

先谢谢

0 个答案:

没有答案