Archive for February, 2008

Wrote function setUndistortedImage_LLM | Habe die Funktion setUndistortedImage_LLM geschrieben

28. February 2008

(Deutsch weiter unten!)

I’ve implemented another function called setUndistortedImage_LLM included in this ‘Current documentation (English)’.

################################

Habe die nächste Funktion setUndistortedImage_LLM geschrieben zu sehen in dieser ‘Aktuellesten Dokumentation (Englisch)’.

Documenting in different languages with Doxygen | Mit Doxygen in verschiedenen Sprachen dokumentieren

26. February 2008

(Deutsch weiter unten!)

Today I’ve found out – okay, I was given a hint – that it is easy to create the Doxygen documentation in several languages at once (It’s all in the Doxygen documentation of course ;-) ).

In the configuration file (Doxyfile) edit the following line:
ALIASES
by adding the following entries:
“english=if english” “endenglish=endif” “deutsch=if deutsch” “enddeutsch=endif”

In line
ENABLED_SECTIONS
add
deutsch
or
english
what ever is needed next.

In the code write:
/*! @english
* This is English.
* @endenglish
* @deutsch
* Das ist Deutsch.
* @enddeutsch
*/

And the entire documentation will be in one language – surprise, surprise. (There is a more direct way, but that’ll do for now.)

And the documentation suddenly becomes a lot more readable ;-)

###########################

Ich habe heute herausgefunden, dank eines Winks mit dem Zaunpfahl, dass es ganz einfach ist die Dokumentation in Doxygen in mehreren Sprachen zu erstellen (Steht auch alles in der Doxygen Dokumentation ;-) ).

In der der Konfigurationsdatei (Doxyfile) kommen in die Zeile:
ALIASES
zusätzlich folgende Einträge:
“english=if english” “endenglish=endif” “deutsch=if deutsch” “enddeutsch=endif”

In der Zeile
ENABLED_SECTIONS
wird je nach Bedarf
deutsch
oder
english
hingeschrieben.

Im Code macht man folgendes:
/*! @english
* This is English.
* @endenglish
* @deutsch
* Das ist Deutsch.
* @enddeutsch
*/

Und schon wird die Dokumentation völlig einsprachig. (Es geht noch direkter, aber das reicht fürs Erste.)

Und die Dokumentation wird wirklich lesbarer ;-)

Wrote Function setEditableImage_LLM | Habe die Funktion setEditableImage_LLM geschrieben

25. February 2008

(Deutsch weiter unten!)

I’ve implemented another function called setEditableImage_LLM included in this ‘Current documentation (English)’.

################################

Habe die nächste Funktion setEditableImage_LLM geschrieben zu sehen in dieser‘Aktuellesten Dokumentation (Englisch)’.

Exception handling for the Tracker | Fehlerbehandlung im Tracker

25. February 2008

(Deutsch weiter unten!)

For the Tracker part of the Software I decided to use return values rather than exception handling with TRY/CATCH, because of the following two reasons:

1) One of the reasons for using exception handling with try/catch is the avoidance of large “error handling trees”, which at a function call hierarchy of only a few levels quickly becomes cluttered.

Example: The bottom function knows 2 error conditions.
The above must handle these two errors and has 3 error conditions itself.
Theoretically the next function above must now handle 6 errors …

Since the tracker has “only” about four levels with probably “only” two error conditions (success, failure) and …

2) exception handling with try/catch creates additional overhead…

I will use return values for this part of the software.

####################

Ich habe mich entschieden für den Tracker keine Fehlerbehandlung mit TRY/CATCH sondern mit Rückgabewerten einzusetzen. Dies hat folgende zwei Gründe:

1) Der Grund für den Einsatz von einer Fehlerbehandlung mit try/catch ist unter anderem die Vermeidung großer “Fehlerbehandlungsbäume”, die bei einer Funktionsaufrufshierarchie von nur einigen Ebenen schnell unübersichtlich wird.

Beispiel: Die Unterste Funktion kennt 2 Fehlerzustände.
Die darüber muss diese beiden Fehler behandeln und hat selbst 3 Fehlerzustände.
Die darüber muss nun theoretisch 6 Fehler behandeln…

Da der Tracker “nur” ca. vier Ebenen haben wird mit vorraussichtlich “nur” jeweils zwei Fehlerzuständen (Erfolg,Misserfolg) und…

2) die Fehlerbehandlung mit try/catch zusätzlichen overhead produziert…

werde ich für diesen Teil der Software Rückgabewerte einsetzen.

Example JavaDocs, Doxyfile and Copiled HTML Helpfile(.chm) | Beispiel für meine JavaDoc, generierende Doxyfile und Copiled HTML Hilfedatei(.chm)

24. February 2008

(Deutsch weiter unten!)

Today I have made some decisions. I have designed my JavaDocs documentation format, and thereby indirectly (through Doxygen and the generating file Doxyfile_english) take influence on the appearance of the generated Help file (in .html and .chm files). I have designed the layout of the help file largely oriented on SELFHTML’s layout, because I have always felt that this manual allowed easier access (even for beginners) . You’ll find my JavaDocs format here, the generating Dogygen file is here and the .chm output file here.

########################

Heute habe ich einige Entscheidungen getroffen. Ich habe das Format meiner JavaDocs Dokumentation festgelegt und somit indirekt (über Doxygen und die generierende Datei Doxyfile_deutsch) auf das Aussehen der generierten Hilfedatei (im .html und .chm Format) Einfluss genommen. Bei der Hilfe Datei habe ich mich weitestgehend am Layout von SELFHTML orientiert, da ich schon immer fand, dass man dazu (auch als Anfänger) leichter Zugang findet.
Mein JavaDocs Format ist hier, die generierende Datei ist hier und die .chm-Datei hier.

Requirements for the Development Environment | Anforderungen an die Entwicklungsumgebung

23. February 2008

(Deutsch weiter unten!)

Okay, so I am developing the mouse system for Windows, with OpenCV.

Originally, I wanted to use Dev-C + + with the MinGW compiler (or wxDev C + + because of the Form-Editor), becaus of the low disc space requirements. I followed the instructions at http://opencvlibrary.sourceforge.net/DevCpp to use OpenCV with Dev-C + +, but to my disappointment only the the C sample files ran, the C + + examples didn’t.

So I will now state the requirements for the development environment (I use the Windows XP operating system, 1.5 gigahertz):

- Visual C + + 2008 Express Edition
- OpenCV, tips on using OpenCV with Microsoft Visual C + + can be found in the online wiki at http://opencvlibrary.sourceforge.net/VisualC% 2B% 2B
- I use the C + + programming guidelines at http:// … Hey, where’dey go?
Ah here (german document, find more at dmoz.org) http://zach.in.tu-clausthal.de/progr/guidelines.html
- I will be using JavaDocs for commenting style, which enables the next point …
- I use Doxigen to the extract comments from my source code and generate an HTML documentation automatically(!!!). (Configuring the doxyfile until you are content with the Document outcome took me a whole day but it was worth it!)
- With the help of Microsoft’s HTML Help, I let Doxygen create Copiled HTML Help files ( .chm )
- With the help of Graphviz I let Doxygen create graphics for the documentation. These graphics e.g. shows what functions are calling which other functions, that’s really neat ;-)

- I use normal functions, so they can be used or left out as you please.
- I’ll name all functions with the “_LLM” suffix.
- On Pointers I will add a “_P” suffix, and double-pointers (pointers to pointers) a “_PP” suffix.
- I will continuously add my functions to a “.h” header file. so you can include them any time you need them (similar to the OpenCV header files)
- I will try to program the entire thing exception-safe (So without any unexpected conditions – HAHA ;-) )

- As a constant light source I’ll use indirect, diffused, yellow lighting with a brightness between 500 and 700 LUX (Recommended values for reading and or detailed work by (researched) Ergonomics)

- The manual is created with LaTeX

- My goal is to write all documents in German and English

Okay that’s it! :-)

##########################################

Also ich entwickle das Maus-System für Windows, mit OpenCV.

Ursprünglich wollte ich Dev-C++ mit dem MinGW Compiler nutzen (bzw. wxDev-C++ wegen des Form-Editors), wegen des geringen Platzbedarfs. Ich befolgte die Anleitung auf http://opencvlibrary.sourceforge.net/DevCpp, um OpenCV mit Dev-C++ zu benutzen, aber zu meiner Enttäuschung liefen nur die C Beispieldateien, die C++ Beispiele liefen nicht.

Ich habe mich also für folgende Anforderungen an die Entwicklungsumgebung entschieden (Ich benutze das Windows XP Betriebssystem, 1,5 Gigahertz):

- Visual C++ 2008 Express Edition
- OpenCV, Hinweise zur Nutzung von OpenCV mit Microsoft Visual C++ auf http://opencvlibrary.sourceforge.net/VisualC%2B%2B
(Eine deutsche Übersetzung finden Sie hier: http://eyebachelor.googlecode.com/files/cv.pdf)
- Ich benutze die C++ Programmier Richtlinien von http://… Hm, wo waren die nochmal?
Ah hier: http://zach.in.tu-clausthal.de/progr/guidelines.html
- Ich werden mittels JavaDoc kommentieren, das ermöglicht den nächsten Punkt…
- Ich verwende Doxigen, um aus den Kommentaren automatisch(!!!) eine HTML Dokumentation zu generieren. (Die Konfiguration bis zur Zufriedenheit ist langatmig, aber lohnt sich!!!)
- Mit Hilfe von Microsoft’s HTML-Help lasse ich Doxygen zusätzlich eine Copiled HTML Hilfedatei erzeugen ( .chm )
- Mit Hilfe von Graphviz lasse ich Doxygen zusätzlich Graphiken für die Dokumentation erzeugen. Diese Graphiken zeigen zum Beispiel welche Funktion von welcher anderen Funktion aufgerufen wird, echt hübsch ;-)

- Ich verwende einfache Funktionen, damit diese nach belieben verwendet oder weggelassen werden können.
- Ich benenne alle Funktionen mit dem “_LLM” Suffix.
- Zeiger (C++ Pointer) werde ich mit “_P” Suffix, und Doppel-Zeiger (Zeiger auf Zeiger) mit “_PP” Suffix benennen
- Ich werde meine Funktionen nach und nach in eine “.h” Header Datei auslagern, die man dann jeder Zeit einbinden kann, wenn man sie braucht (ähnlich wie die OpenCV Dateien)
- Ich werde versuchen das ganze Exception-Sicher zu programmieren (Also ohne unerwartete Zustände – HAHA ;-) )

- Als konstante Lichtquelle nutze ich indirektes, gestreutes, gelbliches Licht mit einer Stärke zwischen 500 und 700 LUX (Empfohlene Werte aus der Ergonomie für Lesen bis Detailarbeiten)

- Das Handbuch wird mit LaTeX erstellt

- Mein Ziel ist es die gesamten Dokumente in Deutsch und Englisch zu verfassen

Okay das war’s! :-)

LaTeX – My first time | Mein erstes mal

22. February 2008

(Deutsche Version weiter unten!)

I use a Windows XP computer with a 1.5 gigahertz processor …

So: My goal is to write the documentation of my bachelor’s thesis in LaTeX. I have never worked with it, and will now write down the learning process. (Sources are almost all in English)

I went to
Http://en.wikipedia.org/wiki/LaTeX
And found out that the TeXnicCenter is a LaTeX tool for Windows.

But first we have to download MiKTeX from
Http://www.miktex.org

I have downloaded MiKTex , but that was only the installer, which allows me to download the actual installation file(s) … I chose the recommended “basic” version.

After the files(75 MB) were downloaded to the folder (I created) on my desktop , I was asked to close the MiKTeX “Wizzard” (the installer I had previously downloaded) and start it again to begin the installation process – very user-friendly ! ;-)

After the re-start, I accepted the license, and now it wants to “install MiKTeX”, I hit the “Next” Button. I left all the settings as they were and went through the installation process as “normal”.

Installation begins…
The installation is taking forever!

The installation of MiKTeX is still running, I am closing all other running Programs maybe that will speed it up…

I am back again (about 6 minutes went by)! The installation was successful.

Now I go to
Http://www.texniccenter.org/downloads.html
And download TeXnicCenter (5 MB) – it is much faster.
The installation ran as expected.

When you start it the first time, tool-tips are displayed, I leave them on and click “ok”. Then another “Wizard” opens and points out that I have to have MiKTeX installed – well, I do…

I’m supposed to specify the path to executables of MiKTeX, mine is:
C: \ Program Files \ MiKTeX 2.7 \ miktex \ bin

Postscript I don’t want as an output file (I want PDF!) so I skip the next point.

The configuration is now complete.

I create a new project under File-> New Project (somehow, the program is German …? – Never mind!)
I chose “Blank project”, I ‘m naming it “test” and storing it in the “My Documents” directory of windows. ” A blank file opens …

At
Http://en.wikibooks.org/wiki/LaTeX
there is a LaTeX wiki. Under “Contents” I click on “Absolute Beginners” and read it …

That was good, i can only recommended for you to read it yourself.

I copy

\documentclass{article}

\begin{document}
Hello world!
\end{document}

Into the empty file. In the menu i chose output-> define output profiles (Alt + F7)

At “Latex => DVI” I uncheck the box for “use (La) TeX in this profile.”
The same for “Latex => PS” (PostScript).
Only “Latex => PDF” I leave as is. I press OK.

And now I go to the output-> Create output (F7)

Something’s working … And already, I have a Test.PDF in the LaTeX directory under My Documents – not a nice one, but a solid one!

So now I am looking for a suitable template for my bachelor’s thesis

There are many templates, simply google and download it.

However, I will now probably need LaTeX more often (for presentations as well), so I’m going to read the LaTeX Wiki (see link above) from beginning to end ;-)

I hope this helps!

################################################

Ich benutze einen Windows XP Rechner mit 1,5 Gigahertz Prozessor…

Also: Mein Ziel ist es, die Dokumentation meiner Bachelor-Arbeit in LaTeX zu Schreiben. Ich habe noch nie damit gearbeitet und werde nun meinen Lernprozess nieder schreiben. (Quellen sind fast alle in Englischer Sprache)

Ich war auf
http://en.wikipedia.org/wiki/LaTeX
und habe dort heraus gefunden, dass es das Tool TeXnicCenter für Windows gibt.

Vorher muss man aber wohl noch MiKTeX
http://www.miktex.org
runterladen.

Ich habe MiKTex runter geladen, das war aber nur ein Installer, der erlaubt mir nun die tatsächliche Installationsdatei(en) herunter zu laden… ich wähle die empfohlene “Basis Version”.

Nachdem die Dateien in einen von mir erstellten Ordner auf dem Desktop herunter geladen sind (75 MB), werde ich aufgefordert den MiKTeX “Wizzard” (also das was ich vorher runtergeladen habe) zu beenden und ihn für die Installation nochmal zu starten – sehr Benutzerfreundlich! ;-)

Nach dem erneuten Start, akzeptiere ich die Lizenz, und nun will er “Install MiKTeX” machen, ich drücke auf “Weiter”. Ich lasse alle Einstellungen wie sie sind und gehe durch wie bei einem “normalen” Installationsvorgang.

Die Installation dauert ewig!

Die MiKTeX Installation läuft immernoch, ich schließe mal alle Programme, bis gleich…

Da bin ich wieder (ca. 6 Min. später)! Die Installation war erfolgreich.

Jetzt gehe ich auf
http://www.texniccenter.org/downloads.html
und lade mir TeXnicCenter runter (5 MB) das geht wesentlich schneller.
Die Installation war auch schneller und wie erwartet.

Beim ersten Start werden Tipps angezeigt die lasse ich erst einmal eingeschaltet. Danach kommt ein “Wizzard” der mich darauf aufmerksam macht, dass ich MiKTeX installiert haben sollte – hab ich ja jetzt…

Ich soll den Pfad zu den exe Dateien angeben das ist bei mir
C:\Programme\MiKTeX 2.7\miktex\bin

Post Script will ich nicht, ich will PDF, also überspringe ich den nächsten Punkt.

So, die Konfiguration ist jetzt fertig.

Ich erstelle ein neues Projekt unter Datei->Neues Projekt (irgendwie ist das Programm auf deutsch… ? – egal!)
Ein Leeres Projekt, ich nenne es Test und speichere es in “eigene Dateien”. Eine leere Datei ist zu sehen…

Unter
http://en.wikibooks.org/wiki/LaTeX
gibts eine LaTeX Wiki Dokumentation etc. Unter “Contents” klicke ich auf “Absolute Beginners” und lese mir das brav durch…

Das war gut und ist empfehlenswert um einen ersten Überblick zu bekommen.

Ich kopiere

\documentclass{article}

\begin{document}
Hello world!
\end{document}

in die leere Datei. Ich gehe im Menü unter Ausgabe->Ausgabeprofile Definieren (Alt+F7)

Unter “LaTeX=>DVI” mache ich das Häkchen weg bei “(La)TeX in diesem Profil verwenden”.
Das gleiche für “LaTeX=>PS” (Post Script).
Nur “LaTeX=>PDF” lasse ich wie gehabt. Ich drücke “OK”.

Und gehe nun zu Ausgabe->Ausgabe erstellen (F7)

Da rattert was… und schon habe ich eine Test.PDF im LaTeX Verzeichnis unter Eigene Dateien – keine schöne aber Egal!

So, jetzt suche ich mir ein passende Vorlage, für meine Bachelor-Arbeit

Vorlagen gibt es viele, einfach bei google eingeben und runterladen.

Allerdings werde ich LaTeX jetzt wohl öfters brauchen (auch für Präsentationen), also lese ich mir das LaTeX Wiki (Link siehe oben) mal von vorne nach hinten durch ;-)

Ich hoffe das hat geholfen!

Purpose of this Blog | Ziel dieses Blogs

20. February 2008

(Deutsch weiter unten!)

Hello! This blog serves as a “travel logbook” of my bachelor’s thesis on “controlling your mouse cursor with your eyes, using stereo vision” and is intended to enable the interested reader to take the same “path” with alot less effort…
Files related to my Bachelor’s thesis can be found at http://code.google.com/p/eyebachelor/

###############################

Hallo! Dieser Blog dient als “Reise-Logbuch” meiner Bachelor-Arbeit zum Thema “Mauszeiger-Steuerung mit Blick mittels Stereo Vision” und soll dem interessierten Leser dienen, den gleichen “Pfad” mit viel weniger Mühe zu gehen…
Die Bachelor-Arbeit betreffende Dateien sind unter http://code.google.com/p/eyebachelor/ zu finden…