import cv2 import time import os import numpy as np vehicles = ["ambulance", "car1"] sides = [str(x) for x in range(0,361,30)] distances =["close_high","far_high","close_low","far_low"] cam_no = 0 while 1: cam = cv2.VideoCapture(cam_no) if not (cam is None or not cam.isOpened()): break cam_no+=1 def take_image(): for vehicle in vehicles: if vehicle == "ambulance": continue if not os.path.exists("images\\"+vehicle): os.makedirs("images\\"+vehicle) for distance in distances: for side in sides: for i in range(1,3): ret,img= cam.read() cv2.imwrite("images\\{}\\{}-{}({}).jpg".format(vehicle,distance,side,i),img) cv2.imshow("current",img) ex_c = [27, ord("q"), ord("Q")] if cv2.waitKey(1) & 0xFF in ex_c: break print("Took side {}:distance:{}, waiting 7 seconds".format(side,distance)) time.sleep(7) print("Finished distance:"+distance) while not cv2.waitKey(1) & 0xFF in ex_c: ret,img= cam.read() cv2.imshow("current",img) print("Finished vehicle:"+vehicle) while not cv2.waitKey(1) & 0xFF in ex_c: ret,img= cam.read() cv2.imshow("current",img) def cut_image(): for vehicle in vehicles: images = [] image_main = None if not os.path.exists("images\\"+vehicle): os.makedirs("images\\"+vehicle) for distance in distances: for side in sides: for i in range(1,3): img = cv2.imread("images\\{}\\{}-{}({}).jpg".format(vehicle,distance,side,i)) images.append(img) image_main = np.zeros_like(images[0]) sums = np.array(image_main, dtype='int64') for i in range(len(images)): sums += np.array(images[i],dtype='int64') image_main = np.array(sums/(len(images)+1)).astype(uint8) cv2.imshow("a",image_main) cv2.waitKey(0) cut_image()