我正在嘗試分割此視頻的移動螺旋槳。我的方法是,檢測所有黑色和移動像素以將螺旋槳與其他像素分開。這是我到目前為止嘗試過的:
import numpy as np
import cv2
x,y,h,w = 350,100,420,500 # Croping values
cap = cv2.VideoCapture('Video Path')
while(1):
_, frame = cap.read()
frame = frame[y:y h, x:x w] # Crop Video
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
lower_black = np.array([0,0,0])
upper_black = np.array([360,255,90])
mask = cv2.inRange(hsv, lower_black, upper_black)
res = cv2.bitwise_and(frame,frame, mask= mask)
nz = np.argwhere(mask)
cv2.imshow('Original',frame)
cv2.imshow('Propeller Segmentation',mask)
k = cv2.waitKey(30) & 0xff # press esc to exit
if k == 27:
break
cap.release()
cv2.destroyAllWindows()
視頻截圖
分割結果
使用函式 cv.createBackgroundSubtractorMOG2()
uj5u.com熱心網友回復:
我認為你應該看看背景減法。它應該是解決您問題的正確方法。
OpenCV 提供了一個很好的教程:鏈接
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/387271.html
