Ich habe ein Bild, das zwei doppelte Bilder enthält. Ich schneide das Bild vertikal in zwei Hälften und benötige, dass die Bilder übereinstimmen, wenn sie Pixel für Pixel überlagert werden. Ich verwende cv2.findtransformECC in Python, um eine Warp-Matrix zu finden, um die obere Hälfte so zu transformieren, dass sie mit der unteren Hälfte übereinstimmt.
Es funktioniert gut mit Bildern, die eine kleinere Transformation erfordern, aber keine größeren. Ich dachte, ich könnte ihm vielleicht sagen, wo es anfangen soll, indem ich eine Transformation mit einer Rate-Warp-Matrix durchführe (so wie ich mit dem Auge sehen kann, dass die erste Hälfte um ein Vielfaches in die Y-Richtung nach unten verschoben werden muss). Und dann den ECC-Algorithmus verwenden Arbeite daran, es zu verfeinern. Das hat großartig funktioniert.
Am Ende nehme ich diese Warp-Matrix und wende sie auf andere Bilder an. Daher hätte ich gerne eine letzte Warp-Matrix, die weitergegeben werden kann. Ich habe in anderen Antworten gelesen, dass ich zum Kombinieren zweier Warp-Transformationen jeweils die dritte Zeile der Identitätsmatrix hinzufügen und dann eine Matrixmultiplikation durchführen muss. Ich habe dies getan (für alle Fälle AB und BA multipliziert), aber es scheint nicht zu funktionieren. Das heißt, die endgültige Matrix liefert nicht das gleiche Ergebnis wie die Anwendung der beiden Warp-Matrizen nacheinander.
Dies ist der Code, den ich verwende:
Ich habe ein Bild, das zwei doppelte Bilder enthält. Ich schneide das Bild vertikal in zwei Hälften und benötige, dass die Bilder übereinstimmen, wenn sie Pixel für Pixel überlagert werden. Ich verwende cv2.findtransformECC in Python, um eine Warp-Matrix zu finden, um die obere Hälfte so zu transformieren, dass sie mit der unteren Hälfte übereinstimmt. Es funktioniert gut mit Bildern, die eine kleinere Transformation erfordern, aber keine größeren. Ich dachte, ich könnte ihm vielleicht sagen, wo es anfangen soll, indem ich eine Transformation mit einer Rate-Warp-Matrix durchführe (so wie ich mit dem Auge sehen kann, dass die erste Hälfte um ein Vielfaches in die Y-Richtung nach unten verschoben werden muss). Und dann den ECC-Algorithmus verwenden Arbeite daran, es zu verfeinern. Das hat großartig funktioniert. Am Ende nehme ich diese Warp-Matrix und wende sie auf andere Bilder an. Daher hätte ich gerne eine letzte Warp-Matrix, die weitergegeben werden kann. Ich habe in anderen Antworten gelesen, dass ich zum Kombinieren zweier Warp-Transformationen jeweils die dritte Zeile der Identitätsmatrix hinzufügen und dann eine Matrixmultiplikation durchführen muss. Ich habe dies getan (für alle Fälle AB und BA multipliziert), aber es scheint nicht zu funktionieren. Das heißt, die endgültige Matrix liefert nicht das gleiche Ergebnis wie die Anwendung der beiden Warp-Matrizen nacheinander. Dies ist der Code, den ich verwende: [code]import imageio.v2 as imageio import numpy as np from matplotlib import pyplot as plt from scipy import ndimage import cv2 from PIL import Image
Ich habe zwei Funktionen (i) getKglobal und (ii) getKglobal_Sp. Allerdings ist die Zeit für die Sparse-Funktion etwa fünfmal langsamer als für die Fullmatrix-Formulierung. Ich verstehe, dass es...
Ich versuche, einen Datensatz mit der Java-GDAL-API zu verzerren.
Die GDAL-Java-API ist jedoch nicht dokumentiert und es ist unklar, welche Optionen WarpOptions akzeptiert.
Ich füttere -tr 15 15...