1. 두 사진에서 KeyPoint를 뽑아낸다 (여러가지 방식이 있지만 나는 SURF이용)
2. Match를 위해서 descriptor를 뽑아낸다 (이것도 여러가지 방식이 있지만 이것도 SURF이용)
3. descriptor로 match점을 뽑아낸다.
vector<DMatch> matches;
DMatch로 선언된 이 일치점들에는 4가지의 파라미터가 있다.
distance
tranIdx
queryIdx
imgIdx
이것들을 그냥 콘솔에 프린트 해 보았더니
알수 없는 값들이 나왔으며, imgIdx는 전부 0이 나왔다.
완전히 같은 두 사진을 이용한 첫 실험
같은 사진이므로 당연히 일치점도 같다.
모든 점의 distance는 모두 0.
trainIdx와 queryIdx가 뭔지 몰라서
일단 각각 y축, x축으로 그래프를 그려 보았더니
정확하게 y=x꼴의 일차 직선그래프가 출력되었다.
두 사진은 같은 사진이였으므로
distance가 낮으면 일치율이 높고, y=x직선에 가까울수록 사진이 일치하는건가?
두번째는 각도를 다르게 하여 찍은 두개의 사진이다.
각 점의 distance는 0~0.3의 값을 보였는데,
0~0.1에 해당하면 흰색
0.1~0.2 는 초록색,
0.2~0.3 에 해당하면 빨간색으로 색을 구분했다.
trainIdx와 queryIdx로 구성된 그래프를 살펴보았는데,,
distance가 낮은 흰색점이 y=x에 무조건 가깝지가 않다.
처음 가정이 잘못되었다는것인데..
이 DMatch 파라미터들만 뭔지 알고
수치들을 잘 이용하면 여러가지로 유용하게 써먹을 것 같은데..
원하는 정보를 구글링해도 찾기가 힘들다.
일단 계속 연구중이다.
'공학 > 영상처리' 카테고리의 다른 글
기계와 사람의 시각정보 판단 (0) | 2018.07.23 |
---|