我有一个numpy数组,其中的值分别为0和1。1表示我的数组中是否有对象,而0表示没有对象。我试图将numpy数组用作cv2图像,然后找到轮廓。我试图将一个numpy数组转换为cv2图像,但是我得到的解决方案对我不起作用。我尝试的代码是-
import argparse
import imutils
import cv2
# find the contours in the mask
cnts = cv2.findContours(water_mask.copy(),
cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
cnts = imutils.grab_contours(cnts)
print("I found {} black shapes".format(len(cnts)))
cv2.imshow("Mask", shapeMask)
# loop over the contours
for c in cnts:
# draw the contour and show it
cv2.drawContours(image, [c], -1, (0, 255, 0), 2)
cv2.imshow("Image", image)
cv2.waitKey(0)
在此代码中,water_mask是我的数组。This is the image if I plot my numpy array as an image
预期结果是检测我的numpy数组中的每个对象,并在其周围找到边界框。我认为我的代码中存在一些问题,所以谁能告诉我问题出在哪里?我认为一旦轮廓正确,就可以从中绘制边界框。