Я следую руководству по Opencv, но не уверен в цели cv2.absdiff(frame1,frame2), какова цель этого?Python

Программы на Python
Anonymous
Я следую руководству по Opencv, но не уверен в цели cv2.absdiff(frame1,frame2), какова цель этого?

Сообщение Anonymous »

(Новичок)
Вот код:

Код: Выделить всё

    import cv2
import numpy as np

cap = cv2.VideoCapture('vtest.avi')

ret, frame1 = cap.read()
ret, frame2 = cap.read()

while cap.isOpened():
diff = cv2.absdiff(frame1, frame2)
gray = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5,5), 0)
_, thresh = cv2.threshold(blur, 20, 255, cv2.THRESH_BINARY)
dilate = cv2.dilate(thresh, None, iterations=3)
contour, _ = cv2.findContours(dilate, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

cv2.drawContours(frame1, contour, -1, (0, 255, 0), 2)

cv2.imshow('feed', frame1)

frame1 = frame2
ret, frame2 = cap.read()

if cv2.waitKey(40) == 27:
break

cv2.destroyAllWindows()
cap.release()
В чем смысл cv2.absdiff(frame1,frame2)? Разве кадр 1 и кадр 2 не одинаковы? Кроме того, какова цель кадра 1 = кадра 2?
Результат можно увидеть на 5:35:01 этого видео

Вернуться в «Python»