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.
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.
Gibt es eine gute Literatur bzw. Skript? Auf welcher Plattform Bzw. Tools sollte ich programmieren?
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/index.html andz
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.
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?
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.
Google doch mal nach "Buch Mustererkennung Bildverarbeitung". Für die Inhalte der Vorlesung solltest Du fit in Mathe sein. Die Programmiersprache ist nebensächlich.
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.
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
1 | #define IMAGE_X 60
|
2 | #define IMAGE_Y 60
|
3 | |
4 | unsigned char Image[IMAGE_X][IMAGE_Y]; |
5 | |
6 | void Rectangle( int x, int y, int w, int h, unsigned char color ) |
7 | {
|
8 | int i, j; |
9 | |
10 | for( j = 0; j < h; ++j ) |
11 | for( i = 0; i < w; ++i ) |
12 | Image[i+x][j+y] = color; |
13 | }
|
14 | |
15 | void ClearImage( void ) |
16 | {
|
17 | Rectangle( 0, 0, IMAGE_X, IMAGE_Y, 0 ); |
18 | }
|
19 | |
20 | void Display() |
21 | {
|
22 | int i, j; |
23 | static char Codes[] = { ' ', '.', '2', '3', '4', '5', '6', '7', '8', '9', 'X' }; |
24 | |
25 | printf( "\n" ); |
26 | |
27 | for( j = 0; j < IMAGE_Y; ++j ) { |
28 | for( i = 0; i < IMAGE_X; ++i ) { |
29 | printf( "%c", Codes[ Image[i][j] ] ); |
30 | }
|
31 | printf( "\n" ); |
32 | }
|
33 | }
|
34 | |
35 | int main() |
36 | {
|
37 | |
38 | ClearImage(); |
39 | Rectangle( 5, 6, 50, 20, 3 ); |
40 | |
41 | Display(); |
42 | }
|
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 :-)
Welche Weg würdet ihr mir nun raten? OpenCV verwenden ? ja oder nein Welches Bildformat würdet ihr benutzen? Bitmap?
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.
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.
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.
Octave ist übrigens eine Open Source-Alternative zu Matlab. Für kleinere Spielereien reicht das erstmal.
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.
Google hülf! http://www.google.com/search?q=bildverarbeitung+skript+filetype%3Apdf 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.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.