我遇到了一个项目的问题,我有一个点的模式,想要找到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 }
有没有人能说出我做错了什么以及如何解决?
先谢谢