OpenCV - Open Source Computer Vision
|
|
- Paulina Acker
- vor 8 Jahren
- Abrufe
Transkript
1 OpenCV - Open Source Computer Vision Niklas Beuter und Christian Lang 6. Mai 2009 OpenCV - Open Source Computer Vision 1
2 Übersicht Vorteile von OpenCV 1 Vorteile von OpenCV 2 Aufbau 3 OpenCV einbinden Unterschiede Icewing OpenCV 4 Datenstrukturen Arbeiten mit Bildern Literatur und Dokumentation OpenCV - Open Source Computer Vision 2
3 OpenCV - Open Source Computer Vision 3 Vorteile von OpenCV OpenCV: entwickelt von Intel seit 1999 geschrieben in C/C++, optimiert für Echtzeitanwendungen unabhängig von Betriebssystem, Hardware und Windowmanager Optimierung durch Verwendung von Intel IPP möglich mehr als 500 Funktionen für Foto- und Videoverarbeitung, Laden und Speichern Weit verbreitet in Forschungseinrichtungen und Unternehmen Aktuelle offiziele Version: 1.0 (2006) neueste (Entwickler-) Version über Sourceforge verfügbar
4 OpenCV - Open Source Computer Vision 4 Warum OpenCV? Vorteile von OpenCV Geschwindigkeit / Echtzeitfähigkeit sehr schnelle Implementierungen dafür teilweise schwer verständlicher Source Code für Verwendung aber i.d.r. Anschauen des Source Codes nicht nötig große Anzahl von Standardalgorithmen verfügbar frei verfügbar (Open Source) Leichte Anbindung an IceWing möglich
5 OpenCV - Open Source Computer Vision 5 Module von OpenCV Aufbau
6 Aufbau Vision ( cv ): Grundlegende Bildverarbeitung (Filter, geometrische Transformationen, Farbraumumwandlungen) Bildanalyse (Featureauswahl, Morphologische Operationen, Konturverfolgung, Histogramme) Strukturelle Analyse (Formfaktoren, Planare Unterteilungen / Segmentierung) Bewegungsanalyse und Objektverfolgung Objekt-/Gesichtserkennung Kamerakalibrierung und Teile von 3D Rekonstruktion OpenCV - Open Source Computer Vision 6
7 Aufbau Kernfunktionalität ( cxcore ): Einfache Operationen auf Arrays Matrixoperationen, mathematische Funktionen DFT XML Zeichenfunktionen (2D Graphik) Komplexe Datenstrukturen: spärliche Matrizen, Wachsende Sequenzen, Graphen cxcore teilweise auch von der Intel Open Source Probabilistic Network Library benutzt OpenCV - Open Source Computer Vision 7
8 Aufbau IO/GUI ( highgui ) Aufnahme und Wiedergabe von Bildern und Videos Einfache (!) GUI mit Nutzerinteraktionen alle OpenCV e mit GUI benutzen HighGUI OpenCV - Open Source Computer Vision 8
9 Aufbau Experimentelle Funktionen ( cvaux ): 3D Vision: Stereo Kalibrierung,... Stereo Korrespondierung, Graphenverbindungen Gesichtsdetailerkennung und -tracking Shape matching, skeletons... HMMs Texturen OpenCV - Open Source Computer Vision 9
10 e Aufbau OpenCV - Open Source Computer Vision 10
11 OpenCV - Open Source Computer Vision 11 Aufbau Ein einfaches Programmbeispiel sample1.cpp #include <cv.h> #include <highgui.h> int main (int argc, char** argv) { IplImage* image; if (argc!= 2 ) return -1; image = cvloadimage(argv[1]); if (!image) return -1; cvnamedwindow("sample",1); cvshowimage("sample",image); cvwaitkey(); cvreleaseimage(&image); cvdestroywindow("sample"); return 0; }
12 OpenCV - Open Source Computer Vision 12 Aufbau Ein einfaches Programmbeispiel sample2.cpp #include <cv.h> #include <highgui.h> IplImage* image = 0; void cb_slider (int thresh) { IplImage* gray = cvcreateimage(cvgetsize(image),ipl_depth_8u,1); cvcvtcolor(image,gray,cv_bgr2gray); cvthreshold(gray,gray,thresh,255,cv_thresh_binary); CvSeq* contours = 0; CvMemStorage* storage = cvcreatememstorage(0); cvfindcontours(gray,storage,&contours); cvsetzero(gray); if (contours) cvdrawcontours(gray,contours,cvscalarall(255), cvscalarall(255),100); cvshowimage("contours",gray); cvreleaseimage(&gray); cvreleasememstorage(&storage); } int main( int argc, char** argv ) { if (argc!= 2!(image = cvloadimage(argv[1]))) return -1; cvnamedwindow("contours",1); int thresh = 100; cvcreatetrackbar("threshold","contours",&thresh,255,cb_slider); cb_slider(thresh); cvwaitkey(); return 0; }
13 OpenCV - Open Source Computer Vision 13 OpenCV mit icewing verwenden OpenCV einbinden Unterschiede Icewing OpenCV IceWing Plugin generieren export PATH=/vol/ai/releases/hardy/bin:$PATH export PKG_CONFIG_PATH=/vol/ai/releases/hardy/lib/pkgconfig:$PKG_CONFIG_PATH icewing-plugingen -cpp OpenCVTestPlugin OpenCV im Makefile OPENCV_CFLAGS OPENCV_LDFLAGS OPENCV_LIBS OPENCV_LIBDIR CXXFLAGS LDFLAGS = pkg-config opencv --cflags = pkg-config opencv --libs-only-l = pkg-config opencv --libs-only-l = pkg-config opencv --variable=libdir += $(OPENCV_CFLAGS) += $(OPENCV_LDFLAGS) -Wl,--rpath,$(OPENCV_LIBDIR) $(OPENCV_LIBS) Include header files im Plugin #include "tools/opencv.h" // IceWing OpenCV support #include <cv.h> #include <cvaux.h> #include <highgui.h> #include <cxcore.h> // unnecessary - included in cv.h
14 OpenCV - Open Source Computer Vision 14 OpenCV mit icewing verwenden OpenCV einbinden Unterschiede Icewing OpenCV Kompilieren und Linken wie üblich make clean; [make depend;] make; IceWing Aufruf icewing -sg V -l./libopencvtestplugin.so opencv.h icewing header void iw_opencv_render (prevbuffer *b, const IplImage *img, iwcoltab ctab); IplImage* iw_opencv_from_img (const iwimage *img, BOOL swaprb); iwimage* iw_opencv_to_img (const IplImage *img, BOOL swaprb); iwimage* iw_opencv_to_img_interleaved (const IplImage *img, BOOL swaprb);
15 OpenCV - Open Source Computer Vision 15 Ein einfaches Plugin OpenCV einbinden Unterschiede Icewing OpenCV OpenCV plugin bool OpenCVTestPlugin::Process (char *ident, plugdata *data) { IplImage* image = 0; iwimage* img = &((grabimagedata*)data->data)->img; image = iw_opencv_from_img(img,true); IplImage* gray = cvcreateimage(cvgetsize(image),ipl_depth_8u,1); CvMemStorage* storage = cvcreatememstorage(0); cvcvtcolor(image,gray,cv_bgr2gray); cvthreshold(gray,gray,value,255,cv_thresh_binary); CvSeq* contours = 0; cvfindcontours(gray,storage,&contours); cvsetzero(gray); if (contours) cvdrawcontours(gray,contours,cvscalarall(255),cvscalarall(255),100); iw_opencv_render(b_image,gray,iw_gray); prev_draw_buffer(b_image); if (image) cvreleaseimage(&image); if (gray) cvreleaseimage(&gray); cvreleasememstorage(&storage); return TRUE; }
16 OpenCV - Open Source Computer Vision 16 OpenCV einbinden Unterschiede Icewing OpenCV IceWing Bildformat vs. OpenCV Bildformat Standard Bildverwendung unterscheidet sich zwischen IceWing und OpenCV OpenCV (IplImage) Pixel im gleichen Speicherbereich. Farben hintereinander IceWing (iwimage) Plane orientierte Speicherverwaltung Jede plane hat die Größe des Bildes Konvertierungsroutinen zum Umwandeln
17 OpenCV - Open Source Computer Vision 17 Datenstrukturen Datenstrukturen Arbeiten mit Bildern Literatur und Dokumentation OpenCV Image IplImage -- int nchannels; // Number of color channels (1,2,3,4) -- int depth; // Pixel depth in bits: // IPL_DEPTH_8U, IPL_DEPTH_8S, // IPL_DEPTH_16U,IPL_DEPTH_16S, // IPL_DEPTH_32S,IPL_DEPTH_32F, // IPL_DEPTH_64F -- int width; // image width in pixels -- int height; // image height in pixels -- char* imagedata; // pointer to aligned image data // Note that color images are stored in BGR order -- int dataorder; // 0 - interleaved color channels, // 1 - separate color channels // cvcreateimage can only create interleaved images -- int origin; // 0 - top-left origin, // 1 - bottom-left origin (Windows bitmaps style) -- int widthstep; // size of aligned image row in bytes -- int imagesize; // image data size in bytes = height*widthstep
18 OpenCV - Open Source Computer Vision 18 Datenstrukturen Datenstrukturen Arbeiten mit Bildern Literatur und Dokumentation OpenCV Matrix CvMat // 2D array -- int type; // elements type (uchar,short,int,float,double) and flags -- int step; // full row length in bytes -- int rows, cols; // dimensions -- int height, width; // alternative dimensions reference -- union data; -- uchar* ptr; // data pointer for an unsigned char matrix -- short* s; // data pointer for a short matrix -- int* i; // data pointer for an integer matrix -- float* fl; // data pointer for a float matrix -- double* db; // data pointer for a double matrix
19 OpenCV - Open Source Computer Vision 19 Datenstrukturen Datenstrukturen Arbeiten mit Bildern Literatur und Dokumentation OpenCV N dimensionale Matrix CvMatND // N-dimensional array -- int type; // elements type (uchar,short,int,float,double) and flags -- int dims; // number of array dimensions -- union data; -- uchar* ptr; // data pointer for an unsigned char matrix -- short* s; // data pointer for a short matrix -- int* i; // data pointer for an integer matrix -- float* fl; // data pointer for a float matrix -- double* db; // data pointer for a double matrix -- struct dim[]; // information for each dimension -- size; // number of elements in a given dimension -- step; // distance between elements in a given dimension
20 OpenCV - Open Source Computer Vision 20 Zugriff auf den Bildinhalt Datenstrukturen Arbeiten mit Bildern Literatur und Dokumentation k = channel; i = row; j = column; Indirekt ineffizient, aber sicher IplImage* img = cvcreateimage(cvsize(640,480),ipl_depth_32f,3); CvScalar s = cvget2d(img,i,j); // get the (i,j) pixel value printf("b=%f, G=%f, R=%f\n",s.val[0],s.val[1],s.val[2]); s.val[0] = 111; s.val[1] = 112; s.val[2] = 113; cvset2d(img,i,j,s); // set the (i,j) pixel value Direkt effizient, aber fehleranfällig IplImage* img = cvcreateimage(cvsize(640,480),ipl_depth_8u,3); ((uchar *)(img->imagedata + i*img->widthstep))[j*img->nchannels + 0] = 111; // B ((uchar *)(img->imagedata + i*img->widthstep))[j*img->nchannels + 1] = 112; // G ((uchar *)(img->imagedata + i*img->widthstep))[j*img->nchannels + 2] = 113; // R
21 OpenCV - Open Source Computer Vision 21 Zugriff auf den Bildinhalt Datenstrukturen Arbeiten mit Bildern Literatur und Dokumentation k = channel; i = row; j = column; Pointer effizient, aber immer noch fehleranfällig IplImage* img = cvcreateimage(cvsize(640,480), IPL_DEPTH_8U,3); int height = img->height; int width = img->width; int step = img->widthstep/sizeof(uchar); int channels = img->nchannels; uchar* data = (uchar *)img->imagedata; data[i*step+j*channels+k] = 111; Verwendung der Wrapper Klasse IplImage* img = cvcreateimage(cvsize(640,480), IPL_DEPTH_8U,3); RgbImage imga(img); imga[i][j].b = 111; imga[i][j].g = 112; imga[i][j].r = 113; Wrapper Klasse elegant template<class T> class Image { private: IplImage* imgp; public: Image (IplImage* img = 0) { imgp = img; } ~Image() { imgp = 0; } void operator= (IplImage* img) { imgp = img; } inline T* operator[] (const int rowindx) { return ((T*) (imgp->imagedata + rowindx*imgp->widthstep)); } }; typedef struct { unsigned char b,g,r; } RgbPixel; typedef struct{ float b,g,r; } RgbPixelFloat; typedef Image<RgbPixel> RgbImage; typedef Image<RgbPixelFloat> RgbImageFloat; typedef Image<unsigned char> BwImage; typedef Image<float> BwImageFloat;
22 OpenCV - Open Source Computer Vision 22 Zeichnen mit OpenCV Datenstrukturen Arbeiten mit Bildern Literatur und Dokumentation Zeichenfunktionen Linien, Kreise, Ellipse,... Polygone (Gefüllt, Kontur) Text Verschiedene Farben, Linienstärken, Antialising Beliebige Bildtypen werden dabei unterstützt
23 OpenCV - Open Source Computer Vision 23 Nützliche Quellen Datenstrukturen Arbeiten mit Bildern Literatur und Dokumentation Buch Learning OpenCV von Bradski und Kaehler, O Reilly Verlag, 2008 /vol/ai/releases/hardy/share/opencv/doc/index.htm (Dokumentation zur OpenCV Installation im GZI) oder direkt (OpenCV Projektseite mit SVN, Download von Snapshots) Pakete der Version 1.0 für viele Linux Distributionen (ubuntu, OpenSUSE,...) (offizielles OpenCV Wiki) index.html (Gute Einführung in OpenCV, viele e auf diesen Folien sind daraus entnommen)
OpenCV - Open Source Computer Vision
OpenCV - Open Source Computer Vision Niklas Beuter 30. April 2008 OpenCV - Open Source Computer Vision 1 Übersicht Vorteile von OpenCV Community 1 Vorteile von OpenCV Community 2 Aufbau Funktionalität
Mehr1. Übung zu "Numerik partieller Differentialgleichungen"
1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:
MehrBildverarbeitung mit OpenCV
Bildverarbeitung mit OpenCV Open Source Computer Vision Library Johannes Wienke Computer Vision Toolkits Seminar im Sommersemester 2008 an der Universität Bielefeld 23. Mai 2008 Dieses Tutorial soll eine
MehrEinführung in die Programmierung (EPR)
Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.
MehrDr. Monika Meiler. Inhalt
Inhalt 11 Dynamische Feldvereinbarung... 11-2 11.1 Dynamische Vereinbarung von Vektoren... 11-3 11.2 Dynamische Vereinbarung von Matrizen... 11-5 11.3 Die Kommandozeile... 11-8 Propädeutikum 11-1/8 11
MehrEinführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
MehrLehrstuhl für Datenverarbeitung. Technische Universität München. Leistungskurs C++ OpenCV
Leistungskurs C++ OpenCV Was ist OpenCV? OpenCV (Free Open Source Computer Vision) ist eine Library mit Funktionen für Computer Vision in Echtzeit Ursprünglich von Intel entwickelt, inzwischen hauptsächlich
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)
MehrProgrammentwicklung mit C++ (unter Unix/Linux)
Programmentwicklung mit C++ (unter Unix/Linux) Erste Schritte Der gcc - Compiler & Linker Organisation des Source-Codes & Libraries Automatische Programmgenerierung: Make Birgit Möller & Denis Williams
MehrIPETRONIK TESTdrive SDK V02.00
TESTdrive SDK V02.00 Übersicht Kundenspezifische Erweiterungen möglich Unabhängige Entwicklungen von TESTdrive-Kernsystem (Releases) Eigenständige Erweiterungen durch den Kunden selbst Nutzung von bestehenden
MehrMicrosoft Visual C++ 6.0
Hardwareinbindung in Matlab bild = Quickcam; figure;imshow(bildanzeige); MATLAB 6.1 void mexfunction( int nlhs, mxarray *plhs[], int nrhs, const mxarray*prhs[] ) Microsoft Visual C++ 6.0 Aufruf int Capture(unsigned
MehrFunktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang
MehrObjektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
MehrEinführung in die C++ Programmierung für Ingenieure
Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF
MehrComputerarithmetik ( )
Anhang A Computerarithmetik ( ) A.1 Zahlendarstellung im Rechner und Computerarithmetik Prinzipiell ist die Menge der im Computer darstellbaren Zahlen endlich. Wie groß diese Menge ist, hängt von der Rechnerarchitektur
MehrDatentypen: Enum, Array, Struct, Union
Datentypen: Enum, Array, Struct, Union C-Kurs 2013, 2. Tutorium Freitagsrunde http://wiki.freitagsrunde.org 10. September 2013 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
MehrDistributed Computing Group
JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird
MehrAnleitung zur Einrichtung von OpenCV
Anleitung zur Einrichtung von Dieses Dokument beschreibt die Einrichtung und Funktionsüberprüfung von im Kontext der Lehrveranstaltung. Einrichtung Dieser Abschnitt beschreibt die Einrichtung von unter
MehrEinführung in wxwidgets & wxdev-c++
Einführung in wxwidgets & wxdev-c++ Vortrag im Rahmen der Vorlesung Computational Physics im Sommersemester 2009 Folie 1/13 Gliederung wxwidgets: Übersicht wxdev-c++: Übersicht Installation wxwidgets Syntax
MehrPROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl
PROGRAMMIEREN MIT C Allgemeine hinweise Alles was hier beschrieben wird, soll auch ausprobiert werden. Warum C? Weil die coolen Dinge mit C am einfachsten gehen. Das werden wir in den folgenden Übungen
MehrEinfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
MehrModul 122 VBA Scribt.docx
Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval
MehrPass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl
Funktionen Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung erlaubt
MehrRalf Wondratschek adorsys GmbH & Co. KG. Bildbearbeitung für Android mit OpenCV
Ralf Wondratschek adorsys GmbH & Co. KG Bildbearbeitung für Android mit OpenCV Inhalt OpenCV API Pixel Zugriff Effektbeispiele Inhalt Einbindung in Android Kamerazugriff bei Android Best Practices cv::scalar
MehrUnterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur
Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert
MehrMPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven
MPI-Programmierung unter Windows mit MPIH2 Installieren von MPIH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen hristian Terboven Rechen- und Kommunikationszentrum RWTH Aachen 1 02/2007 luster-installationsworkshop
Mehrschnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv
Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag
MehrTutorium Rechnerorganisation
Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
MehrGliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik
Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.
MehrAnleitung zur Einrichtung von OpenCV
Anleitung zur Einrichtung von Dieses Dokument beschreibt die Einrichtung und Funktionsüberprüfung von im Kontext der Lehrveranstaltung. Einrichtung Dieser Abschnitt beschreibt die Einrichtung von unter
Mehr2. Semester, 2. Prüfung, Lösung
2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter
MehrEinführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005
Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm
MehrEinführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl
MehrKurze Einführung in die Programmiersprache C++ und in Root
Kurze Einführung in die Programmiersprache C++ und in Root Statistik, Datenanalyse und Simulation; 31.10.2006 Inhalt 1 Einführung in die Programmiersprache C++ Allgemeines Variablen Funktionen 2 1 Einführung
MehrEine Einführung in C-Funktionen
Eine Einführung in C-Funktionen CGK-Proseminar 2014 Philip Gawehn 04.07.2014, Hamburg Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen 2 2.1 Der Aufbau einer Funktion....................... 2 2.2 Schlüsselwörter.............................
MehrGrundlagen der Bildverarbeitung: Übung 1
Grundlagen der Bildverarbeitung: Übung 1 Michael Korn Raum: BC 414, Tel.: 0203-379 - 3583, E-Mail: michael.korn@uni-due.de Michael Korn (michael.korn@uni-due.de) GBV: Übung 1 1 / 24 Digitale Bilder Michael
MehrZugriff auf die Modul-EEPROMs
MAX-P- und P-Bibliotheken EEPROM-Zugriff 1 Zugriff auf die Modul-EEPROMs Jedes X-Bus-Modul verfügt über ein EEPROM, in dem modulspezifische Daten gespeichert werden. Neben einigen Bereichen, die vom Betriebssystem
MehrBegleitendes Praktikum zur Vorlesung Mustererkennung
Begleitendes Praktikum zur Vorlesung Mustererkennung WS14/15 Übersicht Kontakt Aufgaben Bibliotheken Hinweise zu C# Kontakt Internet: http://cvpr.unimuenster.de/teaching/ws1415/me_praktikum/ Softwareumgebung:
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
MehrSoftware und Visualisierungen. Erich Schubert, Dr. Arthur Zimek. 2013-0X-XX KDD Übung
Software und Visualisierungen Erich Schubert, Dr. Arthur Zimek Ludwig-Maximilians-Universität München 2013-0X-XX KDD Übung Ein recht einfacher Datensatz, online unter: http://aima.cs.berkeley.edu/data/iris.csv
MehrDas erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
MehrAlgorithmen zur Datenanalyse in C++
Algorithmen zur Datenanalyse in C++ Hartmut Stadie 23.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 16 Einführung Algorithmen zur Datenanalyse in C++ Hartmut Stadie 2/ 16 Übersicht Einführung
MehrProgrammieren in Haskell Einführung
Programmieren in Haskell Einführung Peter Steffen Universität Bielefeld Technische Fakultät 16.10.2009 1 Programmieren in Haskell Veranstalter Dr. Peter Steffen Raum: M3-124 Tel.: 0521/106-2906 Email:
MehrIndustrielle Bildverarbeitung mit OpenCV
Industrielle Bildverarbeitung mit OpenCV Zhang,Duoyi 6.7.2 Gliederung. Einführung für OpenCV 2. Die Struktur von OpenCV Überblick Funktionsumfang in Ausschnitten mit Beispielen 3. Industrielles Anwendungsbeispiel
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
MehrGraphic Coding. Klausur. 9. Februar 2007. Kurs A
Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt
MehrÜbung zur Vorlesung Programmieren in C
Übung zur Vorlesung Programmieren in C 6 Pointers Marvin Gülker Ruhruniversität Bochum Wintersemester 2015/2016 Marvin Gülker (Ruhruniversität Bochum) 6 Pointers Wintersemester 2015/2016 1 / 29 Gliederung
MehrPraktikum: Allgemeine Hinweise
Praktikum: Allgemeine Hinweise Ziel dieses Praktikums ist es, die in der Vorlesung erworbenen Kenntnisse zu vertiefen und praktisch anzuwenden, sowie Sie zum Selbststudium anzuleiten. Außerdem sollen Sie
Mehr4D Server v12 64-bit Version BETA VERSION
4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und
MehrFakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012
WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **
MehrAutomatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu)
HMExcel Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu) Inhalt 1. Einleitung...1 2. Beispiele...2 2.1. Daten in ein Tabellenblatt schreiben...2
MehrMOUNT10 StoragePlatform Console
MOUNT10 StoragePlatform Console V7.14 Kurzmanual für Microsoft Windows Ihr Leitfaden für die Verwaltung der MOUNT10 Backup-Umgebung unter Verwendung der Storage Platform Console Inhaltsverzeichnis 1 VERWENDUNGSZWECK...3
MehrAnwenderdokumentation PersoSim
Anwenderdokumentation PersoSim Die nachfolgende Anwenderdokumentation soll dem Anwender bei der Installation und den ersten Schritten im Umgang mit PersoSim helfen. Installation Grundvoraussetzung für
MehrModerne C-Programmierung
Xpert.press Moderne C-Programmierung Kompendium und Referenz Bearbeitet von Helmut Schellong 1. Auflage 2005. Buch. xii, 280 S. ISBN 978 3 540 23785 3 Format (B x L): 15,5 x 23,5 cm Weitere Fachgebiete
MehrIn der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch
Kapitel Matrizen in C++ In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch 1 const int n=10; 3 double a[n][n]; gegeben. Allerdings gibt es bei dieser Methode eine Reihe
MehrEclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007
Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit
MehrMultimedia im Netz Wintersemester 2011/12
Multimedia im Netz Wintersemester 2011/12 Übung 01 Betreuer: Verantwortlicher Professor: Sebastian Löhmann Prof. Dr. Heinrich Hussmann Organisatorisches 26.10.2011 MMN Übung 01 2 Inhalte der Übungen Vertiefung
MehrTIMERATE AG Tel 044 422 65 15 Falkenstrasse 26 timerate@timerate.ch 8008 Zürich www.timerate.ch. Joomla Templates Kursunterlagen
TIMERATE AG Tel 044 422 65 15 Falkenstrasse 26 timerate@timerate.ch 8008 Zürich www.timerate.ch Joomla Templates Kursunterlagen Ordnerstruktur in Joomla Inhaltsverzeichnis Ordnerstruktur in Joomla... 3
MehrEinführung in die Programmierung mit C++
1 Seite 1 Einführung in die Programmierung mit C++ Teil IV - Weiterführende Themen 14. Modularisierung und Automatisierung Was heißt Modularisierung? Seite 2 bisher Programm komplett in einer Datei längere
MehrSoftwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch
Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich
MehrEinführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrSeminar Seminarname SS 2003
Universität Karlsruhe (TH) Institut für Rechnerentwurf und Fehlertoleranz (IRF) Lehrstuhl Prof. Dr.-Ing. Dillmann Seminar Seminarname SS 2003 Beitragstitel Eva Muster Kaiserstraße 1 76133 Karlsruhe eva@muster.de
MehrDas Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala
Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:
MehrProseminar C-Programmierung. Strukturen. Von Marcel Lebek
Proseminar C-Programmierung Strukturen Von Marcel Lebek Index 1. Was sind Strukturen?...3 2. Padding 5 3. Vor- und Nachteile von Padding..8 4. Padding gering halten 9 5. Anwendungsgebiete von Strukturen.11
MehrC++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen
C++ Kurs Teil 1 "hello world" Vergleich von C++ und Java Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen C++ Spezialitäten Schlüsselwort 'const', Copy Constructor,
MehrSonnenfinsternis in der Technischen Redaktion
Sonnenfinsternis in der Technischen Redaktion Eclipse-basierte Tools für die Software-Dokumentation Frank Ralf parson AG tekom-jahrestagung 2014 1 Agenda Eclipse-basierte Tools für die Softwaredokumentation
MehrInstitut für Dokumentologie und Editorik. XML-Datenbanken und XQuery
XML-Datenbanken & XQuery Folie 1 XML Digitale Edition XSL-FO XSLT XQuery XML-DB Folie 2 Programm - Ausgewählte Biere verköstigen - Brauereibesichtigung - Anwendung der Hefe erlernen - brauen Folie 3 Telota
MehrCORBA. Systemprogrammierung WS 2006-2007
CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA
MehrFelder, Rückblick Mehrdimensionale Felder. Programmieren in C
Übersicht Felder, Rückblick Mehrdimensionale Felder Rückblick Vereinbarung von Feldern: typ name [anzahl]; typ name = {e1, e2, e3,..., en} Die Adressierung von Feldelementen beginnt bei 0 Die korrekte
MehrFelder. November 5, 2014
Felder Universität Bielefeld AG Praktische Informatik November 5, 2014 Felder: Datenstrukturen mit konstantem Zugriff Felder nennt man auch, Vektoren, Matrizen,... Konstanter Zugriff heisst: Zugriff auf
MehrAlgorithmen & Datenstrukturen 1. Klausur
Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse
MehrDokumentieren mit Eclipse und Doxygen
Dokumentieren mit Eclipse und Doxygen Boris Budweg, 28.11.2009 Version 0.2 Abstract: Kurze Anleitung für die Benutzung von Doxygen und Eclox in Eclipse. Doxygen-Kommentare / Schlüsselwörter...2 Beispiel...2
MehrDeklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
MehrProgrammieren was ist das genau?
Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet
MehrC++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang
Einleitung Dieses Buch wendet sich an jeden Leser, der die Programmiersprache C++ neu lernen oder vertiefen möchte, egal ob Anfänger oder fortgeschrittener C++-Programmierer. C++ ist eine weitgehend plattformunabhängige
MehrDienstspezifikation nach RFC 2396 193
Dienstspezifikation nach RFC 2396 193 Für die Kombination aus Rechnernamen (oder alternativ einer IP-Adresse) und einer Portnummer gibt es mit RFC 2396 einen Standard: hostport host [ : port ] host hostname
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16
Kapitel 5 Arithmetische Operatoren Seite 1 von 16 Arithmetische Operatoren - Man unterscheidet unäre und binäre Operatoren. - Je nachdem, ob sie auf einen Operanden wirken, oder eine Verknüpfung zweier
MehrEASYINSTALLER Ⅲ SuSE Linux Installation
EASYINSTALLER Ⅲ SuSE Linux Installation Seite 1/17 Neuinstallation/Update von Meytonsystemen!!! Die Neuinstallation von MEYTON Software ist relativ einfach durchzuführen. Anhand dieser Beschreibung werden
MehrKameraanbindung mit OpenCV. Projektpraktikum AR/VR Raphael Baumeister
Kameraanbindung mit OpenCV Projektpraktikum AR/VR Raphael Baumeister Einleitung & Allgemeines Open Source Bibliothek Basierend auf Image Processing Library Programmiersprache C++ Hohe Geschwindigkeit Lizenzfrei
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2009, 16. Juli 2009 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:
MehrÜbung 9 - Lösungsvorschlag
Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang
MehrProgrammiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm
Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i
MehrProgrammierung für Mathematik (HS13)
software evolution & architecture lab Programmierung für Mathematik (HS13) Übung 5 1 Aufgabe: Eclipse IDE 1.1 Lernziele 1. Die Entwicklungsumgebung Eclipse einrichten. 2. Eclipse kennen lernen und mit
MehrAgenda. Ziel Problematik OS-Installation Softwareverteilung Inventarisierung Stufenplan
opsi Linux Support Agenda Ziel Problematik OS-Installation Softwareverteilung Inventarisierung Stufenplan Ziel Integrierte Verwaltung von heterogenen Rechnerparks mit Linux- und Windows-Maschinen unter
MehrZählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
MehrKapitel 12: Übersetzung objektorienter Konzepte
Kapitel 12: Übersetzung objektorienter Konzepte Themen Klassendarstellung und Methodenaufruf Typüberprüfung Klassenhierarchieanalyse Escape Analyse 12.1 Klassendarstellung bei Einfachvererbung class Punkt
MehrZusammenfassung des Handzettels für Programmieren in C
Zusammenfassung des Handzettels für Programmieren in C In der handschriftlichen Kopie werden mehr Abkürzungen verwendet. Alles Grün markierte dient zum lernen und wird nicht auf den Handzettel übertragen.
MehrProgrammieren in C++ Arrays, Strings und Zeigerarithmetik
Programmieren in C++ Arrays, Strings und Zeigerarithmetik Inhalt Eindimensionale C-Arrays C-Strings und Strings (Mehrdimensionale C-Arrays) Arrays und Vektoren (C++) Unique Pointers (C++11) Zeigerarithmetik
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include
MehrÜbersicht. Generierung von IPv6-Paketen mit Scapy. Scapy GUI - Kurzvorstellung. Szameitpreiks - Beuth Hochschule für Technik Berlin
Übersicht Generierung von IPv6-Paketen mit Scapy Scapy GUI - Kurzvorstellung Szameitpreiks - Beuth Hochschule für Technik Berlin 2 Scapy-GUI for IPv6 Generierung von IPv6- Paketen mit Scapy Szameitpreiks
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrJava Virtual Machine (JVM) Bytecode
Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,
MehrBegleitendes Praktikum zu Computer Vision und Mustererkennung: Vertiefung
Begleitendes Praktikum zu Computer Vision und Mustererkennung: Vertiefung WS11/12 Übersicht Kontakt Aufgaben Bibliotheken Hinweise zu C# Kontakt Internet: http://cvpr.unimuenster.de/teaching/ws11/praktikumcomputervisionundmustererkennungws11/
Mehr5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu
Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 1)
DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume
MehrC A R L V O N O S S I E T Z K Y. Boost C++ Libraries. Johannes Diemke. Department of Computer Science Learning and Cognitive Systems
C A R L V O N O S S I E T Z K Y Boost C++ Libraries Johannes Diemke Department of Computer Science Learning and Cognitive Systems Grundlagen Freie von Experten begutachtete, portable C++ Bibliothek Nützlich,
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E
Mehr