给定椭圆的中点,椭圆的方向,短轴和长轴,在椭圆上得到n个点

时间:2019-06-05 15:22:45

标签: python opencv

我的数据集中有多张蜜蜂图像。我还得到了每只蜜蜂的中点,方向和长短轴长度。现在,我想要一个围绕蜜蜂的面具。我当时想在蜜蜂周围提取15-20点,这代表1只蜜蜂。我该怎么做?

我可以以某种方式使用OpenCV获取椭圆周围的点吗?

编辑

使用cv2.ellipse之后,我得到了这样的图像。我希望每只蜜蜂有15-20个角点。 this is just the sub-image of the complete image

gray = cv2.cvtColor(image_with_blue_blobs, cv2.COLOR_BGR2GRAY)
_, contours, _ = cv2.findContours(gray,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
epsilon = 0.01*cv2.arcLength(contours[0],True)
green_dots = cv2.approxPolyDP(contours[0],epsilon,True)

问题-green_dots变量仅具有图像的角。

1 个答案:

答案 0 :(得分:0)

您可以使用OpenCV to draw an ellipse

cv2.ellipse(img,(256,256),(100,50),0,0,360,255,-1)

您可以计算点,也可以使用OpenCV找到它们:

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
contours, _ = cv2.findContours(gray,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
epsilon = 0.01*cv2.arcLength(contours[0],True)
green_dots = cv2.approxPolyDP(contours[0],epsilon,True)

ellipse