opencv可以直接拟合出椭圆,但是在某些情况下,会出现拟合错误的情况,比如下面的
在算法原理上来说,可能没有问题,只是出现了某些特殊情况使结果异常了,具体原因可能没法说明。
这里建议改成下面的代码 来试试:
//RotatedRect rRect = fitEllipse(contours);
RotatedRect rRect = minAreaRect(Mat(contours));
ellipse(iamge, rRect, cv::Scalar(0, 0, 255));