#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()