4

在 OpenCV 中,调用 cv2.findContours 后,我得到了一个轮廓数组。

contours, hierarchy = cv2.findContours(image, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)

我想使用 cv2.boundingRect 给我一个定义轮廓的矩形,因为轮廓可能很复杂。

for contour in contours:
   boundRect = cv2.boundingRect(contour)

但是,这给了我一个 BoundingRect 对象,其形式为 (x, y, width, height)。是否有一种标准方法可以将其转换为具有已提供辅助函数的标准 NumPy 数组,还是我需要手动构建它?

4

1 回答 1

3

是的,您必须手动构建这样的数组。

可能是,您可以执行以下操作:

>>> a = np.empty((0,4))
>>> for con in cont:
        rect = np.array(cv2.boundingRect(con)).reshape(1,4)
        a = np.append(a,rect,0)

就我而言,finala的形状为(166,4).

或者您可以使用任何 Numpy 方法来执行此操作。

于 2012-07-09T14:43:54.213 回答