| from ultralytics import YOLO |
| import cv2 as cv |
|
|
| def process(): |
| writer = None |
| (W, H) = (None, None) |
| path = "../videos/gun.mp4" |
| model = YOLO("gunModel.pt") |
| vs = cv.VideoCapture(path) |
| while True: |
| |
| (grabbed, frame) = vs.read() |
| if not grabbed: |
| break |
| results = model.predict(frame, stream=False) |
| for result in results: |
| for data in result.boxes.data.tolist(): |
| draw_Box(data,frame," ") |
| |
| if writer is None: |
| |
| fourcc = cv.VideoWriter_fourcc(*"MJPG") |
| writer = cv.VideoWriter("op3.mp4", fourcc, 24, |
| (frame.shape[1], frame.shape[0]), True) |
| print("writing") |
| writer.write(frame) |
| cv.imshow('image', frame) |
| cv.waitKey(24) |
| |
|
|
| def draw_Box(data,image,name): |
| x1,y1,x2,y2,_,_ = data |
| p1 = (int(x1),int(y1)) |
| p2 = (int(x2),int(y2)) |
| cv.rectangle(image,p1,p2,(0,0,255),3) |
| cv.putText(image, "gun", p1, cv.FONT_HERSHEY_SIMPLEX, 2, (0, 200, 255), |
| 9) |
| |
| process() |