Das "Verfahren" ist mir bekannt, zumindest die Theorie dahinter. Aber ich fürchte mir fehlt dazu als Matlab Anfänger die nötige Programmiererfahrung um es umzusetzen, zumindest in Bezug auf die mir noch verbleibende Zeit für das Projekt.
da du lediglich das bild wiedererkennen moechtest und nix spezielles auswerten ist es relativ einfach nachdem du das image eingelesen hast und mit einem festen wert binaerisiert die funktion "regionprobs" zu benutzen. sagen wir zum beispiel so:
du erhaelst ein schwarzweissbild wo nur grosse helle flaechen mit einer bestimmten groesse gezaehlt werden. und die nun jeweils zu vergleichen ist eine kleinigkeit! es geht natuerlich auch deutlich komplexer dazu haette ich auch vorschlaege aber ich wuerde es erstmal damit probieren!
das funktioniert allerdings nicht mit wechselnden perspektiven aber fuer unsere laborarbeiten hier ist es super
die Funktion "regionprobs" kenne ich, weiß aber gerade nicht wie sie mir weiterhilft.
Mein Ziel ist es ja anhand gefundener Templates ein Gebäude zu erkennen. Bsp: ich habe zu Gebäude A vorher aus einem Original Bild drei Templates erstelllt und finde mindestens ein Template in einem neuen Bild(andere Perspektive) wieder.
Wie verknüpfe ich nun das Ergebnis mit dem Gebäude, so dass ich als Ausgabe : Sie befinden sich vor Gebäude A ...bekomme.
Ich stelle mir das so in der Art vor:
Ich ordne vorher Gebäude A 3 templates zu, nun wird eins gefunden, da dieses template vorher zu Gebäude A zugeordnet wurde und sich laut Zuordnung nicht in Gebäude B oder C befindet, bekomme ich Gebäude A angezeigt. Aber mir fehlt der Ansatz wie man solche "Klassen" programmiert und abfragt.
Dein Beispiel bezieht sich doch auf den Vergleich zweier identischer Bilder oder habe ich da jetzt was falsch verstanden?
Naja mit den templates habe ich selber noch nicht gearbeitet und ich stelle mir es auch deutlich schwieriger vor durch die perspektivische verzerrung. ich arbeite die meiste zeit in laboren und habe bei allen aufnahmen immer gleiche perspektive (draufsicht). hier ist es also sehr einfach fuer mich: ich erstelle ein binaer bild mit einem festen treshold. daraus filter ich alle hellen punkte die zu klein sind (noisefilter) und anschliessend nutze ich regionprobs um das bild zu analysieren...und nun kommt es drauf an was man sucht...
der einfachste anwendungsfall um ein bild wieder zu finden waere in diesem fall flaechen zu suchen ab einer bestimmten mindestgröße und diese mit denen von anderen bildern vergleichen...funktioniert bei uns sehr gut.
ich habe auch schon mit formerkennung gearbeitet...dazu wurden aehnlichkeiten verglichen sprich z.B. umfang im verhaeltnis zu volumen der objekte.
Bei dir stellt sich ja erstmal die erste frage liegen die bilder alle schon vor und sind fix oder soll er fotos wo sich lichtverhaeltnisse aendern und perspektiven auch erkannt werden...indem fall musst du ja eigentlich schon mit kantenfilter arbeiten weil variierende helligkeiten zu komplett anderen binaerbildern fuehren koennen
nehmen wir mal an jedes deiner bilder hat ein markantes element oder eine form. dann koenntest zum beispiel wie oben genannt umfang in relation zum volumen setzen oder andere typische pruefmerkmale nutzen und findest so jederzeit zum beispiel unterschiedliche geometrische koerper in bildern
Bei dem Projekt geht es um Gebäudeerkennung, das heißt es gibt unterschiedliche Perspektiven und Lichtverhältnisse. Natürlich habe ich für das Projekt die Perspektiven eingeschränkt und die Lichtverhältnisse weitesgehend gleichbleibend gewählt.
Das finden der Templates funktioniert ja auch, auf meine Sets bezogen auch okay. Fürs erste also für mich und das Projekt ausreichend. Möglicherweise wäre eine ander Methode vll besser geeignet gewesen, das mag gut sein.
Meine Frage bezog sich aber eher auf das wie komme ich jetzt mit meinem Ansatz zum Ende, Abgabe rückt nämlich näher
die zahlen aus dem raetseln werden auch mit templates erkannt vll kannst du dir daraus einiges klauen. es klappt hier ja auch mit verzerrung! check es einfach mal aus
% Step 3: Threshold the image Convert the image to black and white in order % to prepare for boundary tracing using bwboundaries.
threshold = graythresh(GRAY);
BW = im2bw(GRAY, threshold);
figure,
imshow(BW),
title('Binary Image');
% Step 5: Find the boundaries Concentrate only on the exterior boundaries. % Option 'noholes' will accelerate the processing by preventing % bwboundaries from searching for inner contours. [B,L] = bwboundaries(BW, 'noholes');
% Step 6: Determine objects properties
STATS = regionprops(L, 'all'); % we need 'BoundingBox' and 'Extent'
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.