- 옵티컬플로우 (Optical flow)란?
- 연속하는 두 프레임(영상)에서 카메라 또는 객체의 움직임에 의해 나타나는 객체의 이동 정보 패턴
- 옵티컬플로우 계산
- OpenCV 옵티컬플로우 계산 함수
- 루카스-카나데 옵티컬플로우 예제
import sys
import numpy as np
import cv2
src1 = cv2.imread('frame1.jpg')
src2 = cv2.imread('frame2.jpg')
if src1 is None or src2 is None:
print('Image load failed!')
sys.exit()
gray1=cv2.cvtColor(src1,cv2.COLOR_BGR2GRAY)
pt1=cv2.goodFeaturesToTrack(gray1,50,0.01,10) # 코너 점을 찾는 함수(grayscale 영상만 입력으로 받을수 있다) https://076923.github.io/posts/Python-opencv-23/
pt2,status,err=cv2.calcOpticalFlowPyrLK(src1,src2,pt1,None)
dst=cv2.addWeighted(src1,0.5,src2,0.5,0)
for i in range(pt2.shape[0]):
if status[i,0]==0: # 잘못 찾은것은 무시한다
continue
cv2.circle(dst,tuple(pt1[i,0]),4,(0,255,255),2,cv2.LINE_AA)
cv2.circle(dst,tuple(pt2[i,0]),4,(0,0,255),2,cv2.LINE_AA)
cv2.arrowedLine(dst,tuple(pt1[i,0]),tuple(pt2[i,0]),(0,255,0),2)
cv2.imshow('dst',dst)
cv2.waitKey()
'Computer Vision > opencv(python)' 카테고리의 다른 글
[70] 8) OpenCV 트래커 (0) | 2021.04.09 |
---|---|
[69] 7) 밀집 오티컬플로우 (0) | 2021.04.03 |
[67] 5) 캠시프트 알고리즘 (0) | 2021.04.03 |
[66] 4) 평균 이동 알고리즘 (0) | 2021.03.28 |
[65] 3) 배경 차분 : MOG 배경 모델 (0) | 2021.03.28 |