深度學習識別出視頻的物體以後,須要在視頻上畫框標記出來。python
接下來介紹如何使用python在視頻上畫框和文字ide
#!/usr/bin/env python # -*- coding:utf-8 -*- import cv2 video = "demo.mp4" result_video = "demo-result.mp4" #讀取視頻 cap = cv2.VideoCapture(video) #獲取視頻幀率 fps_video = cap.get(cv2.CAP_PROP_FPS) #設置寫入視頻的編碼格式 fourcc = cv2.VideoWriter_fourcc(*"mp4v") #獲取視頻寬度 frame_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) #獲取視頻高度 frame_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) videoWriter = cv2.VideoWriter(result_video, fourcc, fps_video, (frame_width, frame_height)) frame_id = 0 while (cap.isOpened()): ret, frame = cap.read() if ret == True: frame_id += 1 left_x_up = int(frame_width / frame_id) left_y_up = int(frame_height / frame_id) right_x_down = int(left_x_up + frame_width / 10) right_y_down = int(left_y_up + frame_height / 10) #文字座標 word_x = left_x_up + 5 word_y = left_y_up + 25 cv2.rectangle(frame, (left_x_up, left_y_up), (right_x_down, right_y_down), (55,255,155), 5) cv2.putText(frame, 'frame_%s' %frame_id, (word_x, word_y), cv2.FONT_HERSHEY_SIMPLEX, 1, (55,255,155), 2) videoWriter.write(frame) else: videoWriter.release() break
主要用到cv2的兩個函數,cv2.rectangle(圖像, (矩形左上角座標), (矩形右下角座標), (矩形顏色), 線條粗細)函數
cv2.rectangle(frame, (left_x_up, left_y_up), (right_x_down, right_y_down), (55,255,155), 5)
cv2.putText(圖像, 要寫入的內容, (文字座標), 字體, 字號, (字體顏色), 字體粗細)學習
cv2.putText(frame, 'frame_%s' %frame_id, (word_x, word_y), cv2.FONT_HERSHEY_SIMPLEX, 1, (55,255,155), 2)