ich hab zwar schon hier im Forum nach ein Lösung meines Problems gesucht aber nichts passendens gefundes.
Nun zu meinem Prob.
Ich habe zwei Bilder die in Größe und Auflösung eigentlich übereinstimmen müssten. Nun habe mit "edges" von jedem der beiden Bilder so ein "Kantenbild" erstellt. Nun würde ich gern die zwei Bilder miteinander vergleichen um zu sehen wie ähnlich sie sich sind. Gibt es da eine Methode in Matlab? Hab leider noch nicht so die Erfahrung mit dem Programm. Am ende soll eine grafische Auswertung mit Balken rauskommen wo da steht. Bild A gleicht Bild B zu 50% oder so in etwa.
Ich hoffe ihr könnt mir helfen.
da meine frage doch etwas schwieriger zu beantworten scheint, ändere ich die fragestellung ein wenig ab....
mir würde es schon reichen wenn es eine möglichkeit gäbe zwei bilder übereinader zu legen, diese zu vergleichen und eine art pixelmuster rausgekomme wo zu sehen ist in welchen punkten die bilder überein stimmen.
vom prinzip her so ähnlich wie bei diesem link wo nach "e" gesucht wird
Wenn du nun den Prozentsatz der Übereinstimmung wissen möchtest. Musst du nur noch das Maximum und das Minimum bestimmen. Minimum sollte bei Null liegen also = 100 % . Maximum ist schon etwas schwieriger könnte aber zum Beispiel die Größe der Matrix also M*N mal dem maximalen Wertebereich sein. Also zum Beispiel 1 bis 255 = 256. Wenn das für alle Werte gelten würde wären die Bilder zu 0 % ähnlich.
Natürlich ist das eine sehr einfache Method und wenn deine edges nur um ein paar Pixel verschoben sind, kann das schon zu einer sehr niedrigen Übereinstimmung führen. Deswegen gibt es noch andere Distanzberechnungsmethoden:
http://en.wikipedia.org/wiki/Distance
z.B. die Mahalanobis distance
Du könntest aber auch versuchen die Distanz mehrmals mit verschieden verschobenen Bildern zu berechnen und das beste Ergebnis benutzen.
Ich hoffe das gibt dir eine kleine Hilfe oder eröffnet die Diskussion etwas.
ich hab mich na einer kurzen Pause mal wieder mit diesem Thema befasst. Ich habe meinen Code auch etwas geändert bzw. die Bilder.
Ich wollte nun eine Kreuzkorrelation mit xcorr2 bzw. normxcorr2,durchführen um die zwei Bilder deckungsgleich zu machen aber Matlab bringt dann immer die Fehlermeldung:
??? Undefined command/function 'xcorr2'
bzw.
??? Attempt to reference field of non-structure array.
Error in ==> normxcorr2>ParseInputs at 226
error(eid,'%s',msgstruct.message);
Error in ==> normxcorr2 at 56
[T, A] = ParseInputs(varargin{:});
meine Frage wäre jetzt wie ich die Kreuzkorrelation durchführen muss damit die zwei Bilder wieder übereinander gelegt werden. xcorr2 geht bei mir nicht und normcorr2 bringt Fehlermeldung.
Ein weiteres Problem was dazu gekommen ist,das die Verschiebung der Bilder zueinander momentan noch per Hand eingestellt ist.
für die 0.3 würd ich gern die Werte vom Slider nehmen. Also wenn man den Slider bewegt soll sich das obere Bilder oben rechts dementsprechend verschieben. Gibt es da eine Möglichkeit das zu realisieren. In der Suche hab ich nicht wirklich was brauchbares gefunden oder vielleicht auch überlesen.Für Hinweise wäre ich sehr dankbar.
Im Anhang findet ihr ein Screenshot wie es momentan aussieht.
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.