<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://www.bytefish.de/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel>
        <title>http://www.bytefish.de</title>
        <description></description>
        <link>http://www.bytefish.de/</link>
        <lastBuildDate>Mon, 06 Feb 2012 04:10:36 +0100</lastBuildDate>
        <generator>FeedCreator 1.7.2-ppt DokuWiki</generator>
        <image>
            <url>http://www.bytefish.de/lib/images/favicon.ico</url>
            <title>http://www.bytefish.de</title>
            <link>http://www.bytefish.de/</link>
        </image>
        <item>
            <title>blog:fisherfaces_in_opencv</title>
            <link>http://www.bytefish.de/blog/fisherfaces_in_opencv</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;fisherfaces_in_opencv&quot; id=&quot;fisherfaces_in_opencv&quot;&gt;fisherfaces in opencv&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.bytefish.de/_detail/blog/blog_fisherface.png?id=blog%3Afisherfaces_in_opencv&quot; class=&quot;media&quot; title=&quot;blog:blog_fisherface.png&quot;&gt;&lt;img src=&quot;http://www.bytefish.de/_media/blog/blog_fisherface.png?w=200&quot; class=&quot;medialeft&quot; align=&quot;left&quot; alt=&quot;&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
I&amp;#039;ve found some minutes to implement the &lt;a href=&quot;http://www.bytefish.de/blog/fisherfaces&quot; class=&quot;wikilink1&quot; title=&quot;blog:fisherfaces&quot;&gt;Fisherfaces method&lt;/a&gt; with &lt;a href=&quot;http://opencv.willowgarage.com/wiki/&quot; class=&quot;urlextern&quot; title=&quot;http://opencv.willowgarage.com/wiki/&quot;  rel=&quot;nofollow&quot;&gt;OpenCV2&lt;/a&gt;&amp;#039;s C++ &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt;. The code has been pushed into my github repository at:

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://github.com/bytefish/opencv/tree/master/lda&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/bytefish/opencv/tree/master/lda&quot;  rel=&quot;nofollow&quot;&gt;https://github.com/bytefish/opencv/tree/master/lda&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

As some kind of documentation, I am pasting the &lt;a href=&quot;https://github.com/bytefish/opencv/blob/master/lda/README.markdown&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/bytefish/opencv/blob/master/lda/README.markdown&quot;  rel=&quot;nofollow&quot;&gt;README.markdown&lt;/a&gt; coming with the project. 
&lt;/p&gt;

&lt;p&gt;
If you still have any troubles using it, just comment below or drop me a mail. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;fisherfaces in opencv&quot; [1-576] --&gt;
&lt;h2&gt;&lt;a name=&quot;githubcombytefishopencvlda&quot; id=&quot;githubcombytefishopencvlda&quot;&gt;github.com/bytefish/opencv/lda&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

This project implements the Fisherfaces method as described in: P. Belhumeur, J. Hespanha, and D. Kriegman, “Eigenfaces vs. Fisherfaces: Recognition Using Class Specific Linear Projection”, IEEE Transactions on Pattern Analysis and Machine Intelligence, 19(7):711–720, 1997.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;github.com/bytefish/opencv/lda&quot; [577-897] --&gt;
&lt;h3&gt;&lt;a name=&quot;building_the_project&quot; id=&quot;building_the_project&quot;&gt;Building the Project&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

This project now comes with the &lt;a href=&quot;http://eigen.tuxfamily.org&quot; class=&quot;urlextern&quot; title=&quot;http://eigen.tuxfamily.org&quot;  rel=&quot;nofollow&quot;&gt;Eigen3&lt;/a&gt; headers, so compiling the project is as easy as writing (assuming you are in this folder):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
philipp@mango:~/some/dir/lda$ mkdir build
philipp@mango:~/some/dir/lda$ cd build
philipp@mango:~/some/dir/lda/build$ cmake ..
philipp@mango:~/some/dir/lda/build$ make
philipp@mango:~/some/dir/lda/build$ ./lda filename.ext&lt;/pre&gt;
&lt;p&gt;
And if you are in Windows using &lt;a href=&quot;http://www.mingw.org&quot; class=&quot;urlextern&quot; title=&quot;http://www.mingw.org&quot;  rel=&quot;nofollow&quot;&gt;MinGW&lt;/a&gt; it may look like this:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
C:\some\dir\lda&amp;#62; mkdir build
C:\some\dir\lda&amp;#62; cd build
C:\some\dir\lda\build&amp;#62; cmake -G &quot; MinGW Makefiles &quot; ..
C:\some\dir\lda\build&amp;#62; mingw32-make
C:\some\dir\lda\build&amp;#62; lda.exe filename.ext&lt;/pre&gt;
&lt;p&gt;
You probably have to set the &lt;em&gt;OpenCV_DIR&lt;/em&gt; variable if it wasn&amp;#039;t added by your installation, see &lt;a href=&quot;https://github.com/bytefish/opencv/blob/master/lda/CMakeLists.txt#L5&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/bytefish/opencv/blob/master/lda/CMakeLists.txt#L5&quot;  rel=&quot;nofollow&quot;&gt;Line 5 in the CMakeLists.txt&lt;/a&gt; how to do this. If you have problems working with CMake or installing OpenCV, you probably want to read my guide on &lt;a href=&quot;http://www.bytefish.de/blog/face_recognition_with_opencv2&quot; class=&quot;urlextern&quot; title=&quot;http://www.bytefish.de/blog/face_recognition_with_opencv2&quot;  rel=&quot;nofollow&quot;&gt;Face Recognition with OpenCV2&lt;/a&gt;. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Building the Project&quot; [898-2033] --&gt;
&lt;h3&gt;&lt;a name=&quot;using_the_project&quot; id=&quot;using_the_project&quot;&gt;Using the Project&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

The project comes with an example, please have a look at the &lt;a href=&quot;https://github.com/bytefish/opencv/blob/master/lda/src/main.cpp&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/bytefish/opencv/blob/master/lda/src/main.cpp&quot;  rel=&quot;nofollow&quot;&gt;main.cpp&lt;/a&gt; on how to use the classes. You need some data to make the examples work, sorry but I really can&amp;#039;t include those face databases in my repository. I have thoroughly commented the code and reworked it lately, to make its usage simpler. So if anything regarding the classes is unclear, please read the comments.
&lt;/p&gt;

&lt;p&gt;
In the example I use a CSV file to read in the data, it&amp;#039;s the easiest solution I can think of right now. However, if you know a simpler solution please ping me about it. Basically all the CSV file needs to contain are lines composed of a &lt;em&gt;filename&lt;/em&gt; followed by a &lt;em&gt;;&lt;/em&gt; followed by the &lt;em&gt;label&lt;/em&gt; (as &lt;strong&gt;integer number&lt;/strong&gt;), making up a line like this: &lt;em&gt;/path/to/image.ext;0&lt;/em&gt;.
&lt;/p&gt;

&lt;p&gt;
Think of the _label_ as the subject (the person) this image belongs to, so same subjects (persons) should have the same &lt;em&gt;label&lt;/em&gt;. An example CSV file for the &lt;a href=&quot;http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html&quot; class=&quot;urlextern&quot; title=&quot;http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html&quot;  rel=&quot;nofollow&quot;&gt;AT&amp;amp;T Facedatabase&lt;/a&gt; is &lt;a href=&quot;https://github.com/bytefish/opencv/blob/master/eigenfaces/at.txt&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/bytefish/opencv/blob/master/eigenfaces/at.txt&quot;  rel=&quot;nofollow&quot;&gt;given here&lt;/a&gt;, which looks like this (assuming I&amp;#039;ve extracted the database to &lt;em&gt;/home/philipp/facerec/data/at&lt;/em&gt;, file is without &lt;em&gt;…&lt;/em&gt; of course):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
/home/philipp/facerec/data/at/s1/1.pgm ;0
/home/philipp/facerec/data/at/s1/2.pgm;0
...
/home/philipp/facerec/data/at/s2/1.pgm;1
/home/philipp/facerec/data/at/s2/2.pgm;1
...
/home/philipp/facerec/data/at/s40/1.pgm;39
/home/philipp/facerec/data/at/s40/2.pgm;39&lt;/pre&gt;
&lt;p&gt;
Once you have a CSV file with &lt;strong&gt;valid&lt;/strong&gt; &lt;em&gt;filenames&lt;/em&gt; and &lt;em&gt;labels&lt;/em&gt;, you can run the demo by simply starting the demo with the path to the CSV file as parameter:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
./lda /path/to/your/csvfile.ext&lt;/pre&gt;
&lt;p&gt;
Or if you are in Windows:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
lda.exe /path/to/your/csvfile.ext&lt;/pre&gt;
&lt;/div&gt;
&lt;!-- SECTION &quot;Using the Project&quot; [2034-3916] --&gt;
&lt;h3&gt;&lt;a name=&quot;license&quot; id=&quot;license&quot;&gt;License&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

All code is put under a &lt;a href=&quot;http://www.opensource.org/licenses/bsd-license&quot; class=&quot;urlextern&quot; title=&quot;http://www.opensource.org/licenses/bsd-license&quot;  rel=&quot;nofollow&quot;&gt;BSD license&lt;/a&gt;, so feel free to use it for your projects.
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://www.bytefish.de/tag/opencv?do=showtag&amp;amp;tag=tag%3Aopencv&quot; class=&quot;wikilink1&quot; title=&quot;tag:opencv&quot; rel=&quot;tag&quot;&gt;opencv&lt;/a&gt;,
	&lt;a href=&quot;http://www.bytefish.de/tag/cpp?do=showtag&amp;amp;tag=tag%3Acpp&quot; class=&quot;wikilink1&quot; title=&quot;tag:cpp&quot; rel=&quot;tag&quot;&gt;cpp&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;License&quot; [3917-] --&gt;</description>
            <author>Philipp Wagner</author>
        <category>opencv</category>
        <category>cpp</category>
            <pubDate>Fri, 03 Feb 2012 02:20:16 +0100</pubDate>
        </item>
        <item>
            <title>blog:pca_in_opencv</title>
            <link>http://www.bytefish.de/blog/pca_in_opencv</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;pca_in_opencv&quot; id=&quot;pca_in_opencv&quot;&gt;pca in opencv&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.bytefish.de/_detail/blog/eigenfaces.png?id=blog%3Apca_in_opencv&quot; class=&quot;media&quot; title=&quot;blog:eigenfaces.png&quot;&gt;&lt;img src=&quot;http://www.bytefish.de/_media/blog/eigenfaces.png?w=200&quot; class=&quot;medialeft&quot; align=&quot;left&quot; title=&quot;Beautiful Faces!&quot; alt=&quot;Beautiful Faces!&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
There are hardly any useful examples on how to do a &lt;a href=&quot;http://en.wikipedia.org/wiki/Principal_component_analysis&quot; class=&quot;urlextern&quot; title=&quot;http://en.wikipedia.org/wiki/Principal_component_analysis&quot;  rel=&quot;nofollow&quot;&gt;Principal Component Analysis&lt;/a&gt; (PCA) with the OpenCV2 C++ &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt;. Maybe because it&amp;#039;s simple for everyone else, but it took me some time to figure it out. So here is an example! 
&lt;/p&gt;

&lt;p&gt;
Most people will search for the &lt;a href=&quot;http://en.wikipedia.org/wiki/Eigenface&quot; class=&quot;urlextern&quot; title=&quot;http://en.wikipedia.org/wiki/Eigenface&quot;  rel=&quot;nofollow&quot;&gt;Eigenfaces&lt;/a&gt; algorithm, so the example also shows how to display the average image and the first three principal components. Principal components are the eigenvectors sorted descending by their eigenvalue. The Eigenvectors have the same length as your images and resemble (ghostly) faces, hence the name &lt;em&gt;Eigenfaces&lt;/em&gt; in the Eigenfaces algorithm (&lt;em&gt;surprise!&lt;/em&gt;).
&lt;/p&gt;

&lt;p&gt;
I provide an Eigenfaces implementation for OpenCV2 C++ at:

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://github.com/bytefish/opencv/tree/master/eigenfaces&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/bytefish/opencv/tree/master/eigenfaces&quot;  rel=&quot;nofollow&quot;&gt;https://github.com/bytefish/opencv/tree/master/eigenfaces&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

The following is the &lt;a href=&quot;https://github.com/bytefish/opencv/blob/master/eigenfaces/README.markdown&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/bytefish/opencv/blob/master/eigenfaces/README.markdown&quot;  rel=&quot;nofollow&quot;&gt;README.markdown&lt;/a&gt; of the project, which should answer most questions. I am also providing you a simple example how to use the PCA, if you are not interested in the Eigenfaces.
&lt;/p&gt;

&lt;p&gt;
German readers are also welcomed to have a look at a document &lt;a href=&quot;http://www.martinovsky.net&quot; class=&quot;urlextern&quot; title=&quot;http://www.martinovsky.net&quot;  rel=&quot;nofollow&quot;&gt;Filip&lt;/a&gt; and I wrote on a similar topic: &lt;a href=&quot;http://www.bytefish.de/pdf/eigenfaces.pdf&quot; class=&quot;urlextern&quot; title=&quot;http://www.bytefish.de/pdf/eigenfaces.pdf&quot;  rel=&quot;nofollow&quot;&gt;pdf/eigenfaces.pdf&lt;/a&gt;. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;pca in opencv&quot; [1-1399] --&gt;
&lt;h2&gt;&lt;a name=&quot;githubcombytefishopencveigenfaces&quot; id=&quot;githubcombytefishopencveigenfaces&quot;&gt;github.com/bytefish/opencv/eigenfaces&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

This project implements the Eigenfaces method as described in: Turk and Pentland, “Eigenfaces for recognition.”, Journal of Cognitive Neuroscience
3 (1991), 71–86.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;github.com/bytefish/opencv/eigenfaces&quot; [1400-1617] --&gt;
&lt;h3&gt;&lt;a name=&quot;building_the_project&quot; id=&quot;building_the_project&quot;&gt;Building the Project&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

This project comes as a &lt;a href=&quot;http://www.cmake.org&quot; class=&quot;urlextern&quot; title=&quot;http://www.cmake.org&quot;  rel=&quot;nofollow&quot;&gt;CMake project&lt;/a&gt;, so compiling the project is as easy as writing (assuming you are in this folder):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
philipp@mango:~/some/dir/eigenfaces$ mkdir build
philipp@mango:~/some/dir/eigenfaces$ cd build
philipp@mango:~/some/dir/eigenfaces/build$ cmake ..
philipp@mango:~/some/dir/eigenfaces/build$ make
philipp@mango:~/some/dir/eigenfaces/build$ ./eigenfaces filename.ext&lt;/pre&gt;
&lt;p&gt;
And if you are in Windows using &lt;a href=&quot;http://www.mingw.org&quot; class=&quot;urlextern&quot; title=&quot;http://www.mingw.org&quot;  rel=&quot;nofollow&quot;&gt;MinGW&lt;/a&gt; it may look like this:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
C:\some\dir\eigenfaces&amp;#62; mkdir build
C:\some\dir\eigenfaces&amp;#62; cd build
C:\some\dir\eigenfaces\build&amp;#62; cmake -G &quot; MinGW Makefiles &quot; ..
C:\some\dir\eigenfaces\build&amp;#62; mingw32-make
C:\some\dir\eigenfaces\build&amp;#62; eigenfaces.exe filename.ext&lt;/pre&gt;
&lt;p&gt;
You probably have to set the &lt;em&gt;OpenCV_DIR&lt;/em&gt; variable if it wasn&amp;#039;t added by your installation, see &lt;a href=&quot;https://github.com/bytefish/opencv/blob/master/eigenfaces/CMakeLists.txt#L5&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/bytefish/opencv/blob/master/eigenfaces/CMakeLists.txt#L5&quot;  rel=&quot;nofollow&quot;&gt;Line 5 in the CMakeLists.txt&lt;/a&gt; how to do this. If you have problems working with CMake or installing OpenCV, you probably want to read my guide on &lt;a href=&quot;http://www.bytefish.de/blog/face_recognition_with_opencv2&quot; class=&quot;urlextern&quot; title=&quot;http://www.bytefish.de/blog/face_recognition_with_opencv2&quot;  rel=&quot;nofollow&quot;&gt;Face Recognition with OpenCV2&lt;/a&gt;. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Building the Project&quot; [1618-2829] --&gt;
&lt;h3&gt;&lt;a name=&quot;using_the_project&quot; id=&quot;using_the_project&quot;&gt;Using the Project&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

The project comes with an example, please have a look at the &lt;a href=&quot;https://github.com/bytefish/opencv/blob/master/eigenfaces/src/main.cpp&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/bytefish/opencv/blob/master/eigenfaces/src/main.cpp&quot;  rel=&quot;nofollow&quot;&gt;main.cpp&lt;/a&gt; on how to use the classes. You need some data to make the examples work, sorry but I really can&amp;#039;t include those face databases in my repository. I have thoroughly commented the code and reworked it lately, to make its usage simpler. So if anything regarding the classes is unclear, please read the comments.
&lt;/p&gt;

&lt;p&gt;
In the example I use a CSV file to read in the data, it&amp;#039;s the easiest solution I can think of right now. However, if you know a simpler solution please ping me about it. Basically all the CSV file needs to contain are lines composed of a &lt;em&gt;filename&lt;/em&gt; followed by a &lt;em&gt;;&lt;/em&gt; followed by the &lt;em&gt;label&lt;/em&gt; (as &lt;strong&gt;integer number&lt;/strong&gt;), making up a line like this: &lt;em&gt;/path/to/image.ext;0&lt;/em&gt;.
&lt;/p&gt;

&lt;p&gt;
Think of the _label_ as the subject (the person) this image belongs to, so same subjects (persons) should have the same &lt;em&gt;label&lt;/em&gt;. An example CSV file for the &lt;a href=&quot;http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html&quot; class=&quot;urlextern&quot; title=&quot;http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html&quot;  rel=&quot;nofollow&quot;&gt;AT&amp;amp;T Facedatabase&lt;/a&gt; is &lt;a href=&quot;https://github.com/bytefish/opencv/blob/master/eigenfaces/at.txt&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/bytefish/opencv/blob/master/eigenfaces/at.txt&quot;  rel=&quot;nofollow&quot;&gt;given here&lt;/a&gt;, which looks like this (assuming I&amp;#039;ve extracted the database to &lt;em&gt;/home/philipp/facerec/data/at&lt;/em&gt;, the file is without &lt;em&gt;…&lt;/em&gt; of course):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
/home/philipp/facerec/data/at/s1/1.pgm ;0
/home/philipp/facerec/data/at/s1/2.pgm;0
...
/home/philipp/facerec/data/at/s2/1.pgm;1
/home/philipp/facerec/data/at/s2/2.pgm;1
...
/home/philipp/facerec/data/at/s40/1.pgm;39
/home/philipp/facerec/data/at/s40/2.pgm;39&lt;/pre&gt;
&lt;p&gt;
Once you have a CSV file with &lt;strong&gt;valid&lt;/strong&gt; &lt;em&gt;filenames&lt;/em&gt; and &lt;em&gt;labels&lt;/em&gt;, you can run the demo by simply starting the demo with the path to the CSV file as parameter:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
./eigenfaces /path/to/your/csvfile.ext&lt;/pre&gt;
&lt;p&gt;
Or if you are in Windows:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
eigenfaces.exe /path/to/your/csvfile.ext&lt;/pre&gt;
&lt;/div&gt;
&lt;!-- SECTION &quot;Using the Project&quot; [2830-4737] --&gt;
&lt;h3&gt;&lt;a name=&quot;license&quot; id=&quot;license&quot;&gt;License&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

All code is put under a &lt;a href=&quot;http://www.opensource.org/licenses/bsd-license&quot; class=&quot;urlextern&quot; title=&quot;http://www.opensource.org/licenses/bsd-license&quot;  rel=&quot;nofollow&quot;&gt;BSD license&lt;/a&gt;, so feel free to use it for your projects.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;License&quot; [4738-4887] --&gt;
&lt;h2&gt;&lt;a name=&quot;simple_example&quot; id=&quot;simple_example&quot;&gt;Simple Example&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#include &amp;lt;iostream&amp;gt;&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;#include &amp;quot;cv.h&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;#include &amp;quot;highgui.h&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;namespace&lt;/span&gt; std&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;namespace&lt;/span&gt; cv&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
Mat normalize&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;const&lt;/span&gt; Mat&lt;span class=&quot;sy3&quot;&gt;&amp;amp;&lt;/span&gt; src&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    Mat srcnorm&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    normalize&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;src, srcnorm, 0, 255, NORM_MINMAX, CV_8UC1&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; srcnorm&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw4&quot;&gt;int&lt;/span&gt; main&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;int&lt;/span&gt; argc, &lt;span class=&quot;kw4&quot;&gt;char&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;argv&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    vector&lt;span class=&quot;sy1&quot;&gt;&amp;lt;&lt;/span&gt;Mat&lt;span class=&quot;sy1&quot;&gt;&amp;gt;&lt;/span&gt; db&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// load greyscale images (these are from http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html)&lt;/span&gt;
    db.&lt;span class=&quot;me1&quot;&gt;push_back&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;imread&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;s1/1.pgm&amp;quot;&lt;/span&gt;,0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    db.&lt;span class=&quot;me1&quot;&gt;push_back&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;imread&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;s1/2.pgm&amp;quot;&lt;/span&gt;,0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    db.&lt;span class=&quot;me1&quot;&gt;push_back&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;imread&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;s1/3.pgm&amp;quot;&lt;/span&gt;,0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    db.&lt;span class=&quot;me1&quot;&gt;push_back&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;imread&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;s2/1.pgm&amp;quot;&lt;/span&gt;,0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    db.&lt;span class=&quot;me1&quot;&gt;push_back&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;imread&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;s2/2.pgm&amp;quot;&lt;/span&gt;,0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    db.&lt;span class=&quot;me1&quot;&gt;push_back&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;imread&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;s2/3.pgm&amp;quot;&lt;/span&gt;,0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    db.&lt;span class=&quot;me1&quot;&gt;push_back&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;imread&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;s3/1.pgm&amp;quot;&lt;/span&gt;,0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    db.&lt;span class=&quot;me1&quot;&gt;push_back&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;imread&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;s3/2.pgm&amp;quot;&lt;/span&gt;,0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    db.&lt;span class=&quot;me1&quot;&gt;push_back&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;imread&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;s3/3.pgm&amp;quot;&lt;/span&gt;,0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    db.&lt;span class=&quot;me1&quot;&gt;push_back&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;imread&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;s4/1.pgm&amp;quot;&lt;/span&gt;,0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    db.&lt;span class=&quot;me1&quot;&gt;push_back&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;imread&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;s4/2.pgm&amp;quot;&lt;/span&gt;,0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    db.&lt;span class=&quot;me1&quot;&gt;push_back&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;imread&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;s4/3.pgm&amp;quot;&lt;/span&gt;,0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw4&quot;&gt;int&lt;/span&gt; total &lt;span class=&quot;sy1&quot;&gt;=&lt;/span&gt; db&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;0&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;rows&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt; db&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;0&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cols&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// build matrix (column)&lt;/span&gt;
    Mat mat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;total, db.&lt;span class=&quot;me1&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, CV_32FC1&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;int&lt;/span&gt; i &lt;span class=&quot;sy1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;sy1&quot;&gt;&amp;lt;&lt;/span&gt; db.&lt;span class=&quot;me1&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;sy2&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        Mat X &lt;span class=&quot;sy1&quot;&gt;=&lt;/span&gt; mat.&lt;span class=&quot;me1&quot;&gt;col&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;i&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
        db&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;reshape&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;1, total&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;col&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;convertTo&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;X, CV_32FC1, 1&lt;span class=&quot;sy2&quot;&gt;/&lt;/span&gt;255.&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// change to the number of principal components you want&lt;/span&gt;
    &lt;span class=&quot;kw4&quot;&gt;int&lt;/span&gt; numPrincipalComponents &lt;span class=&quot;sy1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// do pca&lt;/span&gt;
    PCA pca&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;mat, Mat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, CV_PCA_DATA_AS_COL, numPrincipalComponents&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    namedWindow&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;avg&amp;quot;&lt;/span&gt;, 1&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    namedWindow&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;pc1&amp;quot;&lt;/span&gt;, 1&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    namedWindow&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;pc2&amp;quot;&lt;/span&gt;, 1&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    namedWindow&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;pc3&amp;quot;&lt;/span&gt;, 1&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// mean face&lt;/span&gt;
    imshow&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;avg&amp;quot;&lt;/span&gt;, pca.&lt;span class=&quot;me1&quot;&gt;mean&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;reshape&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;1, db&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;0&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;rows&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// first three eigenfaces&lt;/span&gt;
    imshow&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;pc1&amp;quot;&lt;/span&gt;, normalize&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pca.&lt;span class=&quot;me1&quot;&gt;eigenvectors&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;row&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;reshape&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;1, db&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;0&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;rows&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    imshow&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;pc2&amp;quot;&lt;/span&gt;, normalize&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pca.&lt;span class=&quot;me1&quot;&gt;eigenvectors&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;row&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;1&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;reshape&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;1, db&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;0&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;rows&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
    imshow&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;pc3&amp;quot;&lt;/span&gt;, normalize&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pca.&lt;span class=&quot;me1&quot;&gt;eigenvectors&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;row&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;2&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;reshape&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;1, db&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;0&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;rows&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    waitKey&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://www.bytefish.de/tag/opencv?do=showtag&amp;amp;tag=tag%3Aopencv&quot; class=&quot;wikilink1&quot; title=&quot;tag:opencv&quot; rel=&quot;tag&quot;&gt;opencv&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Simple Example&quot; [4888-] --&gt;</description>
            <author>Philipp Wagner</author>
        <category>opencv</category>
            <pubDate>Fri, 03 Feb 2012 01:57:44 +0100</pubDate>
        </item>
        <item>
            <title>about</title>
            <link>http://www.bytefish.de/about</link>
            <description>
&lt;p&gt;

&lt;em&gt;… stalking me.&lt;/em&gt;
&lt;/p&gt;



&lt;h2&gt;&lt;a name=&quot;personal_links&quot; id=&quot;personal_links&quot;&gt;Personal Links&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.github.com/bytefish&quot; class=&quot;urlextern&quot; title=&quot;http://www.github.com/bytefish&quot;  rel=&quot;nofollow&quot;&gt;http://www.github.com/bytefish&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://plus.google.com/102725420896943303368&quot; class=&quot;urlextern&quot; title=&quot;https://plus.google.com/102725420896943303368&quot;  rel=&quot;nofollow&quot;&gt;https://plus.google.com/102725420896943303368&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Personal Links&quot; [33-145] --&gt;
&lt;h2&gt;&lt;a name=&quot;contact_details&quot; id=&quot;contact_details&quot;&gt;Contact Details&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Email: bytefish &lt;em&gt;AT&lt;/em&gt; gmx &lt;em&gt;DOT&lt;/em&gt; de&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Jabber: bytefish &lt;em&gt;AT&lt;/em&gt; gmx &lt;em&gt;DOT&lt;/em&gt; de&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Address: Check the WHOIS record.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.bytefish.de/_media/philipp_wagner.asc.gz&quot; class=&quot;media mediafile mf_gz&quot; title=&quot;philipp_wagner.asc.gz&quot;&gt;Public Key&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Contact Details&quot; [146-338] --&gt;
&lt;h2&gt;&lt;a name=&quot;links&quot; id=&quot;links&quot;&gt;Links&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;em&gt;(in (almost) no special order)&lt;/em&gt;

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.martinovsky.net&quot; class=&quot;urlextern&quot; title=&quot;http://www.martinovsky.net&quot;  rel=&quot;nofollow&quot;&gt;http://www.martinovsky.net&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://cschunk.blogspot.com&quot; class=&quot;urlextern&quot; title=&quot;http://cschunk.blogspot.com&quot;  rel=&quot;nofollow&quot;&gt;http://cschunk.blogspot.com&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.akahl.net&quot; class=&quot;urlextern&quot; title=&quot;http://www.akahl.net&quot;  rel=&quot;nofollow&quot;&gt;http://www.akahl.net&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://bertzer.dyndns.org/~bertzer/bertzer&quot; class=&quot;urlextern&quot; title=&quot;http://bertzer.dyndns.org/~bertzer/bertzer&quot;  rel=&quot;nofollow&quot;&gt;http://bertzer.dyndns.org/~bertzer/bertzer&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.kakaomilchkuh.de&quot; class=&quot;urlextern&quot; title=&quot;http://www.kakaomilchkuh.de&quot;  rel=&quot;nofollow&quot;&gt;http://www.kakaomilchkuh.de&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.stefan-heinze.com&quot; class=&quot;urlextern&quot; title=&quot;http://www.stefan-heinze.com&quot;  rel=&quot;nofollow&quot;&gt;http://www.stefan-heinze.com&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.christian-vogel.info&quot; class=&quot;urlextern&quot; title=&quot;http://www.christian-vogel.info&quot;  rel=&quot;nofollow&quot;&gt;http://www.christian-vogel.info&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.esgmuenster.de&quot; class=&quot;urlextern&quot; title=&quot;http://www.esgmuenster.de&quot;  rel=&quot;nofollow&quot;&gt;http://www.esgmuenster.de&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.sap.com/about/company/research/centers/dresden.epx&quot; class=&quot;urlextern&quot; title=&quot;http://www.sap.com/about/company/research/centers/dresden.epx&quot;  rel=&quot;nofollow&quot;&gt;http://www.sap.com/about/company/research/centers/dresden.epx&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.ipernity.com/home/21666&quot; class=&quot;urlextern&quot; title=&quot;http://www.ipernity.com/home/21666&quot;  rel=&quot;nofollow&quot;&gt;http://www.ipernity.com/home/21666&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://crsouza.blogspot.com&quot; class=&quot;urlextern&quot; title=&quot;http://crsouza.blogspot.com&quot;  rel=&quot;nofollow&quot;&gt;http://crsouza.blogspot.com&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.mblondel.org/journal/&quot; class=&quot;urlextern&quot; title=&quot;http://www.mblondel.org/journal/&quot;  rel=&quot;nofollow&quot;&gt;http://www.mblondel.org/journal/&lt;/a&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.vidarholen.net&quot; class=&quot;urlextern&quot; title=&quot;http://www.vidarholen.net&quot;  rel=&quot;nofollow&quot;&gt;http://www.vidarholen.net&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://littlesaiph.blogspot.com&quot; class=&quot;urlextern&quot; title=&quot;http://littlesaiph.blogspot.com&quot;  rel=&quot;nofollow&quot;&gt;http://littlesaiph.blogspot.com&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://okmij.org/ftp/&quot; class=&quot;urlextern&quot; title=&quot;http://okmij.org/ftp/&quot;  rel=&quot;nofollow&quot;&gt;http://okmij.org/ftp/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.neilvandyke.org&quot; class=&quot;urlextern&quot; title=&quot;http://www.neilvandyke.org&quot;  rel=&quot;nofollow&quot;&gt;http://www.neilvandyke.org&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.pawfal.org&quot; class=&quot;urlextern&quot; title=&quot;http://www.pawfal.org&quot;  rel=&quot;nofollow&quot;&gt;http://www.pawfal.org&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.matpalm.com&quot; class=&quot;urlextern&quot; title=&quot;http://www.matpalm.com&quot;  rel=&quot;nofollow&quot;&gt;http://www.matpalm.com&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://pdincau.wordpress.com&quot; class=&quot;urlextern&quot; title=&quot;http://pdincau.wordpress.com&quot;  rel=&quot;nofollow&quot;&gt;http://pdincau.wordpress.com&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.morethantechnical.com&quot; class=&quot;urlextern&quot; title=&quot;http://www.morethantechnical.com&quot;  rel=&quot;nofollow&quot;&gt;http://www.morethantechnical.com&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.learnyousomeerlang.com&quot; class=&quot;urlextern&quot; title=&quot;http://www.learnyousomeerlang.com&quot;  rel=&quot;nofollow&quot;&gt;http://www.learnyousomeerlang.com&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.igvita.com&quot; class=&quot;urlextern&quot; title=&quot;http://www.igvita.com&quot;  rel=&quot;nofollow&quot;&gt;http://www.igvita.com&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://felix.abecassis.me&quot; class=&quot;urlextern&quot; title=&quot;http://felix.abecassis.me&quot;  rel=&quot;nofollow&quot;&gt;http://felix.abecassis.me&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.fk-entwicklung.de&quot; class=&quot;urlextern&quot; title=&quot;http://www.fk-entwicklung.de&quot;  rel=&quot;nofollow&quot;&gt;http://www.fk-entwicklung.de&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Links&quot; [339-] --&gt;</description>
            <author>Philipp Wagner</author>
            <pubDate>Wed, 01 Feb 2012 20:34:51 +0100</pubDate>
        </item>
        <item>
            <title>blog:face_recognition_with_opencv2</title>
            <link>http://www.bytefish.de/blog/face_recognition_with_opencv2</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;face_recognition_with_opencv2&quot; id=&quot;face_recognition_with_opencv2&quot;&gt;face recognition with opencv2&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

I&amp;#039;ve recently uploaded some code to perform face recognition with OpenCV2 to &lt;a href=&quot;http://www.github.com/opencv&quot; class=&quot;urlextern&quot; title=&quot;http://www.github.com/opencv&quot;  rel=&quot;nofollow&quot;&gt;my github repository&lt;/a&gt;. Now if you research on face recognition you&amp;#039;ll soon notice there&amp;#039;s a &lt;a href=&quot;http://scholar.google.de/scholar?q=face+recognition&quot; class=&quot;urlextern&quot; title=&quot;http://scholar.google.de/scholar?q=face+recognition&quot;  rel=&quot;nofollow&quot;&gt;gigantic number of publications&lt;/a&gt;, but source code is very sparse. Since I&amp;#039;ve got some positive feedback on &lt;a href=&quot;http://www.bytefish.de/pdf/machinelearning.pdf&quot; class=&quot;urlextern&quot; title=&quot;http://www.bytefish.de/pdf/machinelearning.pdf&quot;  rel=&quot;nofollow&quot;&gt;Machine Learning with OpenCV2&lt;/a&gt;, I thought I write a document on:

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.bytefish.de/pdf/facerec.pdf&quot; class=&quot;urlextern&quot; title=&quot;http://www.bytefish.de/pdf/facerec.pdf&quot;  rel=&quot;nofollow&quot;&gt;Face Recognition with OpenCV2 (pdf)&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

It&amp;#039;s the kind of guide I&amp;#039;ve wished for, when I was working myself into face recognition. It helps you with installing OpenCV2 on your machine and explains you how to build a project on Windows and Linux. Then the Eigenfaces and Fisherfaces method are explained and implemented with &lt;a href=&quot;http://www.gnu.org/software/octave/&quot; class=&quot;urlextern&quot; title=&quot;http://www.gnu.org/software/octave/&quot;  rel=&quot;nofollow&quot;&gt;GNU Octave&lt;/a&gt;/&lt;a href=&quot;http://www.mathworks.com&quot; class=&quot;urlextern&quot; title=&quot;http://www.mathworks.com&quot;  rel=&quot;nofollow&quot;&gt;MATLAB&lt;/a&gt; and &lt;a href=&quot;http://opencv.willowgarage.com&quot; class=&quot;urlextern&quot; title=&quot;http://opencv.willowgarage.com&quot;  rel=&quot;nofollow&quot;&gt;OpenCV2&lt;/a&gt;&amp;#039;s C++ &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt;. A basic knowledge of C++ is assumed and administrative rights for your machine are a plus. I&amp;#039;ve decided to use MinGW (the GCC port for Windows) as C/C++ compiler for Windows, because it works great with OpenCV2 and comes under terms of a public license (please see &lt;a href=&quot;http://www.mingw.org/license&quot; class=&quot;urlextern&quot; title=&quot;http://www.mingw.org/license&quot;  rel=&quot;nofollow&quot;&gt;mingw.org/license&lt;/a&gt; for details). If someone writes a the install guide for Visual Studio 2008/2010, I would be happy to add it to the document. I guess you only have to generate an Visual Studio project with CMake, open and compile it; but I don&amp;#039;t have Visual Studio right now to check it.
&lt;/p&gt;

&lt;p&gt;
The code and document is released under a BSD license, so feel free to use it for your commercial and academic projects. Note: the latest version of the document and code can be obtained from the projects github repository:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.github.com/bytefish/facerecognition_guide&quot; class=&quot;urlextern&quot; title=&quot;http://www.github.com/bytefish/facerecognition_guide&quot;  rel=&quot;nofollow&quot;&gt;http://www.github.com/bytefish/facerecognition_guide&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://www.bytefish.de/tag/opencv?do=showtag&amp;amp;tag=tag%3Aopencv&quot; class=&quot;wikilink1&quot; title=&quot;tag:opencv&quot; rel=&quot;tag&quot;&gt;opencv&lt;/a&gt;,
	&lt;a href=&quot;http://www.bytefish.de/tag/octave?do=showtag&amp;amp;tag=tag%3Aoctave&quot; class=&quot;wikilink1&quot; title=&quot;tag:octave&quot; rel=&quot;tag&quot;&gt;octave&lt;/a&gt;,
	&lt;a href=&quot;http://www.bytefish.de/tag/cpp?do=showtag&amp;amp;tag=tag%3Acpp&quot; class=&quot;wikilink1&quot; title=&quot;tag:cpp&quot; rel=&quot;tag&quot;&gt;cpp&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
</description>
            <author>Philipp Wagner</author>
        <category>opencv</category>
        <category>octave</category>
        <category>cpp</category>
            <pubDate>Wed, 01 Feb 2012 19:27:38 +0100</pubDate>
        </item>
        <item>
            <title>documents</title>
            <link>http://www.bytefish.de/documents</link>
            <description>
&lt;p&gt;
&lt;em&gt;… will be translated one day.&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Here are some documents we wrote. Some of them are in german, but they&amp;#039;ll get translated as soon as possible. Non-german readers are highly encouraged to look at all the beautiful pictures inside! If you have a question, just mail one of us.

&lt;/p&gt;
&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 leftalign&quot;&gt; Title      &lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; Author(s) &lt;/th&gt;&lt;th class=&quot;col2 leftalign&quot;&gt; Document       &lt;/th&gt;&lt;th class=&quot;col3 leftalign&quot;&gt; Notes          &lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Face Recognition with OpenCV2 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Philipp Wagner &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;http://www.bytefish.de/pdf/facerec.pdf&quot; class=&quot;urlextern&quot; title=&quot;http://www.bytefish.de/pdf/facerec.pdf&quot;  rel=&quot;nofollow&quot;&gt;PDF (English)&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; The kind of guide I&amp;#039;ve wished for, when I was working myself into face recognition. Helps you with installing OpenCV2 and building projects on Windows and Linux. The Eigenfaces and Fisherfaces method are explained and implemented with GNU Octave/MATLAB and OpenCV2&amp;#039;s C++ &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt;. Sourcecode and latest revision available at &lt;a href=&quot;https://github.com/bytefish/facerecognition_guide&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/bytefish/facerecognition_guide&quot;  rel=&quot;nofollow&quot;&gt;github.com/bytefish/facerecognition_guide&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; Statistical Machine Learning with OpenCV   &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Philipp Wagner (but thanks to Filip for his amazing inkscape skills!) &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;http://www.bytefish.de/pdf/machinelearning.pdf&quot; class=&quot;urlextern&quot; title=&quot;http://www.bytefish.de/pdf/machinelearning.pdf&quot;  rel=&quot;nofollow&quot;&gt;PDF (English)&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; Is an introduction into statistical machine learning with OpenCV. It contains a guide for setting up OpenCV on Windows and Linux. A brief introduction and code for Support Vector Machines and Multilayer Perceptrons is given. Good to get started with OpenCV and its Machine Learning library! &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; Einfuehrung in MapReduce    &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Filip Martinovský, Philipp Wagner, Stefan Heinze &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;http://www.bytefish.de/pdf/mapreduce.pdf&quot; class=&quot;urlextern&quot; title=&quot;http://www.bytefish.de/pdf/mapreduce.pdf&quot;  rel=&quot;nofollow&quot;&gt;PDF (German)&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;Is an introduction to MapReduce and gives some ideas on how to implement it in Erlang.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; Distributed Hash Tables   &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Filip Martinovský, Philipp Wagner &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; &lt;a href=&quot;http://www.bytefish.de/pdf/dht.pdf&quot; class=&quot;urlextern&quot; title=&quot;http://www.bytefish.de/pdf/dht.pdf&quot;  rel=&quot;nofollow&quot;&gt;PDF (German)&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;Reads like a tutorial on how to implement distributed hash tables. Chord, a protocol for distributed hash tables, is described and implemented in Erlang.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Gesichtserkennung mit Eigenfaces &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Filip Martinovský, Philipp Wagner &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;http://www.bytefish.de/pdf/eigenfaces.pdf&quot; class=&quot;urlextern&quot; title=&quot;http://www.bytefish.de/pdf/eigenfaces.pdf&quot;  rel=&quot;nofollow&quot;&gt;PDF (German)&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;Explains face recognition with Eigenfaces. Shows the performance of a prototype on two datasets (Yale Facedatabase A, AT&amp;amp;T Dataset). &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;acronym title=&quot;Extensible Markup Language&quot;&gt;XML&lt;/acronym&gt; Processing in Scheme &lt;/td&gt;&lt;td class=&quot;col1&quot; rowspan=&quot;2&quot;&gt; Filip Martinovský, Philipp Wagner &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;http://www.bytefish.de/pdf/xml_with_scheme.pdf&quot; class=&quot;urlextern&quot; title=&quot;http://www.bytefish.de/pdf/xml_with_scheme.pdf&quot;  rel=&quot;nofollow&quot;&gt;PDF (English)&lt;/a&gt;&lt;/td&gt;&lt;td class=&quot;col3&quot; rowspan=&quot;2&quot;&gt;Explains Xml processing in Scheme: &lt;a href=&quot;http://okmij.org/ftp/Scheme/SXML.html&quot; class=&quot;urlextern&quot; title=&quot;http://okmij.org/ftp/Scheme/SXML.html&quot;  rel=&quot;nofollow&quot;&gt;SXML&lt;/a&gt;. Rather old.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;acronym title=&quot;Extensible Markup Language&quot;&gt;XML&lt;/acronym&gt; Verarbeitung in Scheme &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;http://www.bytefish.de/pdf/xml_mit_scheme.pdf&quot; class=&quot;urlextern&quot; title=&quot;http://www.bytefish.de/pdf/xml_mit_scheme.pdf&quot;  rel=&quot;nofollow&quot;&gt;PDF (German)&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://www.bytefish.de/tag/erlang?do=showtag&amp;amp;tag=tag%3Aerlang&quot; class=&quot;wikilink1&quot; title=&quot;tag:erlang&quot; rel=&quot;tag&quot;&gt;erlang&lt;/a&gt;,
	&lt;a href=&quot;http://www.bytefish.de/tag/distributed_hashtable?do=showtag&amp;amp;tag=tag%3Adistributed_hashtable&quot; class=&quot;wikilink1&quot; title=&quot;tag:distributed_hashtable&quot; rel=&quot;tag&quot;&gt;distributed hashtable&lt;/a&gt;,
	&lt;a href=&quot;http://www.bytefish.de/tag/mapreduce?do=showtag&amp;amp;tag=tag%3Amapreduce&quot; class=&quot;wikilink1&quot; title=&quot;tag:mapreduce&quot; rel=&quot;tag&quot;&gt;mapreduce&lt;/a&gt;,
	&lt;a href=&quot;http://www.bytefish.de/tag/eigenfaces?do=showtag&amp;amp;tag=tag%3Aeigenfaces&quot; class=&quot;wikilink1&quot; title=&quot;tag:eigenfaces&quot; rel=&quot;tag&quot;&gt;eigenfaces&lt;/a&gt;,
	&lt;a href=&quot;http://www.bytefish.de/tag/xml?do=showtag&amp;amp;tag=tag%3Axml&quot; class=&quot;wikilink1&quot; title=&quot;tag:xml&quot; rel=&quot;tag&quot;&gt;xml&lt;/a&gt;,
	&lt;a href=&quot;http://www.bytefish.de/tag/scheme?do=showtag&amp;amp;tag=tag%3Ascheme&quot; class=&quot;wikilink1&quot; title=&quot;tag:scheme&quot; rel=&quot;tag&quot;&gt;scheme&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;
</description>
            <author>Philipp Wagner</author>
        <category>erlang</category>
        <category>distributed_hashtable</category>
        <category>mapreduce</category>
        <category>eigenfaces</category>
        <category>xml</category>
        <category>scheme</category>
            <pubDate>Tue, 31 Jan 2012 23:11:39 +0100</pubDate>
        </item>
    </channel>
</rss>

