差分圖像是一種常見(jiàn)的圖像處理技術(shù),它可以通過(guò)比較同一圖像序列中的不同幀之間的像素變化,快速檢測(cè)到圖像中的運(yùn)動(dòng)。
import cv2 import numpy as np cap = cv2.VideoCapture('example.mp4') ret, frame1 = cap.read() gray1 = cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY) while True: ret, frame2 = cap.read() if not ret: break gray2 = cv2.cvtColor(frame2, cv2.COLOR_BGR2GRAY) diff = cv2.absdiff(gray1, gray2) cv2.imshow('Diff', diff) gray1 = gray2 if cv2.waitKey(1) == ord('q'): break cap.release() cv2.destroyAllWindows()
在這個(gè)例子中,我們使用OpenCV庫(kù)讀取一個(gè)視頻文件,然后對(duì)每一幀圖像進(jìn)行差分處理。首先,我們將第一幀圖像轉(zhuǎn)換成灰度圖像,用于后續(xù)幀的比較。在循環(huán)中,我們讀取下一幀并將其轉(zhuǎn)換為灰度圖像,然后進(jìn)行差分處理。差分處理生成的圖像將反映出圖像中的變化,例如移動(dòng)的物體、出現(xiàn)的新物體等。最后,我們將當(dāng)前幀的灰度圖像賦值給上一幀圖像,然后等待按下“q”來(lái)退出循環(huán)和程序。