我的数据集中有多张蜜蜂图像。我还得到了每只蜜蜂的中点,方向和长短轴长度。现在,我想要一个围绕蜜蜂的面具。我当时想在蜜蜂周围提取15-20点,这代表1只蜜蜂。我该怎么做?
我可以以某种方式使用OpenCV获取椭圆周围的点吗?
编辑
使用cv2.ellipse之后,我得到了这样的图像。我希望每只蜜蜂有15-20个角点。
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变量仅具有图像的角。
答案 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)