Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Stochastische Signale: Übungen und einem MATLAB-Praktikum

Studierende:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Echtzeitfähiger Code unter Simulink für Objekterkennung

 

alex1991
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 15.11.16
Wohnort: ---
Version: Matlab R2015b
     Beitrag Verfasst am: 30.04.2018, 11:47     Titel: Echtzeitfähiger Code unter Simulink für Objekterkennung
  Antworten mit Zitat      
Hallo,

ich habe folgendes Problem: Ich soll in einem Ball-Platte-System die Kamera auslesen und damit einen Ball finden. Eigentlich dachte ich mir, dass das recht simpel sein müsste. Ich habe mir in Simulink einen Matlab-Block eingefügt (ich hatte es danach auch graphisch versucht, mit noch verheerenderem Ergebniss) und dann festgestellt, dass mein Code anscheinend viel zu langsam läuft. Dadurch passiert bei der Regelung nichts (oder nahezu nichts). Mein Code läuft folgendermaßen ab:
- Aufteilen der Matrix in 3 Matritzen für r,g,b aus dem Kamerabild
- Abziehen der Mischanteile (r-g/2-b/2) => Das Objekt ist rot, habe noch vier grüne Objekte (Kalibrierpunkte), mit denen ich das gleiche mache (bis inkl. Find in einem Schritt)
- Thresholding des Grauwert-Bildes (nach abziehen der Mischanteile)
- Finden der Pixelpositionen (dafür nehme ich find -> das scheint recht langsam zu sein)
- Berechnen der Homographie (Nutze die Funktion fitgeotrans) -> Die Platte ist ja geneigt. Diese Neigung und eine Rotation der Kamera gegenüber der Platte muss herausgerechnet werden.
- Berechnen der Ballposition (Nutze die Funktion transformPointsForward)

Interessanter Weise brauchen die ersten drei Punkte die meiste Zeit (und nicht, wie ich dachte, die letzten beiden Punkte).

Nun meine Fragen:
- Wieso dauert die Berechnung der Mischanteile, das Thresholding und das find so lange?
- Kann ich das find ersetzen (ich habe danach gesucht, aber logisches Indexing dürfte mir nicht viel bringen, weil ich ja die Positionen brauche und nicht irgendwas im Feld verändern möchte)?
Private Nachricht senden Benutzer-Profile anzeigen


Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2021 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.