使用OpenCV和Python在视频上应用热图
我想编写一个代码,将热图应用于有运动的地方的视频。我写了一个检测运动的代码,有轮廓,但我不知道如何制作热图。
这是我拥有的代码
import cv2
import numpy as np
# upload video
cap = cv2.VideoCapture('test_video.mp4')
#reading two frames
ret, frame1 = cap.read()
ret, frame2 = cap.read()
while cap.isOpened():
# get diference between two frames
diff = cv2.absdiff(frame1, frame2)
# convert diference in gray
gray = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY)
# bluring and treshold
blur = cv2.GaussianBlur(gray, (5,5), 0)
_, thresh = cv2.threshold(blur, 20, 255, cv2.THRESH_BINARY)
dilated = cv2.dilate(thresh, None, iterations = 3)
# define contours
contours, _ = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# draw contours
cv2.drawContours(frame1, contours, -1, (255,0,0), 1)
# show frames
cv2.imshow('frame', frame1)
frame1 = frame2
ret, frame2 = cap.read()
if cv2.waitKey(60) == 60:
break
cv2.destroyAllWindows()
cap.release()
我看过这个链接:Build a Motion Heatmap Video Using OpenCV With Python。我想重现代码,但是很多东西如fourcc, image_folder, 和images没有定义,所以我试着用另一种方式来做。
你能帮我解决这个问题吗?基本上,我想将热图应用于有运动的视频。