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

Bereich aus Video-Frame ausschneiden und weiter verarbeiten

 

stevez
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 01.06.14
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 11.06.2014, 22:42     Titel: Bereich aus Video-Frame ausschneiden und weiter verarbeiten
  Antworten mit Zitat      
Hallo,

ich habe aus einem AVI-File mit Hilfe von
Code:
hVideoSrc = vision.VideoFileReader('lanetestvideo_autobahn.avi');
RGB = step(hVideoSrc);


Ein entsprechendes Frame mit den Parametern [480 640 3]. Dieses würde ich gerne nach der Spurerkennung (Polygonform) in ein Rechteck zuschneiden, in welchem der gesamte erkennte Spurbereich (Polygon) drinnen ist. Den Bereich außerhalb des Polygons würde ich gerne schwarz färben, damit die Objekterkennung danach nicht so viel zu arbeiten hat. Wie bekomme ich dies hin? Zur Verdeutlichung habe ich ein Bsp angehängt.

LG

ScreenShot001.jpg
 Beschreibung:

Download
 Dateiname:  ScreenShot001.jpg
 Dateigröße:  41.67 KB
 Heruntergeladen:  528 mal
Private Nachricht senden Benutzer-Profile anzeigen


Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 12.06.2014, 06:07     Titel:
  Antworten mit Zitat      
Moin,

dafür benötigst du die Befehle "ginput" (zum Ausschneiden des Rechtecks - Anzahl der Punkte festlegen) und poly2mask. Der Ausschnitt muss natürlich auf den Farbauszügen R,G und B erfolgen. Der Rest wird automatisch schwarz.

Viele Grüße - Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
stevez
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 01.06.14
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 12.06.2014, 08:16     Titel:
  Antworten mit Zitat      
Mit Poly2Mask habe ich die Maske jetzt schön hin bekommen (siehe Screenshot), danke! Nur verstehe ich noch nicht, wie ich die Maske entsprechend auf das Video anwende, sodass im weißen Bereich selbiges zu sehen ist... ginput ist doch für Cursor-Eingaben gedacht, oder irre ich mich?
LG

ScreenShot001.jpg
 Beschreibung:

Download
 Dateiname:  ScreenShot001.jpg
 Dateigröße:  31.54 KB
 Heruntergeladen:  551 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 12.06.2014, 08:21     Titel:
  Antworten mit Zitat      
Mit ginput musst du die Eckpunkte für deinen Ausschnitt anmessen und diesen Ausschnitt als Maske über die Farbauszüge legen. Dann mit "cat" wieder zusammenführen.
Private Nachricht senden Benutzer-Profile anzeigen
 
stevez
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 01.06.14
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 12.06.2014, 08:28     Titel:
  Antworten mit Zitat      
Die Sache ist laut Matlab muss dies mit ginput manuell erfolgen (Per Cursor) - aber ich habe die Punkte ja dynamisch bereits und ein 20 Minuten langes 15fps Video - ich verstehe da den Grund leider nicht...

Ich müsste lediglich die erstellte Maske über mein Bild legen, sodass nur der weiße Teil als Bild angezeigt wird (jedes einzelne Frame des Videos)
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 12.06.2014, 08:32     Titel:
  Antworten mit Zitat      
Dann lässt du ginput weg. Die Koordinaten für den Ausschnitt hast du ja bereits. Du musst du diesen nur noch über R,G,B laufen lassen.
Private Nachricht senden Benutzer-Profile anzeigen
 
stevez
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 01.06.14
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 12.06.2014, 17:19     Titel:
  Antworten mit Zitat      
Habe eine wunderschöne binäre Maske von dem Polygon. Nur würde ich diese jetzt gerne über das Video legen, um nur die Binär = 1 Pixel anzuzeigen. Dafür habe ich folgenden Code angewendet, nur leider färbt der mir den äußeren Bereich nicht schwarz oder grau, sondern einfach nur leicht bläulich (siehe Anhang: bei <=0 blau, bei >0 rötlich)... wie bekomme ich den komplett unifarben?

Code:
CarDetectImg(~CarDetectMask) = 0;


Wobei hierbei CarDetectImg ein Frame des Inputfilms ist (640x480 RGB) und die CarDetectMask logischerweise die Maske.

ScreenShot002.jpg
 Beschreibung:

Download
 Dateiname:  ScreenShot002.jpg
 Dateigröße:  46.41 KB
 Heruntergeladen:  547 mal
ScreenShot001.jpg
 Beschreibung:

Download
 Dateiname:  ScreenShot001.jpg
 Dateigröße:  52.18 KB
 Heruntergeladen:  538 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 13.06.2014, 06:27     Titel:
  Antworten mit Zitat      
Das sind Farbfehler, weil die Maske nicht auf allen Auszügen liegt. Ich mache das immer so (Ausschnitt):


Code:
...
R=I(:,:,1);
G=I(:,:,2);
B=I(:,:,3);
mask=poly2mask(x,y,size(I,1),size(I,2));
R(~mask)=0;
G(~mask)=0;
B(~mask)=0;
X=cat(3,R,G,B);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
stevez
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 01.06.14
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 13.06.2014, 08:41     Titel:
  Antworten mit Zitat      
Vielen Dank, läuft super! Nur müsste es nicht auch so gehen, die Maske 3dimensional zu machen, sodass sie beim overlay auf das Video gleich alle Farbräume abdeckt? Wäre rechentechnisch doch etwas einfacher, als das Video in drei Teile zu spalten und wieder zusammenzuführen, oder?

ScreenShot001.jpg
 Beschreibung:

Download
 Dateiname:  ScreenShot001.jpg
 Dateigröße:  40.21 KB
 Heruntergeladen:  503 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 13.06.2014, 08:48     Titel:
  Antworten mit Zitat      
Alle Farbbildbearbeitungen die ich kenne ( aber das muss nichts heißen ) laufen entweder über die einzelnen Farbauszüge, über for-Schleifen oder den Luminanzkanälen in anderen Farbräumen. Ein Farbbild besteht nun mal aus 3 S/W -Bilder und jede Berechnung muss auf diesen Bildern erfolgen. Das ist der Sachstand. Ob sich das mathematisch vereinfachen lässt, wäre sicherlich eine interessante Frage.
Private Nachricht senden Benutzer-Profile anzeigen
 
stevez
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 01.06.14
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 13.06.2014, 08:55     Titel:
  Antworten mit Zitat      
trotzdem vielen Dank! Läuft ja Smile
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.