import numpy as np
import cv2
import copy
def main():
cap = cv2.VideoCapture('inputVideo.mp4')
bs = cv2.createBackgroundSubtractorMOG2()
length = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
first_iteration_indicator = 1
for i in range(0, length):
ret, frame = cap.read()
if (first_iteration_indicator == 1):
first_frame = copy.deepcopy(frame)
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
height, width = gray.shape[:2]
accum_image = np.zeros((height, width), np.uint8)
first_iteration_indicator = 0
else:
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
fgmask = bs.apply(gray)
thresh = 2
maxValue = 2
ret, th1 = cv2.threshold(fgmask, thresh, maxValue, cv2.THRESH_BINARY)
accum_image = cv2.add(accum_image, th1)
color_image = cv2.applyColorMap(accum_image, cv2.COLORMAP_SUMMER)
result_overlay = cv2.addWeighted(first_frame, 0.7, color_image, 0.7, 0)
cv2.imwrite('overlay.jpg', result_overlay)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
if __name__=='__main__':
main()
Я создал оверлейное изображение, но я не знаю, как показать это оверлейное изображение на видео. Я хочу сохранить выходной файл в формате видео с тепловой картой поверх него. Кто-нибудь может мне помочь, пожалуйста?