1

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?

+0

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

+0

Ş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

+0

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

cevap

0

Bence yazışmalarınız source_points ve dst_points iyi uyuşmuyor. bu girdi yapmak için 6 noktalı yazışmalar

errors = [0.7592 1.0220 0.2189 0.6964 0.4003 0.1763] 

bireysel dönüşüm hataları (Öklit mesafesi) yol açar benzeşik transformasyon matrisi

T = [0.9997 -0.0026 -0.9193 
    0.0002 0.9985 0.7816 
      0   0 1.0000] 

hesaplanır. Bunlar, özellikle source_points ve

move_dist = [2.0000 1.0000 1.4142 2.2361 3.0000 2.0000]