Фотостудия Mac на cv2 python, почему мой код приводит к ошибке?

#python #opencv #opencv3.0 #cv2 #opencv-python

Вопрос:

Я хочу, чтобы код сделал 4 снимка с интервалом в 1 секунду с помощью cv2, а затем добавил их вместе с помощью функции hconcat. Когда я пытаюсь запустить этот код, я получаю (объект’numpy.ndarray’ не имеет атрибута ‘release’), может кто-нибудь помочь

 import cv2,random num = random.randint(0,2000) cam = cv2.VideoCapture(0)  cv2.namedWindow("Mac")  def concat_tile(im_list_2d):  return cv2.vconcat([cv2.hconcat(im_list_h) for im_list_h in im_list_2d])  x = [] for i in range(4):  ret,frame = cam.read()  x.append(frame)  frame.release()  cv2.destroyAllWindows()  im_v = concat_tile([[x[0],x[1]],  [x[2],x[3]]]) img_name = "opencv_frame_{}.png".format(num) cv2.imwrite(img_name,im_v)  

Ответ №1:

Этого не должно быть frame.release() , скорее попробуйте cam.release()

Кроме того, release() и cv2.destroyAllWindows() , должно быть написано в конце вашего кода, а не в цикле for

 for i in range(4):  ret,frame = cam.read()  x.append(frame)  cam.release() cv2.destroyAllWindows()