我使用ellipse = cv2.fitEllipse(cnt)
获取椭圆。
它返回3个元素的元组,但我无法找到任何描述的元素。我想找到获得的椭圆的面积。我该怎么做。
谢谢!
答案 0 :(得分:4)
fitEllipse
返回一个由三个元素组成的元组(如你所说),它定义了椭圆的边界框。我将使用以下行来引用这些元素:
(x, y), (MA, ma), angle = cv2.fitEllipse(cnt)
这里唯一相关的信息是(MA, ma)
,它按顺序包含长轴和短轴的长度。椭圆的面积简单地是长轴和短轴的乘积。 (因此位置和旋转无关。)因此,您将使用
A = PI * MA * ma
答案 1 :(得分:2)
函数cv2.fitEllipse(.)
返回RotatedRect的元素,它是覆盖椭圆的最小边界矩形。
要查找区域,您可以获取边界矩形的区域,也可以直接从椭圆的轮廓contourArea
获取答案 2 :(得分:0)
您可以使用ellipse = cv2.fitEllipse(cnt)
Double H = ellipse.size.height;
Double W = ellipse.size.weight;
Double ellipse_area = CV_PI * (H/2.0) * (W/2.0)
对于最大和最小半径,将H和W除以2.0