www.mikrocontroller.net

Forum: PC-Programmierung Bildverarbeitung & Mustererkennung


Autor: Student (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen,

ich möchte die Inhalte von der Vorlesung Bildverarbeitung & 
Mustererkennung etwas vertiefen.
Dazu möchte ich in C bzw. C++ oder Matlab Beispiele durchführen für das 
bessere Verständnis. Kennt jemand im Netz ein gutes Skript (deutsch) mit 
Beispielen? Mir wäre es lieber, wenn ich die Beispiele in der 
Programmiersprache C oder C++ geschrieben sind.

Vielen Dank schonmal im voraus.

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OpenCV?!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Student schrieb:

> ich möchte die Inhalte von der Vorlesung Bildverarbeitung &
> Mustererkennung etwas vertiefen.
> Dazu möchte ich in C bzw. C++ oder Matlab Beispiele durchführen für das
> bessere Verständnis.

Das beste Verständnis bekommst du .... wenn du das selber programmierst 
und nicht von irgendjemand anders programmierte Beispiele laufen lässt. 
Das bringt so gut wie gar nichts.

Autor: Student (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es eine gute Literatur bzw. Skript?

Auf welcher Plattform Bzw. Tools sollte ich programmieren?

Autor: andz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guck mal die Projektarbeit an...is glaub ned schlecht...soll in der 
nächsten stufe in nen FPGA implementiert werden:

http://www.hs-augsburg.de/~kiefer/projekt-tracking...

andz

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Student schrieb:
> Gibt es eine gute Literatur bzw. Skript?

Ähm.
Ich denke du gehst in eine Vorlesung?
Library besorgen die dir den lästigen Teil "Einlesen eines Bildes in ein 
Array" abnimmt. In dem Momement, in dem du alles in einem 2D Array 
vorliegen hast, kannst du dich nach Herzenslust an dem Bild austoben.

Plattform:
Welche kannst du denn programmieren?
Die nimmst du.

Welche Programmiersprache kannst du?
Die nimmst du.

Autor: Student (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Programmiersprache: C und C++
Entwicklungsumgebung: Microsoft Visual Studio C++
Betriebssystem: Windows XP

Gibt es für den Einstieg ein paar Beispielprogramme in C bzw. C++?
Das Skript von unserem Prof ist echt nicht gut. Kennt jemand ein
gutes deutsches Skript?

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Student schrieb:
> Das Skript von unserem Prof ist echt nicht gut. Kennt jemand ein
> gutes deutsches Skript?
Gut gemeinter Tip: Freunde dich mit englischer Literatur an oder vergiss 
es.

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Google doch mal nach "Buch Mustererkennung Bildverarbeitung".

Für die Inhalte der Vorlesung solltest Du fit in Mathe sein. Die 
Programmiersprache ist nebensächlich.

Autor: grastino (gastino unterwegs) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:
> Library besorgen die dir den lästigen Teil "Einlesen eines Bildes in ein
> Array" abnimmt. In dem Momement, in dem du alles in einem 2D Array
> vorliegen hast, kannst du dich nach Herzenslust an dem Bild austoben.

Das schreit förmlich nach OpenCV.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
grastino (gastino unterwegs) schrieb:
> Karl heinz Buchegger schrieb:
>> Library besorgen die dir den lästigen Teil "Einlesen eines Bildes in ein
>> Array" abnimmt. In dem Momement, in dem du alles in einem 2D Array
>> vorliegen hast, kannst du dich nach Herzenslust an dem Bild austoben.
>
> Das schreit förmlich nach OpenCV.

Solange er seine Filter, Histogramme, Dither-Methoden und was sonst noch 
so alles in seiner Vorlesung vorkommt selber implementiert und nicht 
einfach nur fertige Funktionen aufruft, spricht nichts dagegen.

Im Grunde kann man aber auch die einfacheren Dinge in der 
Bilverarbeitung / Mustererkennung mit 'künstlichen Bildern' ganz einfach 
ohne viel Schnick/Schnack durchspielen

#define IMAGE_X 60
#define IMAGE_Y 60

unsigned char Image[IMAGE_X][IMAGE_Y];

void Rectangle( int x, int y, int w, int h, unsigned char color )
{
  int i, j;

  for( j = 0; j < h; ++j )
    for( i = 0; i < w; ++i )
      Image[i+x][j+y] = color;
}

void ClearImage( void )
{
  Rectangle( 0, 0, IMAGE_X, IMAGE_Y, 0 );
}

void Display()
{
  int i, j;
  static char Codes[] = { ' ', '.', '2', '3', '4', '5', '6', '7', '8', '9', 'X' };

  printf( "\n" );

  for( j = 0; j < IMAGE_Y; ++j ) {
    for( i = 0; i < IMAGE_X; ++i ) {
      printf( "%c", Codes[ Image[i][j] ] );
    }
    printf( "\n" );
  }
}
   
int main()
{

  ClearImage();
  Rectangle( 5, 6, 50, 20, 3 );

  Display();
}

fertig ist ein Testsystem, das seine Bilder als ASCII Bilder durch 
unterschiedliche Buchstaben anzeigt, wenn auch nur in 10 'Graustufen'. 
Wenn man die Augen ein wenig zusammenkneift, kann man sich das Rechteck 
schon ganz gut vorstellen.

Klar ist das nicht optimal.
Aber um Histogramme zu erzeugen, Dithering zu betreiben, erste Filter 
anzuwenden reicht das allemal (und mit besseren Grauwertbuchstaben wird 
dann auch das 'Bild' ein wenig realistischer)

Der Schwerpunkt soll ja auf Bildverarbeitung liegen und nicht auf dem 
ganzen Drumherum, der notwendig ist um ein JPG von einem File einzulesen 
und in Windows in einem Fenster anzuzeigen. Konzentration auf das 
Wesentliche! Das geht zumindest für die ersten Schritte mit so etwas 
genausogut (und hat den Vorteil, dass man besser Debuggen kann, da die 
Bilder nicht so gross sind :-)

Autor: Student (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Weg würdet ihr mir nun raten?
OpenCV verwenden ? ja oder nein
Welches Bildformat würdet ihr benutzen? Bitmap?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sonderlich selbstständig bist du aber nicht gerade.

Autor: JojoS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
suche er mal nach 'Bildverarbeitung ad Oculus'. Das ist ein Lehrbuch und 
Software gibt es auch dazu. Da sind die Grundlagen ganz gut erklärt, das 
ist schon das Mindeste was man sich antun sollte um da einzusteigen. 
OpenCV ist auch gut, aber was nutzen die ganzen Fachbegriffe da wenn man 
keinen Plan hat.

Autor: grastino (gastino unterwegs) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:
> Solange er seine Filter, Histogramme, Dither-Methoden und was sonst noch
> so alles in seiner Vorlesung vorkommt selber implementiert und nicht
> einfach nur fertige Funktionen aufruft, spricht nichts dagegen.

Die fertigen Funktionen kann er immerhin zur Kontrolle verwenden, das 
war eigentlich einer meiner Hintergedanken.
Ansonsten bietet OpenCV ja den ganzen I/O-Kram an, weswegen ich es auch 
sehr passend finde.

Autor: dito (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für Bildverarbeitung benutze ich am allerliebsten Matlab! Da kann man 
sich am Besten auf den Algorithmus konzentrieren. Für Studenten ist eine 
Lizenz recht günstig zu erwerben.

Autor: dito (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Octave ist übrigens eine Open Source-Alternative zu Matlab. Für kleinere 
Spielereien reicht das erstmal.

Autor: Student (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matlab hab ich auch schonmal dafür verwendet. In Microsoft Visual Studio 
C++ habe ich mal nur ein Bitmap (2D). Nun könnte ich ja ein Histogramme 
erzeugen oder ein Filter anwenden.

Autor: moe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Google hülf!
http://www.google.com/search?q=bildverarbeitung+sk...

Einige Buchtipps:
 - "Digitale Bildverarbeitung" von Wilhem Burger und Mark James Burge
 - "Digital Image Processing" von Gonzalez und Woods
 - "Digitale Bildverarbeitung" von Bernd Jähne

Ihr habt doch bestimmt eine Uni-Bibliothek? Dort wirst du mit Sicherheit 
einige gute Bücher finden. Kommilitonen höherer Semester helfen dir 
gerne beim Aussuchen (und haben häufig Skripte vom Vorgänger).

Ansonsten: Einen begabten Kommilitonen schnappen, zum Prof/Labor-Ass 
deines Vertrauens gehen, Labor aufschließen lassen und loslegen.

Autor: Herr H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sonst noch jemand links zu guten Büchern?

Autor: cq (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jähne und Gonzales reichen.
Dazu noch ein,zwei Bücher über OpenCV (äh, OpenCV2), wenn es C sein 
muss, (die Sprache ist eigentlich egal) und dann ab ans proggen.

Bildverarbeitung ist nicht was, was man sonderlich gut aus Büchern 
lernt, sondern in der Praxis: Nämlich, wenn der Bildgebungsspezialist 
besch.. Bilder liefert, die Lichtbedingungen doch nicht so homogen sind, 
und man 2.3sec zum Untersuchen von mehreren 100Mbyte hat.

Dann hilft viel Rumprobieren, viel Erfahrung, eine gute Sammlung an 
Code-Schnipseln und die gelegentliche Diskussion mit (guten) 
Mathematikern und Leuten, die was von Optik verstehen. Und eine 
vernünftige Library, mit der man schnell mal Dinge testen kann, also 
etwas in Richtung Matlab, IMAQ, Halcon,.. Ob man die dann in der 
Produktion auch nimmt, ist eine andere Frage, aber zum Experimentieren, 
bitte, gerne.

Der Thread ist 1 Jahr alt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.