OpenCV ile , bu iki görüntü arasındaki homografiyi hesaplıyorum:
ve
Sağ taraftaki garip beyaz form hakkında endişelenmeyin, bunun nedeni kullandığım akıllı telefon tutucusudur. FindHomography () işlevi ( Hızlı özellik dedektörü ve HammingLUT tanımlayıcı eşleştiricisi ile algılanan noktaları kullanarak ) tarafından verilen homografi :
A = [ 1.412817430564191, 0.0684947165270289, -517.7751355800591;
-0.002927297251810, 1.210310757993256, 39.56631316477566;
0.000290600259844, -9.348301989015293e-05, 1]
Şimdi, aynı işlemi, imagemagick kullanarak (aslında, 90 derece döndürme veya 270 derece ...). İşte buradalar:
ve
Bu görüntülerle homografi şöyle olur:
B = [ 0.7148688519736168, 0.01978048500375845, 325.8330631554814;
-0.1706219498833541, 0.8666521745094313, 64.72944905752504;
-0.0002078857275647, -5.080048486810413e-05, 1]
Şimdi soru, A ve B'yi nasıl ilişkilendiriyorsunuz? A'nın ilk iki diyagonal değeri, B'de aynı olanın tersine yakındır, ancak çok kesin değildir (0.71486885 yerine .707805537). Nihai amacım pahalı bir görüntü döndürme hesaplamaktan kaçınarak nihai matrisi dönüştürmek için istenen ilişkiyi kullanmaktı.
Mat invT = 1./t; Mat n = invT.t() * (H - R);
(aslında, bun/d
). Şimdi, "rotasyonu ona uygulamak" bana 3x1 vektör veriyor, ama homografi matrisini tekrar hesaplamak için nasıl kullanabilirim? Teşekkürler