|
|
Echtzeitfähiger Code unter Simulink für Objekterkennung |
|
alex1991 |
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 15.11.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: Matlab R2015b
|
|
|
|
|
|
Verfasst am: 30.04.2018, 10:47
Titel: Echtzeitfähiger Code unter Simulink für Objekterkennung
|
|
|
|
|
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)?
|
|
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
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.
|
|