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)

ただし、これにより、(x、y、width、height)の形式のBoundingRectオブジェクトが得られます。これを、すでに提供されているヘルパー関数を使用して標準の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 に答える