Ich benutze den folgenden Code, um die Bilder einzufügen. Für ein Unbekanntes Grund für das Ergebnis ist Mist! Es scheint, dass die Homographiematrix falsch ist (oder falsch beeinflusst wird) weil das transformierte Bild wie ein "ausgebeuteter Stern" ist! Ich habe den Teil kommentiert, von dem ich vermute, dass er die Ursache des Problems ist aber ich kann es nicht erkennen. Jede Hilfe oder jeder Punkt wird geschätzt!
Schönen Tag noch, Ali
%Vor%Das ist, was ich Ihnen vorschlagen möchte, in dieser Reihenfolge:
1) Verwenden Sie die Option CV_RANSAC für die Homographie. Siehe Ссылка
2) Probieren Sie andere Deskriptoren aus, insbesondere SIFT oder SURF, die mit OpenCV ausgeliefert werden. Für einige Bilder sind SCHNELLE oder KURZE Deskriptoren nicht ausreichend diskriminierend. EDIT (Aug '12): Die ORB-Deskriptoren, die auf BRIEF basieren, sind ziemlich gut und schnell!
3) Versuchen Sie, sich die Homography-Matrix anzuschauen (im Debug-Modus durchzugehen oder sie auszudrucken) und prüfen Sie, ob sie konsistent ist.
4) Wenn dir oben kein Hinweis bekannt ist, sieh dir die Matches an, die gebildet werden. Passt ein Punkt in einem Bild zu einer Anzahl von Punkten im anderen Bild? Wenn ja, sollte das Problem wieder bei den Deskriptoren oder dem Detektor liegen.
Meine Vermutung ist, dass es die Deskriptoren (also 1) oder 2) sind, die es beheben).
Wechseln Sie auch in BruteForceMatcher zu Hamming Abstand statt L1 Abstand. KURZE Deskriptoren sollen mit Hamming-Abstand verglichen werden.
Ihre Homographie könnte aufgrund von falschen Übereinstimmungen berechnet werden und somit eine schlechte Zuordnung darstellen. Ich schlage vor, die Matrix durch zusätzliche Überprüfung der Interdependenz zwischen den Zeilen zu verschieben.
Sie können den folgenden Code verwenden:
%Vor%Tags und Links opencv image-processing image-stitching