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

Geometrische Formen aus Bild (Jpg) erkennen???

 

xmatthias
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 07.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.05.2008, 16:21     Titel: Geometrische Formen aus Bild (Jpg) erkennen???
  Antworten mit Zitat      
geometrische Formen (Kreis, Quadrat, Dreieck) aus Bild (Jpg) erkennen.

Hallo, ich bin in MATLAB eher schlecht und habe desshalb eine Frage bzgl. Bilderkennung. Und zwar soll ich mittels MATLAB ein Bild einlesen (was ja nicht das Problem ist) und anschließend irgendwie feststellen ob auf dem Bild ein Kreis, ein Quadrat oder eine Dreieck zu sehen ist. Die Größe, Farbe usw. sind völlig egal, lediglich die Form soll erkannt werden und anschleißend soll die Ausgabe nur lauten Dreieck, Quadrat ...

Also für eine Profi sicher nur ein klaks, aber für mich eine Lebensaufgabe Sad

Ich bitte um Hilfe, alles was ich bisher von Code habe ist:

% Bild einlesen
image1 = imread('155807.jpg');
imshow(image1);
Private Nachricht senden Benutzer-Profile anzeigen


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 07.05.2008, 16:25     Titel:
  Antworten mit Zitat      
Moin Mathias,

kannst du mal ein Beispielbild posten? Denn davon hängen meines Erachtens verschiedene Möglichkeiten ab...

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
xmatthias
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 07.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.05.2008, 16:28     Titel:
  Antworten mit Zitat      
Hy, klar kann ich dir eines posten, wir sollten das bild zuerst mit einer webcam knipsen , danach mit matlab eben die abgebildete form feststellen.

zb. einen Kreis bzw. Kugel

Vielen Dank

155807.jpg
 Beschreibung:

Download
 Dateiname:  155807.jpg
 Dateigröße:  17.02 KB
 Heruntergeladen:  3472 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 07.05.2008, 17:16     Titel:
  Antworten mit Zitat      
Das was Du für ein Klacks hälst ist überhaupt nicht selbstverständlich. Jeder Form setzt spezielle Erkennungsalgorithmen und zig Randbedingungen voraus.

Ich habe an der Verkehrszeichenerkennung gearbeitet und weiss welcher Aufwand dahinter steckt um ein Kreis in einem Bild zu finden (geschweige von verschiedenen Größen, Farben, Inhalt).

Google mal nach dem Begriff "Hough Transformation", "Kantendetektion"
dieses Beispiel zeigt wie man mit MATLAB einen Kreis erkennt.
Detecting Edges Using the edge Function
http://www.mathworks.com/access/hel...../f11-11942.html#f11-12512

MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
xmatthias
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 07.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.05.2008, 17:42     Titel:
  Antworten mit Zitat      
Hy, ich glaube dir das die erkennung von verkehrszeichen aufwendig ist, aber in unserem projekt sollen lediglich die 3 formen KREIS, QUADRAT und DREIECK unterscheiden werden, Farbe, Größe und der gleichen sind absolut irrelevant.

Ich füttere das Programm mit bildern mit einem der drei formen und das programm sollte mir lediglich sagen um welche form es sich handelt.

Danke.
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 07.05.2008, 18:27     Titel:
  Antworten mit Zitat      
Ich habe diese Funktion im FileExchange gefunden: http://www.mathworks.com/matlabcent.....15491&objectType=file

Diese könnte schonmal als Ansatz dienen. Allerdings stellen die Schatten auf deinem Bild das gravierneste Problem dar. Dadurch erkennt Matlab nicht automatisch die Form deines Objektes.

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 07.05.2008, 18:28     Titel:
  Antworten mit Zitat      
Ich würde folgende Seiten empfehlen, wo anhand Matlab beispielhaft die Erkennung von Objekten präsentiert wird

http://blogs.mathworks.com/steve/

Detektion von Runden Objekten:
http://basic-eng.blogspot.com/2005/.....-shapei-round-object.html

Detektion von Quadraten:
http://basic-eng.blogspot.com/2005/.....jects-shapeii-square.html

Detektion von Dreiecken:
http://basic-eng.blogspot.com/2005/.....ts-shapeiii-triangle.html
Private Nachricht senden Benutzer-Profile anzeigen
 
xmatthias
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 07.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.05.2008, 08:18     Titel:
  Antworten mit Zitat      
hy, das mit dem schatten kann man vernachlässigen, wir können die fotos beliebig erstellen und somit auch gegebenenfalls beleuchten lassen.

also kann der schatten vernachlässigt werden.

Danke für eure bemühungen.

Ich habe nur keine ahnung wie der code für mein programm aussehen soll bzw. wie ich das realisieren kann Sad

mehr als das einlesen des bildes hab ich noch nicht.
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 08.05.2008, 08:53     Titel:
  Antworten mit Zitat      
Wenn du nur die Form erkennen möchtest, dann würde ich an deiner Stelle,
zuerst das Bild nur in Zwei-Farben raum konvertieren.
Anders gesagt in ein binäres Bild.

Hast du bei dir unter Matlab Image Processing Toolbox?
Dann sehe ich doch kein Problem. Einfach weiter nach oben angegebenen Quellen verfahren.
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 08.05.2008, 09:33     Titel:
  Antworten mit Zitat      
Wenn die Ausleuchtung des Bildes kein Problem darstellt, dann sollten dir die Befehle
Code:
B = rgb2gray(A);
thresh = graythresh(B);
C = im2bw(B,thresh);
D = imfill(C,'holes');
stats = regionprops(D,'BoundaryBox','Extent');
if abs((stats.BoundaryBox(3)-stats.BoundaryBox(4)) < .1 && stats.Extent==1
   display('Quadrat');
elseif abs((stats.BoundaryBox(3)-stats.BoundaryBox(4)) < .1 && (.7<stats.Extent & stats.Extent<1)
   display('Kreis');
else
   display('Dreieck');
end
 


Ich denke das sollte funktionieren. Allerdings ausschließlich bei gutem Hintergrund und auch nur für die Formen Dreieck, Quadrat und Kreis.

Gruß
Alex

/edit: Ist im Endeffekt das, was denny vorgeschlagen hat...
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
xmatthias
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 07.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.05.2008, 09:39     Titel:
  Antworten mit Zitat      
vielen dank steve, ich werde den code mal probieren. Macht es bei deinem code was aus wenn ich bei meiner matlab version die image toolbox nicht zur verfügung habe, oder sollte dein code auch ohne der funktionieren?

Vielen dank für den code, bzw. die schnelle und nette hilfe. Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 08.05.2008, 10:06     Titel:
  Antworten mit Zitat      
Hmmm... ohne die Image Processing Toolbox wird dir Matlab wohl sagen, dass es einige Befehle nicht kennt...

Allerdings wird es dann eh schwierig, eine Bilderkennung zu programmieren, denke ich.
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
xmatthias
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 07.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.05.2008, 10:09     Titel:
  Antworten mit Zitat      
also wird da ohne toolbox nicht viel zu machen sein, oder wie??
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 08.05.2008, 10:20     Titel:
  Antworten mit Zitat      
Ich denke nicht... Sad
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
xmatthias
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 07.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.05.2008, 10:34     Titel:
  Antworten mit Zitat      
also wenn sowas ohne toolbox echt nicht zu schaffen ist, wie komm ich dann an die toolbox?

danke
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2, 3  Weiter

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.