WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Mittelpunkt eines Objektes markieren

 

eddie-guerrero
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 05.02.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.02.2014, 11:55     Titel: Mittelpunkt eines Objektes markieren
  Antworten mit Zitat      
Ich habe im Moment folgendes Problem.

Ich habe eine Bildserie mit circa 600 Bildern auf denen Objekte erkannt werden sollen. Heißt Objekte werden weiß dargestellt, der Rest ist schwarz. Da er allerdings manchmal mehr Objekte erkennt als gewollt, wollte ich nun das Programm erweitern und mir durch irgendeine Art Markierung die erkannten Objekte anzeigen lassen.
Dies wollte ich realisieren in dem ich die Schwerpunktkoordinate des erkannten Objektes schwarz färbe:

Code:

laenge=length(praeCollision(:,6)); %liest Anzahl der Bilder
schwerpunkt(:,1) = uint8(praeCollision(:,6)); %liest Koordinaten des Schwerpunktes des erkannten Objektes
schwerpunkt(:,2) = uint8(praeCollision(:,7));

for i=1:laenge
    if schwerpunkt(i:1) ~= 0 | praeCollision(i:1) ~= '' %Falls Objekterkennung gescheitert ist soll er das nicht machen
     I_roi_mod2(schwerpunkt(i:1),schwerpunkt(i:2),i)=0;
end
%Video danach anzeigen
implay(I_roi_mod2(:,:,:))
 


Nun ist allerdings das Problem, dass man diesen einen geschwärzten Pixel nicht sieht. Wenn das denn überhaupt so geht.
Wollte also mit einer weiteren Schleife weitere Pixel schwärzen:

Code:

for i=1:laenge
    if schwerpunkt(i:1) ~= 0 | praeCollision(i:1) ~= '' %Falls Objekterkennung gescheitert ist soll er das nicht machen
while d<10
     I_roi_mod2((schwerpunkt(i:1)-5+d):,schwerpunkt(i:2),i)=0;
end
end
 


Wollte also einen strich an schwarzen pixeln erzeugen. aber auch ist dann nichts sichtbar. Mache ich etwas falsch? Wenn ja was? Und kann ich vielleicht so wie man bei figure mit text(koordinate,koordinate) sprintf ('x')
arbeiten kann das auch bei implay machen?

Also mein Wunsch ist, dass ich von den Schwarz-weiß bildern in denen außer die erkannten objekte alles schwarz ist, ein video sehen kann, in dem die Schwerpunktkoordinatenirgendwie angezeigt werden.
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 07.02.2014, 00:15     Titel: Re: Mittelpunkt eines Objektes markieren
  Antworten mit Zitat      
Hallo eddie-guerrero,

Ein paar Kommentare zum Code:
Code:
laenge = size(praeCollision, 1); % Viel besser als LENGTH(x(:, 1))
schwerpunkt = uint8(praeCollision(:, 6:7));  % Einfacher als zwei Spaltenvektoren

for i=1:laenge
    if schwerpunkt(i:1) ~= 0 | praeCollision(i:1) ~= ''
 

Hier gibt es nun einige Probleme:
1. schwerpunkt(i:1) ist nur für i==1 ein Skalar, ansonsten aber die leer Matrix, denn z.B. 2:1 kein Element enthält.
2. schwerpunkt ist 2-Dimensional. Du gibst mit "i:1" aber nur einen Index an. Das ist zwar syntaktisch korrekt, aber eventuell nicht gewollt.
3. Der Vergleich einer leeren Matrix mit ~= 0 ist wieder leer.
4. Für preCollision(i:1) gilt das gleiche wie für 1.
5. Du vergleichst die Elemente von preCollision mit dem leeren String '' ? Welchen Type hat denn preCollision? Elemente können niemals leer sein, insofern ist der Vergleich mit dem leeren String nicht sinnvoll.

Nun ist allerdings das Problem, dass man diesen einen geschwärzten Pixel nicht sieht. Wenn das denn überhaupt so geht.
Wollte also mit einer weiteren Schleife weitere Pixel schwärzen:

Code:
while d<10
     I_roi_mod2((schwerpunkt(i:1)-5+d):,schwerpunkt(i:2),i)=0;
end

"d" ändert sich in dieser Schleife gar nicht. Dann ist "while d < 10" sinnfrei.

Gruß, Jan
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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 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.