특징 : 영상으로부터 추출할 수 있는 유용한 정보
평균 밝기, 히스토그램, 에지, 직선성분, 코너
코너 : 에지의 방향이 급격하게 변하는 부분 (삼각형의 꼭짓점)
특징점 : 코너처럼 한 점의 형태로 표현되는 특징
w(x,y)는 균일한 값을 갖는 사각형 윈도우 또는 가우시안 형태의 가중치 갖는 윈도우
E(x,y) 값이 크면 코너임! ( 주변 픽셀과 값의 차이가 크기 때문)
det(M) =
이를 검사하기 위해 테일러 급수, 고윳값 분석 등의 수학적 기법 적용하여 R을 유도
k는 보통 0.04 ~ 0.06 사이의 값 사용
Det()는 행렬식을, Tr()은 대각합을 의미
Det(M) = 람다1 * 람다2
Tr(M) = 람다1 + 람다2
R >0 코너점
R<0 enge
|R|이 매우 작으면 flat
위의 해리스와 다르게 단순 픽셀값 비교를 통해 코너 검출
주변 16개의 픽셀값 비교를 해서 p보다 충분히 밝거나 어두운 픽셀이 9개 이상 존재하면 코너!
점 p에서의 밝기를 Ip 라 하면
점 주변 코너도 함께 코너로 도출하는 경우가 많다
-> 비최대 억제 작업 필요
16개의 점과 픽셀 값 차이 합을 코너 점수로 정의
인접 코너중 코너 점수가 가장 큰 코너만 최종코너로 선택
코너는 화전 불변 특징점
크기가 변경될 경우 코너로 검출 안될수도 있다!
크기 불변 특징점 검출 시
인접한 가우시안 블러링 영상끼리 차를 이용함
-> DoG 영상
인접한 DoG 영상을 고려한 지역 극값 위치 특징점으로 사용
특징점 검출뿐만 아니라 특징점 주변 픽셀 값을 이용한 기술자 계산법도 포함
특징점 기술자 : 특징점 주변 영상의 특성을 여러개의 실수값으로 표현
-> 특징 벡터!
서로 같은 특징점이면 실수 구성이 일치해야함
-> 특징점 부근 영상으로부터 그래디언트 방향 히스토그램 추출하여 기술자로 이용
기술자가 128개 또는 64개 실수값
특징점 사이 거리는 해밍 거리 방법 사용
XOR 논리합
두 영상에서 추출한 특징점 기술자 비교하여 비슷한 특징점 찾음
-> 두 영상의 특징점 매칭 정보를 보여줌
두 특징점이 유사하면 distance 값이 0에 가깝고 다르면 distance 값이 크게 나타남
특징점 매칭 클래스
match : 가장 비슷한 기술자 쌍 하나 찾음
knnMatch() : 비슷한 기술자 쌍 k개 찾음
radiusMatch() : 지정한 거리 반경 안 기술자 쌍 모두 찾아 반환
BFMatcher : 전수조사 매칭 실행
모두 계산한 후 거리 작은 기술자 찾아 매칭
FlannBasedMatcher
근사화된 최근방 이웃 알고리즘 빠르게 구현
해밍 거리 사용하는 이진 기술자 사용 불가
투시변환과 같음
네개의 대응되는 점 있다면 호모그래피 행렬 구할 수 있음
파노라마
같은 위치 분간을 위해 유효한 특징점이 많아야 한다
매칭 수행하여 호모그래피 구해야함
호모그래피 기반으로 입력 영상을 변형하여 서로 이어붙이는 작업 수행
블랜딩까지 함
stitcher = cv2.Stitcher_create()
status, dst = stitcher.stitch(imgs)