Görüntü sabitlemeyi bir dizi görüntü üzerinde gerçekleştirmeye çalışıyorum. Her bir görüntüdeki köşe noktalarının eşleşme çiftlerini tanımladım ve her eşleşen çift çifti için (kaynak-hedef) afin transformasyon matrisini hesaplamaya çalışıyorum. Bununla birlikte, en azından kareler yöntemini kullanarak, sonuçta elde edilen dönüştürme matrisi, sabitlenmemiş görüntüler üretir. Bu işlem aşağıdaki am:Afin Dönüşüm Matrisi
source_points = [[219, 187], [221, 387], [347, 31], [135, 311], [296, 615], [86, 417]]
dst_points = [[221, 187], [222, 387], [348, 30], [137, 310], [299, 615], [88, 417]]
transform_mat, res, rank, s = np.linalg.lstsq(source_points, dst_points)
#looping through all dst_coordinates in a blank array of size = source image
transformed_coor = np.dot(transform_mat,dst_coordinate)
boş dizi koordinatları döngü sonra kaynak görüntü transformed_coor arasında interpole değeri kapmak ve boş dizide dst_coordinate de bu değeri yerleştirin. Süreç tamamlandığında, dönüştürülmüş bir görüntü elde ediyorum ancak kaynak görüntüyle karşılaştırdığımda sabitlenmiyor.
Bu işlem doğru mu? Bir adımı kaçırıyor muyum?
arasındaki mesafeler göz önünde bulundurulduğunda nispeten büyüktür, doğru cevabın ne olduğunu nereden biliyorsunuz? Giriş ve istenen çıktıya bir örnek verebilir misiniz? – unutbu
Şu andan itibaren, üretilen "stabilize" görüntüyü orijinale karşı görsel olarak inceliyorum. Başka bir seçenek, kaynak ile stabilize arasındaki fark ve% hata belirleme (bu,% hatası için bir eşik olmadığım için yararlı olmayabilir) – user2155400
Dönüşüm hatasının nedir? Ne kadar iyi haritalar transform_mat iki set source_points ve dst_points? transform_mat * [219, 187], [221,187] gibi bir şey vermelidir. – eidelen