使用grabcut(python)后找到图像中对象的坐标

问题描述 投票:0回答:1

我有很多龙虾图像(背景相同)。

我的目标是测量每只龙虾的大小。

为此,我使用Grabcut从背景中提取主要对象(龙虾)。但是,在此步骤之后,我不知道如何找到提取对象的坐标以进行裁剪。我需要裁剪对象以支持尺寸测量。

我不知道是否:

  • 我们有任何直接的方法只将提取的对象保存到新图像(只适合对象的大小),或
  • 在做Grabcut之后找到它的坐标。

如果我们没有上述任何一种,如果你告诉我其他方法从Grabcut输出做对象裁剪,我会很感激。

这是原始图像

这是Grabcut之后的输出图像

输出图像的大小仍与原始图像相同。

我需要将提取的对象保存到适合对象大小的新图像。

python image-processing crop
1个回答
0
投票

你需要一些来自OpenCV Library的min Bounding Rectangle。它形成一个最小的矩形,并给出矩形的坐标。

Bounding Rect:它给出了未旋转的矩形(绿色矩形)

x,y,w,h = cv2.boundingRect(cnt)
cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)

旋转边界矩形:它给出旋转的边界矩形(红色矩形)

rect = cv2.minAreaRect(cnt)
box = cv2.boxPoints(rect)
box = np.int0(box)
cv2.drawContours(img,[box],0,(0,0,255),2)

Image from OpenCV

在此之后,您可以获取坐标并使用龙虾提取矩形。

© www.soinside.com 2019 - 2024. All rights reserved.