Home 帧间差分法
帧间差分法
取消

帧间差分法

import cv2
def absdiffDemo(image_1, image_2, thread0):
 gray_image_1 = cv2.cvtColor(image_1, cv2.COLOR_BGR2GRAY) #灰度化
 gray_image_1 = cv2.GaussianBlur(gray_image_1, (3, 3), 0) #高斯滤波
 gray_image_2 = cv2.cvtColor(image_2, cv2.COLOR_BGR2GRAY)
 gray_image_2 = cv2.GaussianBlur(gray_image_2, (3, 3), 0)
 # 帧间差分,返回差值图像
 d_frame = cv2.absdiff(gray_image_1, gray_image_2)
 # 设置阈值 cv2.THRESH_BINARY(黑白二值)
 ret, d_frame = cv2.threshold(d_frame, thread0, 255, cv2.THRESH_BINARY)
 return d_frame

capture = cv2.VideoCapture("/home/clhiker/5.mp4")
Thread0 = 5 #sThre表示像素阈值
count = 0
ret, frame = capture.read() #初始帧
while(True):
 cv2.waitKey(30)
 ret_2, frame_2 = capture.read()
 if ret_2 == False:
    break
 d_frame = absdiffDemo(frame, frame_2, Thread0)
 cv2.imwrite('/home/clhiker/1/' + str(count) + '.jpg',d_frame)
 # 帧迭代
 frame = frame_2
 count += 1​


该博客文章由作者通过 CC BY 4.0进行授权。