Optical flow - wikipedia.org
Optical flow or optic flow is the pattern of apparent motion of objects, surfaces, and edges in a visual scene caused by the relative motion between an observer (an eye or a camera) and the scene.
Optical flow 또는 optic flow 는 움직임의 objects, surface, and edges가 들어있는 시각적인 장면을 야기하는 상대 운동과 목격자의 중간, 그리고 장면의 분명한 패턴이다.
(영알못)
넘나 어렵다. 사실 뭐라고 하는 것인지 모르겠다.
1. Optical flow 를 사용할 때 피라미드 영상이 사용되는 이유는?
- 피라미드는 영상에서 크기를 줄여나가는 것인데 크기를 줄여 각 영상마다 동일하게 나타나는 특징점 및 정보를 가져오려사용한다. 이러한 이유는 크기가 다른 영상에서 동일하게 나오는 정보가 아무래도 신뢰도가 높기 때문.
또한, coare to fine search 등을 적용하여 더 빠른 탐색, 즉 계산속도와 빠른 속도의 움직임에서 추적을 잃지 않게 하기 위해 사용.
1. 신뢰도 향상
2.고속화
2. goodFeaturesToTrack 함수의 매개변수
C++:
void goodFeaturesToTrack(
InputArray image,
OutputArray corners,
int maxCorners,
double qualityLevel,
double minDistance,
InputArray mask=noArray(),
int blockSize=3,
bool useHarrisDetector=false,
double k=0.04
)
Parameters:
- image - 8비트 or 32비트 부동 소수점, 단일 채널 영상
- eig_image - 이 parameter는 무시된다.
- temp_image - 이 parameter는 무시된다.
- corners - 검출된 corner들을 담을 벡터
- maxCorners - 반환 할 corner들의 최대 수(검출할 코너의 갯수 라는데 왜 해석이 이런 줄 모르겠다. 내 영어 실력이 부족한 것임이 틀림없다). 만약 더 많은 corner들을 찾게 된다면 더 쎈(?) corner를 반환.
- qualityLevel - 검출된 corner들의 질을 결정. 만약 검출된 corner의 질이 1500이고, qualityLevel 이 0.01 일 때 15 보다 작은 값들을 버린다.
- minDistance - 반환되는 corner들 사이의 최소 Euclidean 값. 간격을 제한하여 겹쳐 나오는 것을 방지.
- mask - corner를 찾을 관심영역. 만약 이 이미지가 비어있지 않았을 때(이 타입은 CV_8UC1, image 와 똑같은 사이즈여야 함) 관심 영역의 corner를 감지하고 명시해야한다.(?)
- blockSize - 파생된 공분산 행렬을 계산(computing)하기 위한 평균 블럭의 사이즈 라고 한다...
- useHarrisDetector - Harris Detector를 사용할 것인가에 대한 것.
- k - Harris Detector를 위한 파라미터
3. buildOpticalFlowPyramid 함수의 매개변수
C++:
int buildOpticalFlowPyramid
(
InputArray img,
OutputArrayOfArrays pyramid,
Size winSize,
int maxLevel,
bool withDerivatives=true,
int pyrBorder=BORDER_REFLECT_101,
int derivBorder=BORDER_CONSTANT,
bool tryReuseInputImage=true
)
작성 중..