色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python相位光流

阮建安1年前7瀏覽0評論

Python相位光流(Phase-Based Optical Flow)是一種流暢視頻圖像處理技術(shù),通過分析視頻中連續(xù)圖像的相位差異,獲取視頻中對象的運動軌跡。Python語言提供了豐富的圖像處理庫來實現(xiàn)相位光流,下面我們來看一下具體實現(xiàn)。

import cv2
import numpy as np
video = cv2.VideoCapture("video.mp4") #導(dǎo)入視頻
ret, frame1 = video.read() #讀取第一幀圖像
gray1 = cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY) #將圖像轉(zhuǎn)為灰度圖
while True:
ret, frame2 = video.read() #讀取下一幀圖像
gray2 = cv2.cvtColor(frame2, cv2.COLOR_BGR2GRAY) #將圖像轉(zhuǎn)為灰度圖
flow = cv2.calcOpticalFlowFarneback(
gray1, gray2, None, 0.5, 3, 15, 3, 5, 1.2, 0) 
#獲取光流矢量,F(xiàn)arneback是一種基于多尺度的光流估計方法
magnitude, angle = cv2.cartToPolar(
flow[...,0], flow[...,1]) #轉(zhuǎn)換為極坐標自變量
hsv = np.zeros_like(frame1) #創(chuàng)建一個像素值與frame1相同的空白圖像
hsv[...,1] = 255 
hsv[...,0] = angle*180/np.pi/2 
hsv[...,2] = cv2.normalize(magnitude,None,0,255,cv2.NORM_MINMAX) #歸一化光流強度
bgr = cv2.cvtColor(hsv,cv2.COLOR_HSV2BGR) #將hsv圖像轉(zhuǎn)為rgb圖像
cv2.imshow('frame2',bgr) 
if cv2.waitKey(1) == ord('q'):
break
gray1 = gray2
video.release() #釋放視頻資源
cv2.destroyAllWindows()

通過以上代碼,我們可以得到視頻中連續(xù)兩幀圖像的光流矢量,可以進一步判斷對象的運動軌跡,實現(xiàn)目標跟蹤、運動分析等應(yīng)用。