OpenCV를 사용하면 이 두 이미지 사이의 호모 그래피를 계산합니다.
과
오른쪽의 이상한 흰색 모양에 대해 걱정하지 마십시오. 사용하는 스마트 폰 홀더 때문입니다. 주어진 호모 그래피, findHomography () 함수 (사용한 점을 검출 빠른 특징 검출기 및 HammingLUT 디스크립터 정합 )이다 :
A = [ 1.412817430564191, 0.0684947165270289, -517.7751355800591;
-0.002927297251810, 1.210310757993256, 39.56631316477566;
0.000290600259844, -9.348301989015293e-05, 1]
이제 동일한 프로세스를 사용하여 imagemagick를 사용하여 180도 (거꾸로) 회전 한 동일한 이미지 사이의 호모 그래피를 계산합니다 ( 실제로 90도 또는 270도 ...). 여기 있습니다:
과
이 이미지를 사용하면 호모 그래피가 다음과 같이됩니다.
B = [ 0.7148688519736168, 0.01978048500375845, 325.8330631554814;
-0.1706219498833541, 0.8666521745094313, 64.72944905752504;
-0.0002078857275647, -5.080048486810413e-05, 1]
이제 문제는 A와 B를 어떻게 연관 시키는가입니다. A의 두 개의 첫 번째 대각선 값은 B에서와 반대의 값에 가깝지만 매우 정확 하지는 않습니다 (0.71486885 대신 .707805537). 내 궁극적 인 목적은 값 비싼 이미지 회전을 계산하지 않고 원하는 관계를 사용하여 최종 행렬을 변환하는 것입니다.
Mat invT = 1./t; Mat n = invT.t() * (H - R);
(실제로) 의 법선을 얻었습니다n/d
. 이제 "회전을 적용"하면 3x1 벡터가 생성되지만 호모 그래피 행렬을 다시 계산하는 데 어떻게 사용할 수 있습니까? 감사합니다