def writeOpticalFlow(path,filename,w,h,c):
count=0
try:
cap = cv2.VideoCapture(path+'/'+filename)
ret, frame1 = cap.read()
if frame1==None:
return count
frame1 = cv2.resize(frame1, (w,h))
prvs = cv2.cvtColor(frame1,cv2.COLOR_BGR2GRAY)
folder = './of_images'+'/'+filename+'/'
dir = os.path.dirname(folder)
os.mkdir(dir)
while(1):
ret, frame2 = cap.read()
if frame2==None:
break
count+=1
if count%5==0:
print (filename+':' +str(c)+'-'+str(count))
frame2 = cv2.resize(frame2, (w,h))
next = cv2.cvtColor(frame2,cv2.COLOR_BGR2GRAY)
flow = cv2.calcOpticalFlowFarneback(prvs,next, None, 0.5, 3, 15, 3, 5, 1.2, 0)
horz = cv2.normalize(flow[...,0], None, 0, 255, cv2.NORM_MINMAX)
vert = cv2.normalize(flow[...,1], None, 0, 255, cv2.NORM_MINMAX)
horz = horz.astype('uint8')
vert = vert.astype('uint8')
cv2.imwrite(folder+'h'+str(count)+'_'+filename+'.jpg',horz,[int(cv2.IMWRITE_JPEG_QUALITY), 90])
cv2.imwrite(folder+'v'+str(count)+'_'+filename+'.jpg',vert,[int(cv2.IMWRITE_JPEG_QUALITY), 90])
prvs = next
cap.release()
cv2.destroyAllWindows()
return count
except Exception,e:
print e
return count
optical_flow_prep.py 文件源码
python
阅读 23
收藏 0
点赞 0
评论 0
评论列表
文章目录