<?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>Sun, 20 May 2012 02:53:54 +0200</lastBuildDate>
        <generator>FeedCreator 1.7.2-ppt DokuWiki</generator>
        <image>
            <url>http://www.bytefish.de/lib/tpl/minimal/images/favicon.ico</url>
            <title>http://www.bytefish.de</title>
            <link>http://www.bytefish.de/</link>
        </image>
        <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 class=&quot;sectionedit1&quot;&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;!-- EDIT1 SECTION &quot;Personal Links&quot; [33-145] --&gt;
&lt;h2 class=&quot;sectionedit2&quot;&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;!-- EDIT2 SECTION &quot;Contact Details&quot; [146-338] --&gt;
&lt;h2 class=&quot;sectionedit3&quot;&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;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://maggi.cc/&quot; class=&quot;urlextern&quot; title=&quot;http://maggi.cc/&quot;  rel=&quot;nofollow&quot;&gt;http://maggi.cc/&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.alexdodge.com/&quot; class=&quot;urlextern&quot; title=&quot;http://www.alexdodge.com/&quot;  rel=&quot;nofollow&quot;&gt;http://www.alexdodge.com/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT3 SECTION &quot;Links&quot; [339-] --&gt;</description>
            <pubDate>Sun, 08 Apr 2012 19:40:14 +0200</pubDate>
        </item>
        <item>
            <title>blog</title>
            <link>http://www.bytefish.de/blog</link>
            <description>

&lt;div class=&quot;hfeed&quot;&gt;
&lt;!-- EDIT4 PLUGIN_INCLUDE_START &quot;blog:corrected_facerec_demo.cpp_for_opencv_2.4&quot; [0-] --&gt;&lt;div class=&quot;plugin_include_content plugin_include__blog:corrected_facerec_demo.cpp_for_opencv_2.4&quot;&gt;

&lt;h1&gt;&lt;a name=&quot;corrected_facerec_democpp_for_opencv_24&quot; id=&quot;corrected_facerec_democpp_for_opencv_24&quot; href=&quot;/blog/corrected_facerec_demo.cpp_for_opencv_2.4&quot; title=&quot;corrected facerec_demo.cpp for OpenCV 2.4&quot;&gt;corrected facerec_demo.cpp for OpenCV 2.4&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
There&amp;#039;s a small bug in the facerec_demo.cpp, that ships with OpenCV 2.4. I&amp;#039;ll put a corrected version upstream as soon as possible. However, here&amp;#039;s a corrected version if you can&amp;#039;t wait:
&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://bytefish.de/dev/cpp/facerec_demo.cpp&quot; class=&quot;urlextern&quot; title=&quot;http://bytefish.de/dev/cpp/facerec_demo.cpp&quot;  rel=&quot;nofollow&quot;&gt;http://bytefish.de/dev/cpp/facerec_demo.cpp&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT5 PLUGIN_INCLUDE_END &quot;blog:corrected_facerec_demo.cpp_for_opencv_2.4&quot; [0-] --&gt;&lt;!-- EDIT6 PLUGIN_INCLUDE_EDITBTN &quot;blog:corrected_facerec_demo.cpp_for_opencv_2.4&quot; [0-] --&gt;&lt;div class=&quot;inclmeta level1&quot;&gt;
	&lt;abbr class=&quot;published&quot; title=&quot;2012-05-04T20:11:31Z&quot;&gt;2012/05/04 20:11&lt;/abbr&gt;
	&amp;middot; &lt;span class=&quot;vcard author&quot;&gt;&lt;a href=&quot;http://www.bytefish.de/user/philipp_wagner&quot; class=&quot;wikilink1 url fn&quot; title=&quot;user:philipp_wagner&quot;&gt;Philipp Wagner&lt;/a&gt;&lt;/span&gt;
	&amp;middot; &lt;span class=&quot;comment&quot;&gt;&lt;a href=&quot;http://www.bytefish.de/blog/corrected_facerec_demo.cpp_for_opencv_2.4#discussion__section&quot; class=&quot;wikilink1&quot; title=&quot;blog:corrected_facerec_demo.cpp_for_opencv_2.4#discussion__section&quot;&gt;0&amp;nbsp;Comments&lt;/a&gt;&lt;/span&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=opencv&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;!-- EDIT  [-] --&gt;&lt;/div&gt;
&lt;!-- EDIT7 PLUGIN_INCLUDE_START &quot;blog:opencv_visual_studio_and_libfacerec&quot; [0-] --&gt;&lt;div class=&quot;plugin_include_content plugin_include__blog:opencv_visual_studio_and_libfacerec&quot;&gt;

&lt;h1&gt;&lt;a name=&quot;opencv_visual_studio_and_libfacerec&quot; id=&quot;opencv_visual_studio_and_libfacerec&quot; href=&quot;/blog/opencv_visual_studio_and_libfacerec&quot; title=&quot;opencv, visual studio and libfacerec&quot;&gt;opencv, visual studio and libfacerec&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
I&amp;#039;ve got a lot of mails from people, who have problems to use OpenCV with Microsoft Visual Studio 2008/2010. While I think it&amp;#039;s unbelievably easy by using CMake, I am going to explain how to build the libfacerec demo without using CMake. I have illustrated each step with screenshots and detailed explanation, so it&amp;#039;s easy for you to follow. I am going to use Microsoft Windows 7, Microsoft Visual Studio 2010 and OpenCV 2.3.1 in this tutorial.
&lt;/p&gt;

&lt;/div&gt;

&lt;h2 class=&quot;sectionedit9&quot;&gt;&lt;a name=&quot;setting_up_opencv&quot; id=&quot;setting_up_opencv&quot;&gt;Setting up OpenCV&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
First of all you&amp;#039;ll need OpenCV. For this tutorial I suggest to download the OpenCV Superpack 2.3.1, which is available as OpenCV-2.3.1-win-superpack.exe 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;http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.3.1/&quot; class=&quot;urlextern&quot; title=&quot;http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.3.1/&quot;  rel=&quot;nofollow&quot;&gt;http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.3.1/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
There are a lot of other ways to install OpenCV, so please consult the &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;http://opencv.willowgarage.com/wiki/&lt;/a&gt; if you don&amp;#039;t like the suggested one. The Superpack itself is not an installer, but a self-extracting archive. It contains the pre-built OpenCV library for VC9 (Microsoft Visual Studio 2008), VC10 (Microsoft Visual Studio 2010) and MinGW to mention a few. You&amp;#039;ll only need the VC10 binaries for this tutorial.
&lt;/p&gt;

&lt;p&gt;
Double-click the OpenCV-2.3.1-win-superpack.exe and select a folder to extract to. I&amp;#039;ll choose &lt;strong&gt;D:\projects&lt;/strong&gt; in this example:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.bytefish.de/_detail/blog/installer_path.jpg?id=blog&quot; class=&quot;media&quot; title=&quot;blog:installer_path.jpg&quot;&gt;&lt;img src=&quot;http://www.bytefish.de/_media/blog/installer_path.jpg?w=400&quot; class=&quot;mediacenter&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
The OpenCV superpack is no installer, so you&amp;#039;ll need to manually add the OpenCV libraries to the DLL search path of Windows. The search paths of Windows are given in the PATH environment variable, which is a list of the directories to search, each separated by a semicolon.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT9 SECTION &quot;Setting up OpenCV&quot; [498-1620] --&gt;
&lt;h3 class=&quot;sectionedit10&quot;&gt;&lt;a name=&quot;windows_vista_and_windows_7_users&quot; id=&quot;windows_vista_and_windows_7_users&quot;&gt;Windows Vista and Windows 7 users&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; From the Desktop (or Start Menu), right-click My Computer and click Properties.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Click Advanced System Settings link in the left column.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; In the System Properties window click the Environment Variables button.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; In the Environment Variables window, highlight the Path variable in the Systems Variable section and click the Edit button. In the PATH variable each search path is separated with a semicolon.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; At the end of the line add the following directories:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; D:\projects\opencv\build\x86\vc10\bin&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; D:\projects\opencv\build\common\tbb\ia32\vc10&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
So you have to append a line like this to the existing PATH: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;;D:\projects\opencv\build\x86\vc10\bin;D:\projects\opencv\build\common\tbb\ia32\vc10&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT10 SECTION &quot;Windows Vista and Windows 7 users&quot; [1621-2401] --&gt;
&lt;h3 class=&quot;sectionedit11&quot;&gt;&lt;a name=&quot;windows_2000_and_windows_xp_users&quot; id=&quot;windows_2000_and_windows_xp_users&quot;&gt;Windows 2000 and Windows XP users&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; From the Desktop, right-click My Computer and click Properties.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; In the System Properties window, click on the Advanced tab.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; In the Advanced section, click the Environment Variables button.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; In the Environment Variables window, highlight the Path variable in the Systems Variable section and click the Edit button. In the PATH variable each search path is separated with a semicolon.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; At the end of the line add the following directories: &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; D:\projects\opencv\build\x86\vc10\bin&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; D:\projects\opencv\build\common\tbb\ia32\vc10&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
So you have to append a line like this to the existing PATH: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;;D:\projects\opencv\build\x86\vc10\bin;D:\projects\opencv\build\common\tbb\ia32\vc10&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT11 SECTION &quot;Windows 2000 and Windows XP users&quot; [2402-3164] --&gt;
&lt;h2 class=&quot;sectionedit12&quot;&gt;&lt;a name=&quot;getting_libfacerec&quot; id=&quot;getting_libfacerec&quot;&gt;Getting libfacerec&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Next you&amp;#039;ll need to download libfacerec, which is available from:
&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/libfacerec&quot; class=&quot;urlextern&quot; title=&quot;http://www.github.com/bytefish/libfacerec&quot;  rel=&quot;nofollow&quot;&gt;http://www.github.com/bytefish/libfacerec&lt;/a&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
If you don&amp;#039;t know how to clone a github repository with git, then you can download the source from:
&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/libfacerec/downloads&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/bytefish/libfacerec/downloads&quot;  rel=&quot;nofollow&quot;&gt;https://github.com/bytefish/libfacerec/downloads&lt;/a&gt; (&lt;a href=&quot;https://github.com/bytefish/libfacerec/zipball/master&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/bytefish/libfacerec/zipball/master&quot;  rel=&quot;nofollow&quot;&gt;zip&lt;/a&gt;, &lt;a href=&quot;https://github.com/bytefish/libfacerec/tarball/master&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/bytefish/libfacerec/tarball/master&quot;  rel=&quot;nofollow&quot;&gt;tar.gz&lt;/a&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Then extract the zip or tar.gz file to a folder of your choice, I am using &lt;strong&gt;D:\downloads\libfacerec&lt;/strong&gt; in this tutorial. If you are using an other folder, then just keep it consistent.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT12 SECTION &quot;Getting libfacerec&quot; [3165-3782] --&gt;
&lt;h2 class=&quot;sectionedit13&quot;&gt;&lt;a name=&quot;setting_up_visual_studio&quot; id=&quot;setting_up_visual_studio&quot;&gt;Setting up Visual Studio&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
You&amp;#039;ll now learn how to configure a Microsoft Visual Studio 10 C++ project with OpenCV. Parts might resemble the post by &lt;a href=&quot;http://stackoverflow.com/users/176769/karlphillip&quot; class=&quot;urlextern&quot; title=&quot;http://stackoverflow.com/users/176769/karlphillip&quot;  rel=&quot;nofollow&quot;&gt;karlphilipp&lt;/a&gt;, which also explains how to configure OpenCV 2.3 on Visual Studio 2010. I won&amp;#039;t reinvent the wheel, so you probably want to read hist post 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;http://stackoverflow.com/a/7014918/513875&quot; class=&quot;urlextern&quot; title=&quot;http://stackoverflow.com/a/7014918/513875&quot;  rel=&quot;nofollow&quot;&gt;http://stackoverflow.com/a/7014918/513875&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
The difference is, that I&amp;#039;ve decided to use pre-built Visual Studio 2010 (VC 10) libraries from the superpack. And I mention some pitfalls you&amp;#039;ll encounter when compiling libfacerec.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT13 SECTION &quot;Setting up Visual Studio&quot; [3783-4382] --&gt;
&lt;h3 class=&quot;sectionedit14&quot;&gt;&lt;a name=&quot;create_an_empty_project&quot; id=&quot;create_an_empty_project&quot;&gt;Create an Empty project&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Start Visual Studio and from the main menu select &lt;strong&gt;“File → New Project…“&lt;/strong&gt;. Then create an &lt;strong&gt;“Empty Project”&lt;/strong&gt;, name it &lt;strong&gt;libfacerec&lt;/strong&gt; and store it in &lt;strong&gt;D:\projects&lt;/strong&gt;:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.bytefish.de/_detail/blog/libfacerec_vs_new_proj.jpg?id=blog&quot; class=&quot;media&quot; title=&quot;blog:libfacerec_vs_new_proj.jpg&quot;&gt;&lt;img src=&quot;http://www.bytefish.de/_media/blog/libfacerec_vs_new_proj.jpg?w=400&quot; class=&quot;mediacenter&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT14 SECTION &quot;Create an Empty project&quot; [4383-4635] --&gt;
&lt;h3 class=&quot;sectionedit15&quot;&gt;&lt;a name=&quot;adding_the_libfacerec_headers_and_sources&quot; id=&quot;adding_the_libfacerec_headers_and_sources&quot;&gt;Adding the libfacerec headers and sources&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
First of all the libfacerec headers and sources are added to our solution. For this copy the libfacerec header files from your extracted archive in &lt;strong&gt;D:\downloads\libfacerec\include&lt;/strong&gt; to where your the solution is located in &lt;strong&gt;D:\projects\libfacerec\libfacerec&lt;/strong&gt;. Also copy the source files from &lt;strong&gt;D:\downloads\libfacerec\src&lt;/strong&gt; to &lt;strong&gt;D:\projects\libfacerec\libfacerec&lt;/strong&gt;. 
&lt;/p&gt;

&lt;p&gt;
Now add the files to the Microsoft Visual Studio solution. In the Solution Explorer right click on &lt;strong&gt;Header Files&lt;/strong&gt; and select &lt;strong&gt;Add → Existing Item…“&lt;/strong&gt;, then select all *.hpp files you&amp;#039;ve just copied. Do the same for the source files and right click on &lt;strong&gt;Source Files&lt;/strong&gt; and select all *.cpp files. 
&lt;/p&gt;

&lt;p&gt;
Your project now looks like this:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.bytefish.de/_detail/blog/libfacerec_added_files.jpg?id=blog&quot; class=&quot;media&quot; title=&quot;blog:libfacerec_added_files.jpg&quot;&gt;&lt;img src=&quot;http://www.bytefish.de/_media/blog/libfacerec_added_files.jpg?w=400&quot; class=&quot;mediacenter&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT15 SECTION &quot;Adding the libfacerec headers and sources&quot; [4636-5445] --&gt;
&lt;h3 class=&quot;sectionedit16&quot;&gt;&lt;a name=&quot;additional_include_directories&quot; id=&quot;additional_include_directories&quot;&gt;Additional Include Directories&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Your project doesn&amp;#039;t compile yet, because we didn&amp;#039;t configure OpenCV. The first step is to set the additional include directories for our project. Go to the &lt;strong&gt;Project Properties&lt;/strong&gt; by either right click on your project and select Properties or by pressing Alt + F7, in the new window do the following:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; From the &lt;strong&gt;Configuration&lt;/strong&gt; box (combo box in the top left), select &lt;strong&gt;All Configurations&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Open &lt;strong&gt;Configuration Properties → C/C++ → General&lt;/strong&gt; and edit the field &lt;strong&gt;Additional Include Directories&lt;/strong&gt; to add these 3 include paths:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; D:\projects\opencv\build\include&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; D:\projects\opencv\build\include\opencv&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; D:\projects\opencv\build\include\opencv2&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.bytefish.de/_detail/blog/libfacerec_c_cpp.jpg?id=blog&quot; class=&quot;media&quot; title=&quot;blog:libfacerec_c_cpp.jpg&quot;&gt;&lt;img src=&quot;http://www.bytefish.de/_media/blog/libfacerec_c_cpp.jpg?w=400&quot; class=&quot;mediacenter&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT16 SECTION &quot;Additional Include Directories&quot; [5446-6197] --&gt;
&lt;h3 class=&quot;sectionedit17&quot;&gt;&lt;a name=&quot;additional_library_directories_and_additional_dependencies&quot; id=&quot;additional_library_directories_and_additional_dependencies&quot;&gt;Additional Library Directories and Additional Dependencies&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Then we need to add the libraries to build against. Again in the &lt;strong&gt;Project Properties&lt;/strong&gt; Window do the following:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Add the path of the OpenCV libraries by &lt;strong&gt;Configuration Properties → Linker → General&lt;/strong&gt; and on the &lt;strong&gt;Additional Library Directories&lt;/strong&gt; field add:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; D:\projects\opencv\build\x86\vc10\lib&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Then go to &lt;strong&gt;Configuration Properties → Linker → Input&lt;/strong&gt; and in the &lt;strong&gt;Additional Dependencies&lt;/strong&gt; field add:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; opencv_highgui231.lib&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; opencv_core231.lib&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; opencv_imgproc231.lib&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.bytefish.de/_detail/blog/libfacerec_linker_input.jpg?id=blog&quot; class=&quot;media&quot; title=&quot;blog:libfacerec_linker_input.jpg&quot;&gt;&lt;img src=&quot;http://www.bytefish.de/_media/blog/libfacerec_linker_input.jpg?w=400&quot; class=&quot;mediacenter&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT17 SECTION &quot;Additional Library Directories and Additional Dependencies&quot; [6198-6810] --&gt;
&lt;h3 class=&quot;sectionedit18&quot;&gt;&lt;a name=&quot;build_libfacerec&quot; id=&quot;build_libfacerec&quot;&gt;Build libfacerec&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Finally libfacerec can be built.  We are linking against the libraries:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; opencv_core231.lib&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; opencv_highgui231.lib&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; opencv_imgproc231.lib&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Those libraries have no Debug symbols, so we build libfacerec with the Release Configuration:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.bytefish.de/_detail/blog/release_build.jpg?id=blog&quot; class=&quot;media&quot; title=&quot;blog:release_build.jpg&quot;&gt;&lt;img src=&quot;http://www.bytefish.de/_media/blog/release_build.jpg&quot; class=&quot;mediacenter&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Then build the project and its executable by simply selecting &lt;strong&gt;Build → Build Solution&lt;/strong&gt; (F7) from the Menu. And you should see:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.bytefish.de/_detail/blog/build.jpg?id=blog&quot; class=&quot;media&quot; title=&quot;blog:build.jpg&quot;&gt;&lt;img src=&quot;http://www.bytefish.de/_media/blog/build.jpg?w=400&quot; class=&quot;mediacenter&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Congratulations!
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT18 SECTION &quot;Build libfacerec&quot; [6811-7292] --&gt;
&lt;h2 class=&quot;sectionedit19&quot;&gt;&lt;a name=&quot;running_the_demo&quot; id=&quot;running_the_demo&quot;&gt;Running the Demo&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Now to the Eigenfaces Demo. You need some data to make the examples work, sorry but I really can&amp;#039;t include those face databases in my repository. First of all this. In the demo I have decided to read the images from a very simple CSV file. Why? Because it&amp;#039;s the simplest platform-independent approach I can think of. 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;strong&gt;filename&lt;/strong&gt; followed by a &lt;strong&gt;;&lt;/strong&gt; followed by the &lt;strong&gt;label&lt;/strong&gt; (as &lt;em&gt;integer number&lt;/em&gt;), making up a line like this: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;/path/to/image.ext;0&lt;/pre&gt;

&lt;p&gt;
Think of the &lt;strong&gt;label&lt;/strong&gt; as the subject (the person) this image belongs to, so same subjects (persons) should have the same &lt;strong&gt;label&lt;/strong&gt;. So let&amp;#039;s make up an example. Download the AT&amp;amp;T Facedatabase from &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; and the corresponding CSV file from &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;at.txt&lt;/a&gt;, which looks like this (file is without &lt;strong&gt;…&lt;/strong&gt; of course):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;./at/s1/1.pgm;0
./at/s1/2.pgm;0
...
./at/s2/1.pgm;1
./at/s2/2.pgm;1
...
./at/s40/1.pgm;39
./at/s40/2.pgm;39&lt;/pre&gt;

&lt;p&gt;
Imagine I have extracted the files to &lt;strong&gt;D:/data/at&lt;/strong&gt; and have downloaded the CSV file to &lt;strong&gt;D:/data/at.txt&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
Then I would simply Search &amp;amp; Replace &lt;strong&gt;./&lt;/strong&gt; with &lt;strong&gt;D:/data/&lt;/strong&gt;. You can do that in an editor of your choice, every sufficiently advanced editor can do this. Once you have a CSV file with &lt;em&gt;valid&lt;/em&gt; &lt;strong&gt;filenames&lt;/strong&gt; and &lt;strong&gt;labels&lt;/strong&gt;, you can run the demo by with the path to the CSV file as parameter:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;D:\projects\libfacerec\Release\libfacerec.exe D:/data/at.txt&lt;/pre&gt;

&lt;p&gt;
and you should see (Note I have switched to the Eigenfaces model in the demo. Latest version in trunk is Fisherfaces!):
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.bytefish.de/_detail/blog/eigenfaces.jpg?id=blog&quot; class=&quot;media&quot; title=&quot;blog:eigenfaces.jpg&quot;&gt;&lt;img src=&quot;http://www.bytefish.de/_media/blog/eigenfaces.jpg?w=400&quot; class=&quot;mediacenter&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
So yes. I am pretty sure all this also works in Microsoft Windows.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT19 SECTION &quot;Running the Demo&quot; [7293-] --&gt;&lt;!-- EDIT20 PLUGIN_INCLUDE_EDITBTN &quot;blog:opencv_visual_studio_and_libfacerec&quot; [0-] --&gt;&lt;div class=&quot;inclmeta level1&quot;&gt;
	&lt;abbr class=&quot;published&quot; title=&quot;2012-04-19T01:13:12Z&quot;&gt;2012/04/19 01:13&lt;/abbr&gt;
	&amp;middot; &lt;span class=&quot;vcard author&quot;&gt;&lt;a href=&quot;http://www.bytefish.de/user/philipp_wagner&quot; class=&quot;wikilink1 url fn&quot; title=&quot;user:philipp_wagner&quot;&gt;Philipp Wagner&lt;/a&gt;&lt;/span&gt;
	&amp;middot; &lt;span class=&quot;comment&quot;&gt;&lt;a href=&quot;http://www.bytefish.de/blog/opencv_visual_studio_and_libfacerec#discussion__section&quot; class=&quot;wikilink1&quot; title=&quot;blog:opencv_visual_studio_and_libfacerec#discussion__section&quot;&gt;0&amp;nbsp;Comments&lt;/a&gt;&lt;/span&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=opencv&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;!-- EDIT8 PLUGIN_INCLUDE_END &quot;blog:opencv_visual_studio_and_libfacerec&quot; [0-] --&gt;&lt;/div&gt;
&lt;!-- EDIT21 PLUGIN_INCLUDE_START &quot;blog:opencv_developer&quot; [0-] --&gt;&lt;div class=&quot;plugin_include_content plugin_include__blog:opencv_developer&quot;&gt;

&lt;h1&gt;&lt;a name=&quot;opencv_developer&quot; id=&quot;opencv_developer&quot; href=&quot;/blog/opencv_developer&quot; title=&quot;opencv developer&quot;&gt;opencv developer&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
I am now in the developers list of OpenCV: &lt;a href=&quot;http://code.opencv.org/projects/opencv&quot; class=&quot;urlextern&quot; title=&quot;http://code.opencv.org/projects/opencv&quot;  rel=&quot;nofollow&quot;&gt;http://code.opencv.org/projects/opencv&lt;/a&gt;. I&amp;#039;ll help maintaining and enhancing the contributed face recognition algorithms and I&amp;#039;ll work on the documentation. If you have any suggestions what&amp;#039;s missing in there, please let me know.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT22 PLUGIN_INCLUDE_END &quot;blog:opencv_developer&quot; [0-] --&gt;&lt;!-- EDIT23 PLUGIN_INCLUDE_EDITBTN &quot;blog:opencv_developer&quot; [0-] --&gt;&lt;div class=&quot;inclmeta level1&quot;&gt;
	&lt;abbr class=&quot;published&quot; title=&quot;2012-04-16T07:23:20Z&quot;&gt;2012/04/16 07:23&lt;/abbr&gt;
	&amp;middot; &lt;span class=&quot;vcard author&quot;&gt;&lt;a href=&quot;http://www.bytefish.de/user/philipp_wagner&quot; class=&quot;wikilink1 url fn&quot; title=&quot;user:philipp_wagner&quot;&gt;Philipp Wagner&lt;/a&gt;&lt;/span&gt;
	&amp;middot; &lt;span class=&quot;comment&quot;&gt;&lt;a href=&quot;http://www.bytefish.de/blog/opencv_developer#discussion__section&quot; class=&quot;wikilink1&quot; title=&quot;blog:opencv_developer#discussion__section&quot;&gt;0&amp;nbsp;Comments&lt;/a&gt;&lt;/span&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=opencv&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;!-- EDIT  [-] --&gt;&lt;/div&gt;
&lt;!-- EDIT24 PLUGIN_INCLUDE_START &quot;blog:aligning_face_images&quot; [0-] --&gt;&lt;div class=&quot;plugin_include_content plugin_include__blog:aligning_face_images&quot;&gt;

&lt;h1&gt;&lt;a name=&quot;aligning_face_images&quot; id=&quot;aligning_face_images&quot; href=&quot;/blog/aligning_face_images&quot; title=&quot;aligning face images&quot;&gt;aligning face images&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Some people have asked me how I&amp;#039;ve aligned the face images in my articles. Giving people my ImageMagick hack is embarrassing for me, so I&amp;#039;ve decided to rewrite it into a Python script. You don&amp;#039;t need to copy and paste it, as the script comes with the source folder of my &lt;a href=&quot;http://bytefish.de/blog/face_recognition_with_opencv2&quot; class=&quot;urlextern&quot; title=&quot;http://bytefish.de/blog/face_recognition_with_opencv2&quot;  rel=&quot;nofollow&quot;&gt;Guide on Face Recognition&lt;/a&gt;: &lt;a href=&quot;https://github.com/bytefish/facerecognition_guide/blob/master/src/py/crop_face.py&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/bytefish/facerecognition_guide/blob/master/src/py/crop_face.py&quot;  rel=&quot;nofollow&quot;&gt;src/py/crop_face.py&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
The code is really easy to use. To scale, rotate and crop the face image you just need to call &lt;em&gt;CropFace(image, eye_left, eye_right, offset_pct, dest_sz)&lt;/em&gt;, where:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;eye_left&lt;/em&gt; is the position of the left eye&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;eye_right&lt;/em&gt; is the position of the right eye&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;offset_pct&lt;/em&gt; is the percent of the image you want to keep next to the eyes (horizontal, vertical direction)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;dest_sz&lt;/em&gt; is the size of the output image&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
If you are using the same &lt;em&gt;offset_pct&lt;/em&gt; and &lt;em&gt;dest_sz&lt;/em&gt; for your images, they are all aligned at the eyes.
&lt;/p&gt;

&lt;/div&gt;

&lt;h2 class=&quot;sectionedit26&quot;&gt;&lt;a name=&quot;example&quot; id=&quot;example&quot;&gt;example&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Imagine we are given &lt;a href=&quot;http://en.wikipedia.org/wiki/File:Arnold_Schwarzenegger_edit%28ws%29.jpg&quot; class=&quot;urlextern&quot; title=&quot;http://en.wikipedia.org/wiki/File:Arnold_Schwarzenegger_edit%28ws%29.jpg&quot;  rel=&quot;nofollow&quot;&gt;this photo&lt;/a&gt; of Arnold Schwarzenegger, which is under a Public Domain license.
&lt;/p&gt;

&lt;p&gt;
The (x,y)-position of the eyes is approximately (252,364) for the left and (420,366) for the right eye. Now you only need to define the horizontal offset, vertical offset and the size your scaled, rotated &amp;amp; cropped face should have. Here are some examples:
&lt;/p&gt;
&lt;div class=&quot;table sectionedit27&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 leftalign&quot;&gt; Configuration       &lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; Cropped, Scaled, Rotated Face &lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 0.1 (10%), 0.1 (10%), (200,200) &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;http://www.bytefish.de/_detail/blog/arnie_10_10_200_200.jpg?id=blog&quot; class=&quot;media&quot; title=&quot;blog:arnie_10_10_200_200.jpg&quot;&gt;&lt;img src=&quot;http://www.bytefish.de/_media/blog/arnie_10_10_200_200.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 0.2 (20%), 0.2 (20%), (200,200) &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;http://www.bytefish.de/_detail/blog/arnie_20_20_200_200.jpg?id=blog&quot; class=&quot;media&quot; title=&quot;blog:arnie_20_20_200_200.jpg&quot;&gt;&lt;img src=&quot;http://www.bytefish.de/_media/blog/arnie_20_20_200_200.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 0.3 (30%), 0.3 (30%), (200,200) &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;http://www.bytefish.de/_detail/blog/arnie_30_30_200_200.jpg?id=blog&quot; class=&quot;media&quot; title=&quot;blog:arnie_30_30_200_200.jpg&quot;&gt;&lt;img src=&quot;http://www.bytefish.de/_media/blog/arnie_30_30_200_200.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; 0.2 (20%), 0.2 (20%), (70,70)   &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;http://www.bytefish.de/_detail/blog/arnie_20_20_70_70.jpg?id=blog&quot; class=&quot;media&quot; title=&quot;blog:arnie_20_20_70_70.jpg&quot;&gt;&lt;img src=&quot;http://www.bytefish.de/_media/blog/arnie_20_20_70_70.jpg&quot; class=&quot;mediacenter&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT27 TABLE [1494-1841] --&gt;
&lt;/div&gt;
&lt;!-- EDIT26 SECTION &quot;example&quot; [1039-1842] --&gt;
&lt;h2 class=&quot;sectionedit28&quot;&gt;&lt;a name=&quot;crop_facepy&quot; id=&quot;crop_facepy&quot;&gt;crop_face.py&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code Python&quot;&gt;&lt;span class=&quot;co1&quot;&gt;#!/usr/bin/env python&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Software License Agreement (BSD License)&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Copyright (c) 2012, Philipp Wagner&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# All rights reserved.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Redistribution and use in source and binary forms, with or without&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# modification, are permitted provided that the following conditions&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# are met:&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#  * Redistributions of source code must retain the above copyright&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#    notice, this list of conditions and the following disclaimer.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#  * Redistributions in binary form must reproduce the above&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#    copyright notice, this list of conditions and the following&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#    disclaimer in the documentation and/or other materials provided&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#    with the distribution.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#  * Neither the name of the author(s) nor the names of its&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#    contributors may be used to endorse or promote products derived&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#    from this software without specific prior written permission.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# &amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# POSSIBILITY OF SUCH DAMAGE.&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;sys&lt;/span&gt;, &lt;span class=&quot;kw3&quot;&gt;math&lt;/span&gt;, Image
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; Distance&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;p1,p2&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
  dx = p2&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; - p1&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
  dy = p2&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; - p1&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;math&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sqrt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dx&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;dx+dy&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;dy&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; ScaleRotateTranslate&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;image, angle, center = &lt;span class=&quot;kw2&quot;&gt;None&lt;/span&gt;, new_center = &lt;span class=&quot;kw2&quot;&gt;None&lt;/span&gt;, scale = &lt;span class=&quot;kw2&quot;&gt;None&lt;/span&gt;, resample=Image.&lt;span class=&quot;me1&quot;&gt;BICUBIC&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;scale &lt;span class=&quot;kw1&quot;&gt;is&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;center &lt;span class=&quot;kw1&quot;&gt;is&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; image.&lt;span class=&quot;me1&quot;&gt;rotate&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;angle=angle, resample=resample&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  nx,ny = x,y = center
  sx=sy=&lt;span class=&quot;nu0&quot;&gt;1.0&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; new_center:
    &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;nx,ny&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; = new_center
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; scale:
    &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sx,sy&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; = &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;scale, scale&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  cosine = &lt;span class=&quot;kw3&quot;&gt;math&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cos&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;angle&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  sine = &lt;span class=&quot;kw3&quot;&gt;math&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sin&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;angle&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  a = cosine/sx
  b = sine/sx
  c = x-nx&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;a-ny&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;b
  d = -sine/sy
  e = cosine/sy
  f = y-nx&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;d-ny&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;e
  &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; image.&lt;span class=&quot;me1&quot;&gt;transform&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;image.&lt;span class=&quot;me1&quot;&gt;size&lt;/span&gt;, Image.&lt;span class=&quot;me1&quot;&gt;AFFINE&lt;/span&gt;, &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;a,b,c,d,e,f&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, resample=resample&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; CropFace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;image, eye_left=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, eye_right=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, offset_pct=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.2&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0.2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, dest_sz = &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;70&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;70&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;co1&quot;&gt;# calculate offsets in original image&lt;/span&gt;
  offset_h = &lt;span class=&quot;kw3&quot;&gt;math&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;floor&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;offset_pct&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&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;sy0&quot;&gt;*&lt;/span&gt;dest_sz&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&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;
  offset_v = &lt;span class=&quot;kw3&quot;&gt;math&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;floor&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;offset_pct&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&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;sy0&quot;&gt;*&lt;/span&gt;dest_sz&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&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;co1&quot;&gt;# get the direction&lt;/span&gt;
  eye_direction = &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;eye_right&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; - eye_left&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;, eye_right&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; - eye_left&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&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;co1&quot;&gt;# calc rotation angle in radians&lt;/span&gt;
  rotation = -&lt;span class=&quot;kw3&quot;&gt;math&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;atan2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;eye_direction&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&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;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;eye_direction&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&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;#41;&lt;/span&gt;
  &lt;span class=&quot;co1&quot;&gt;# distance between them&lt;/span&gt;
  dist = Distance&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;eye_left, eye_right&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  &lt;span class=&quot;co1&quot;&gt;# calculate the reference eye-width&lt;/span&gt;
  reference = dest_sz&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; - &lt;span class=&quot;nu0&quot;&gt;2.0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;offset_h
  &lt;span class=&quot;co1&quot;&gt;# scale factor&lt;/span&gt;
  scale = &lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dist&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;/&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;reference&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  &lt;span class=&quot;co1&quot;&gt;# rotate original around the left eye&lt;/span&gt;
  image = ScaleRotateTranslate&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;image, center=eye_left, angle=rotation&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  &lt;span class=&quot;co1&quot;&gt;# crop the rotated image&lt;/span&gt;
  crop_xy = &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;eye_left&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; - scale&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;offset_h, eye_left&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; - scale&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;offset_v&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  crop_size = &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dest_sz&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;scale, dest_sz&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;scale&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  image = image.&lt;span class=&quot;me1&quot;&gt;crop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;crop_xy&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&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;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;crop_xy&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&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;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;crop_xy&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;+crop_size&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&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;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;crop_xy&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;+crop_size&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&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;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  &lt;span class=&quot;co1&quot;&gt;# resize it&lt;/span&gt;
  image = image.&lt;span class=&quot;me1&quot;&gt;resize&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dest_sz, Image.&lt;span class=&quot;me1&quot;&gt;ANTIALIAS&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; image
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; __name__ == &lt;span class=&quot;st0&quot;&gt;&amp;quot;__main__&amp;quot;&lt;/span&gt;:
  image =  Image.&lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;arnie.jpg&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  CropFace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;image, eye_left=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;252&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;364&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, eye_right=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;420&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;366&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, offset_pct=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.1&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0.1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, dest_sz=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;200&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;me1&quot;&gt;save&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;arnie_10_10_200_200.jpg&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  CropFace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;image, eye_left=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;252&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;364&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, eye_right=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;420&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;366&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, offset_pct=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.2&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0.2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, dest_sz=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;200&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;me1&quot;&gt;save&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;arnie_20_20_200_200.jpg&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  CropFace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;image, eye_left=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;252&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;364&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, eye_right=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;420&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;366&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, offset_pct=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.3&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0.3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, dest_sz=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;200&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;me1&quot;&gt;save&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;arnie_30_30_200_200.jpg&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  CropFace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;image, eye_left=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;252&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;364&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, eye_right=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;420&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;366&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, offset_pct=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.2&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0.2&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;me1&quot;&gt;save&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;arnie_20_20_70_70.jpg&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT28 SECTION &quot;crop_face.py&quot; [1843-] --&gt;&lt;!-- EDIT29 PLUGIN_INCLUDE_EDITBTN &quot;blog:aligning_face_images&quot; [0-] --&gt;&lt;div class=&quot;inclmeta level1&quot;&gt;
	&lt;abbr class=&quot;published&quot; title=&quot;2012-04-10T21:58:30Z&quot;&gt;2012/04/10 21:58&lt;/abbr&gt;
	&amp;middot; &lt;span class=&quot;vcard author&quot;&gt;&lt;a href=&quot;http://www.bytefish.de/user/philipp_wagner&quot; class=&quot;wikilink1 url fn&quot; title=&quot;user:philipp_wagner&quot;&gt;Philipp Wagner&lt;/a&gt;&lt;/span&gt;
	&amp;middot; &lt;span class=&quot;comment&quot;&gt;&lt;a href=&quot;http://www.bytefish.de/blog/aligning_face_images#discussion__section&quot; class=&quot;wikilink1&quot; title=&quot;blog:aligning_face_images#discussion__section&quot;&gt;0&amp;nbsp;Comments&lt;/a&gt;&lt;/span&gt;&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://www.bytefish.de/tag/python?do=showtag&amp;amp;tag=python&quot; class=&quot;wikilink1&quot; title=&quot;tag:python&quot; rel=&quot;tag&quot;&gt;python&lt;/a&gt;
	&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT25 PLUGIN_INCLUDE_END &quot;blog:aligning_face_images&quot; [0-] --&gt;&lt;/div&gt;
&lt;!-- EDIT30 PLUGIN_INCLUDE_START &quot;blog:face_recognition_in_ios_5&quot; [0-] --&gt;&lt;div class=&quot;plugin_include_content plugin_include__blog:face_recognition_in_ios_5&quot;&gt;

&lt;h1&gt;&lt;a name=&quot;face_recognition_in_ios_5&quot; id=&quot;face_recognition_in_ios_5&quot; href=&quot;/blog/face_recognition_in_ios_5&quot; title=&quot;face recognition in iOS 5&quot;&gt;face recognition in iOS 5&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.twitter.com/pcentieiro&quot; class=&quot;urlextern&quot; title=&quot;http://www.twitter.com/pcentieiro&quot;  rel=&quot;nofollow&quot;&gt;Pedro Centieiro&lt;/a&gt; notified me about his &lt;a href=&quot;http://www.apple.com/ios&quot; class=&quot;urlextern&quot; title=&quot;http://www.apple.com/ios&quot;  rel=&quot;nofollow&quot;&gt;Apple iOS 5&lt;/a&gt; face recognition project, called &lt;a href=&quot;https://github.com/pcentieiro/midian&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/pcentieiro/midian&quot;  rel=&quot;nofollow&quot;&gt;midian&lt;/a&gt;. The project uses &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;OpenCV&lt;/a&gt; (&amp;gt;2.0) and comes with an extensive &lt;a href=&quot;https://github.com/pcentieiro/midian/blob/master/README.md&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/pcentieiro/midian/blob/master/README.md&quot;  rel=&quot;nofollow&quot;&gt;README&lt;/a&gt;, which explains how to build the code:
&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://github.com/pcentieiro/midian&quot; class=&quot;urlextern&quot; title=&quot;http://github.com/pcentieiro/midian&quot;  rel=&quot;nofollow&quot;&gt;http://github.com/pcentieiro/midian&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
It includes parts of &lt;a href=&quot;https://github.com/bytefish/libfacerec&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/bytefish/libfacerec&quot;  rel=&quot;nofollow&quot;&gt;libfacerec&lt;/a&gt;, with tweaks to make it work for &lt;a href=&quot;http://www.apple.com/ios&quot; class=&quot;urlextern&quot; title=&quot;http://www.apple.com/ios&quot;  rel=&quot;nofollow&quot;&gt;Apple iOS 5&lt;/a&gt;. Thanks for this! 
&lt;/p&gt;

&lt;p&gt;
The project is a great start for anyone who wants to create an &lt;a href=&quot;http://www.apple.com/ios&quot; class=&quot;urlextern&quot; title=&quot;http://www.apple.com/ios&quot;  rel=&quot;nofollow&quot;&gt;Apple iOS 5&lt;/a&gt; project 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;OpenCV&lt;/a&gt;. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT31 PLUGIN_INCLUDE_END &quot;blog:face_recognition_in_ios_5&quot; [0-] --&gt;&lt;!-- EDIT32 PLUGIN_INCLUDE_EDITBTN &quot;blog:face_recognition_in_ios_5&quot; [0-] --&gt;&lt;div class=&quot;inclmeta level1&quot;&gt;
	&lt;abbr class=&quot;published&quot; title=&quot;2012-03-29T09:25:10Z&quot;&gt;2012/03/29 09:25&lt;/abbr&gt;
	&amp;middot; &lt;span class=&quot;vcard author&quot;&gt;&lt;a href=&quot;http://www.bytefish.de/user/philipp_wagner&quot; class=&quot;wikilink1 url fn&quot; title=&quot;user:philipp_wagner&quot;&gt;Philipp Wagner&lt;/a&gt;&lt;/span&gt;
	&amp;middot; &lt;span class=&quot;comment&quot;&gt;&lt;a href=&quot;http://www.bytefish.de/blog/face_recognition_in_ios_5#discussion__section&quot; class=&quot;wikilink1&quot; title=&quot;blog:face_recognition_in_ios_5#discussion__section&quot;&gt;0&amp;nbsp;Comments&lt;/a&gt;&lt;/span&gt;&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://www.bytefish.de/tag/ios?do=showtag&amp;amp;tag=ios&quot; class=&quot;wikilink1&quot; title=&quot;tag:ios&quot; rel=&quot;tag&quot;&gt;ios&lt;/a&gt;,
	&lt;a href=&quot;http://www.bytefish.de/tag/opencv?do=showtag&amp;amp;tag=opencv&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;!-- EDIT  [-] --&gt;&lt;/div&gt;
&lt;!-- EDIT33 PLUGIN_INCLUDE_START &quot;blog:libfacerec_now_merged_into_opencv&quot; [0-] --&gt;&lt;div class=&quot;plugin_include_content plugin_include__blog:libfacerec_now_merged_into_opencv&quot;&gt;

&lt;h1&gt;&lt;a name=&quot;libfacerec_now_merged_into_opencv&quot; id=&quot;libfacerec_now_merged_into_opencv&quot; href=&quot;/blog/libfacerec_now_merged_into_opencv&quot; title=&quot;libfacerec now merged into opencv&quot;&gt;libfacerec now merged into opencv&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.github.com/bytefish/libfacerec&quot; class=&quot;urlextern&quot; title=&quot;http://www.github.com/bytefish/libfacerec&quot;  rel=&quot;nofollow&quot;&gt;libfacerec&lt;/a&gt; has now been merged into the contrib module of OpenCV:
&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://code.opencv.org/projects/opencv/repository/revisions/7619&quot; class=&quot;urlextern&quot; title=&quot;http://code.opencv.org/projects/opencv/repository/revisions/7619&quot;  rel=&quot;nofollow&quot;&gt;http://code.opencv.org/projects/opencv/repository/revisions/7619&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Thanks a lot to &lt;a href=&quot;http://code.opencv.org/users/19&quot; class=&quot;urlextern&quot; title=&quot;http://code.opencv.org/users/19&quot;  rel=&quot;nofollow&quot;&gt;Vadim Pisarevsky&lt;/a&gt; for helping with it.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT34 PLUGIN_INCLUDE_END &quot;blog:libfacerec_now_merged_into_opencv&quot; [0-] --&gt;&lt;!-- EDIT35 PLUGIN_INCLUDE_EDITBTN &quot;blog:libfacerec_now_merged_into_opencv&quot; [0-] --&gt;&lt;div class=&quot;inclmeta level1&quot;&gt;
	&lt;abbr class=&quot;published&quot; title=&quot;2012-03-25T11:28:58Z&quot;&gt;2012/03/25 11:28&lt;/abbr&gt;
	&amp;middot; &lt;span class=&quot;vcard author&quot;&gt;&lt;a href=&quot;http://www.bytefish.de/user/philipp_wagner&quot; class=&quot;wikilink1 url fn&quot; title=&quot;user:philipp_wagner&quot;&gt;Philipp Wagner&lt;/a&gt;&lt;/span&gt;
	&amp;middot; &lt;span class=&quot;comment&quot;&gt;&lt;a href=&quot;http://www.bytefish.de/blog/libfacerec_now_merged_into_opencv#discussion__section&quot; class=&quot;wikilink1&quot; title=&quot;blog:libfacerec_now_merged_into_opencv#discussion__section&quot;&gt;0&amp;nbsp;Comments&lt;/a&gt;&lt;/span&gt;&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://www.bytefish.de/tag/libfacerec?do=showtag&amp;amp;tag=libfacerec&quot; class=&quot;wikilink1&quot; title=&quot;tag:libfacerec&quot; rel=&quot;tag&quot;&gt;libfacerec&lt;/a&gt;,
	&lt;a href=&quot;http://www.bytefish.de/tag/opencv?do=showtag&amp;amp;tag=opencv&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=cpp&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;!-- EDIT  [-] --&gt;&lt;/div&gt;
&lt;!-- EDIT36 PLUGIN_INCLUDE_START &quot;blog:libfacerec_update&quot; [0-] --&gt;&lt;div class=&quot;plugin_include_content plugin_include__blog:libfacerec_update&quot;&gt;

&lt;h1&gt;&lt;a name=&quot;libfacerec_update&quot; id=&quot;libfacerec_update&quot; href=&quot;/blog/libfacerec_update&quot; title=&quot;libfacerec update&quot;&gt;libfacerec update&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
I have just released version 0.02 of libfacerec, which is now available at &lt;a href=&quot;http://www.github.com/bytefish/libfacerec&quot; class=&quot;urlextern&quot; title=&quot;http://www.github.com/bytefish/libfacerec&quot;  rel=&quot;nofollow&quot;&gt;http://www.github.com/bytefish/libfacerec&lt;/a&gt;. libfacerec is a modern face recognition library for the OpenCV C++ &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; and comes with:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Eigenfaces as described in: Turk, M., and Pentland, A. “Eigenfaces for recognition.”. Journal of Cognitive Neuroscience 3 (1991), 71–86.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Fisherfaces as described in: Belhumeur, P. N., Hespanha, J., and Kriegman, D. “Eigenfaces vs. Fisherfaces: Recognition using class specific linear projection.”. IEEE Transactions on Pattern Analysis and Machine Intelligence 19, 7 (1997), 711–720.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Local Binary Patterns Histograms as described in: Ahonen, T., Hadid, A., and Pietikainen, M. “Face Recognition with Local Binary Patterns.”. Computer Vision - ECCV 2004 (2004), 469–481.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
The library was written for OpenCV 2.3.1 with the upcoming OpenCV 2.4 in mind, so I don&amp;#039;t support OpenCV versions earlier than 2.3.1. This project comes as a CMake project with a well-documented &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; and complete examples for:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Face Recognition with Eigenfaces, Fisherfaces, Local Binary Patterns Histograms&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://bytefish.de/dev/libfacerec/api/example/example_eigenfaces.html&quot; class=&quot;urlextern&quot; title=&quot;http://bytefish.de/dev/libfacerec/api/example/example_eigenfaces.html&quot;  rel=&quot;nofollow&quot;&gt;http://bytefish.de/dev/libfacerec/api/example/example_eigenfaces.html&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://bytefish.de/dev/libfacerec/api/example/example_fisherfaces.html&quot; class=&quot;urlextern&quot; title=&quot;http://bytefish.de/dev/libfacerec/api/example/example_fisherfaces.html&quot;  rel=&quot;nofollow&quot;&gt;http://bytefish.de/dev/libfacerec/api/example/example_fisherfaces.html&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://bytefish.de/dev/libfacerec/api/example/example_lbph.html&quot; class=&quot;urlextern&quot; title=&quot;http://bytefish.de/dev/libfacerec/api/example/example_lbph.html&quot;  rel=&quot;nofollow&quot;&gt;http://bytefish.de/dev/libfacerec/api/example/example_lbph.html&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Gender Classification (with Fisherfaces)&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://bytefish.de/dev/libfacerec/api/example/example_gender_classification.html&quot; class=&quot;urlextern&quot; title=&quot;http://bytefish.de/dev/libfacerec/api/example/example_gender_classification.html&quot;  rel=&quot;nofollow&quot;&gt;http://bytefish.de/dev/libfacerec/api/example/example_gender_classification.html&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ColorMaps in OpenCV&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://bytefish.de/dev/libfacerec/api/example/example_colormap.html&quot; class=&quot;urlextern&quot; title=&quot;http://bytefish.de/dev/libfacerec/api/example/example_colormap.html&quot;  rel=&quot;nofollow&quot;&gt;http://bytefish.de/dev/libfacerec/api/example/example_colormap.html&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
If you are interested in reading the whole documentation, I&amp;#039;ve uploaded the &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt; version to &lt;a href=&quot;http://www.bytefish.de/dev/libfacerec/&quot; class=&quot;urlextern&quot; title=&quot;http://www.bytefish.de/dev/libfacerec/&quot;  rel=&quot;nofollow&quot;&gt;http://www.bytefish.de/dev/libfacerec/&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT37 PLUGIN_INCLUDE_END &quot;blog:libfacerec_update&quot; [0-] --&gt;&lt;!-- EDIT38 PLUGIN_INCLUDE_EDITBTN &quot;blog:libfacerec_update&quot; [0-] --&gt;&lt;div class=&quot;inclmeta level1&quot;&gt;
	&lt;abbr class=&quot;published&quot; title=&quot;2012-03-22T18:28:11Z&quot;&gt;2012/03/22 18:28&lt;/abbr&gt;
	&amp;middot; &lt;span class=&quot;vcard author&quot;&gt;&lt;a href=&quot;http://www.bytefish.de/user/philipp_wagner&quot; class=&quot;wikilink1 url fn&quot; title=&quot;user:philipp_wagner&quot;&gt;Philipp Wagner&lt;/a&gt;&lt;/span&gt;
	&amp;middot; &lt;span class=&quot;comment&quot;&gt;&lt;a href=&quot;http://www.bytefish.de/blog/libfacerec_update#discussion__section&quot; class=&quot;wikilink1&quot; title=&quot;blog:libfacerec_update#discussion__section&quot;&gt;0&amp;nbsp;Comments&lt;/a&gt;&lt;/span&gt;&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://www.bytefish.de/tag/libfacerec?do=showtag&amp;amp;tag=libfacerec&quot; class=&quot;wikilink1&quot; title=&quot;tag:libfacerec&quot; rel=&quot;tag&quot;&gt;libfacerec&lt;/a&gt;,
	&lt;a href=&quot;http://www.bytefish.de/tag/opencv?do=showtag&amp;amp;tag=opencv&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=cpp&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;!-- EDIT  [-] --&gt;&lt;/div&gt;
&lt;!-- EDIT39 PLUGIN_INCLUDE_START &quot;blog:introducing_libfacerec&quot; [0-] --&gt;&lt;div class=&quot;plugin_include_content plugin_include__blog:introducing_libfacerec&quot;&gt;

&lt;h1&gt;&lt;a name=&quot;introducing_libfacerec&quot; id=&quot;introducing_libfacerec&quot; href=&quot;/blog/introducing_libfacerec&quot; title=&quot;introducing libfacerec&quot;&gt;introducing libfacerec&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
I&amp;#039;ve started working on a face recognition library for the OpenCV C++ &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt;: &lt;a href=&quot;https://github.com/bytefish/libfacerec&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/bytefish/libfacerec&quot;  rel=&quot;nofollow&quot;&gt;libfacerec&lt;/a&gt;. 
&lt;/p&gt;

&lt;p&gt;
The library is header-only and has no additional dependencies, so using it is as simple as adding it to your include path. The Eigenfaces and Fisherfaces methods have already been implemented and most parts of the library have been tested (finally!). A LBP-based face recognition is planned &amp;amp; almost completed, I just have to finish writing the tests for it.
&lt;/p&gt;

&lt;p&gt;
Please consider the library as &lt;strong&gt;Work In Progress&lt;/strong&gt;, there are probably some interface changes coming.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT40 PLUGIN_INCLUDE_END &quot;blog:introducing_libfacerec&quot; [0-] --&gt;&lt;!-- EDIT41 PLUGIN_INCLUDE_EDITBTN &quot;blog:introducing_libfacerec&quot; [0-] --&gt;&lt;div class=&quot;inclmeta level1&quot;&gt;
	&lt;abbr class=&quot;published&quot; title=&quot;2012-03-13T00:32:48Z&quot;&gt;2012/03/13 00:32&lt;/abbr&gt;
	&amp;middot; &lt;span class=&quot;vcard author&quot;&gt;&lt;a href=&quot;http://www.bytefish.de/user/philipp_wagner&quot; class=&quot;wikilink1 url fn&quot; title=&quot;user:philipp_wagner&quot;&gt;Philipp Wagner&lt;/a&gt;&lt;/span&gt;
	&amp;middot; &lt;span class=&quot;comment&quot;&gt;&lt;a href=&quot;http://www.bytefish.de/blog/introducing_libfacerec#discussion__section&quot; class=&quot;wikilink1&quot; title=&quot;blog:introducing_libfacerec#discussion__section&quot;&gt;0&amp;nbsp;Comments&lt;/a&gt;&lt;/span&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=opencv&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=cpp&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;!-- EDIT  [-] --&gt;&lt;/div&gt;
&lt;!-- EDIT42 PLUGIN_INCLUDE_START &quot;blog:page_update&quot; [0-] --&gt;&lt;div class=&quot;plugin_include_content plugin_include__blog:page_update&quot;&gt;

&lt;h1&gt;&lt;a name=&quot;page_update&quot; id=&quot;page_update&quot; href=&quot;/blog/page_update&quot; title=&quot;page update&quot;&gt;page update&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Sorry for the downtime this afternoon. I&amp;#039;ve updated to a recent &lt;a href=&quot;http://www.dokuwiki.org&quot; class=&quot;urlextern&quot; title=&quot;http://www.dokuwiki.org&quot;  rel=&quot;nofollow&quot;&gt;DokuWiki&lt;/a&gt; version, because the old one was ancient. Please contact me if you find any errors or dead links.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT43 PLUGIN_INCLUDE_END &quot;blog:page_update&quot; [0-] --&gt;&lt;!-- EDIT44 PLUGIN_INCLUDE_EDITBTN &quot;blog:page_update&quot; [0-] --&gt;&lt;div class=&quot;inclmeta level1&quot;&gt;
	&lt;abbr class=&quot;published&quot; title=&quot;2012-03-02T16:26:43Z&quot;&gt;2012/03/02 16:26&lt;/abbr&gt;
	&amp;middot; &lt;span class=&quot;vcard author&quot;&gt;&lt;a href=&quot;http://www.bytefish.de/user/philipp_wagner&quot; class=&quot;wikilink1 url fn&quot; title=&quot;user:philipp_wagner&quot;&gt;Philipp Wagner&lt;/a&gt;&lt;/span&gt;
	&amp;middot; &lt;span class=&quot;comment&quot;&gt;&lt;a href=&quot;http://www.bytefish.de/blog/page_update#discussion__section&quot; class=&quot;wikilink1&quot; title=&quot;blog:page_update#discussion__section&quot;&gt;0&amp;nbsp;Comments&lt;/a&gt;&lt;/span&gt;&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://www.bytefish.de/tag/update?do=showtag&amp;amp;tag=update&quot; class=&quot;wikilink1&quot; title=&quot;tag:update&quot; rel=&quot;tag&quot;&gt;update&lt;/a&gt;
	&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT  [-] --&gt;&lt;/div&gt;
&lt;!-- EDIT45 PLUGIN_INCLUDE_START &quot;blog:face_recognition_with_opencv2&quot; [0-] --&gt;&lt;div class=&quot;plugin_include_content plugin_include__blog:face_recognition_with_opencv2&quot;&gt;

&lt;h1&gt;&lt;a name=&quot;face_recognition_with_opencv2&quot; id=&quot;face_recognition_with_opencv2&quot; href=&quot;/blog/face_recognition_with_opencv2&quot; title=&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 pushed some code to perform face recognition with OpenCV2 into &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;my github repository&lt;/a&gt;. If you&amp;#039;ve ever researched on face recognition I am pretty sure you&amp;#039;ve noticed: 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 kept like a secret. 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_python.pdf&quot; class=&quot;urlextern&quot; title=&quot;http://www.bytefish.de/pdf/facerec_python.pdf&quot;  rel=&quot;nofollow&quot;&gt;Face Recognition with OpenCV2 (Python version, pdf)&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.bytefish.de/pdf/facerec_octave.pdf&quot; class=&quot;urlextern&quot; title=&quot;http://www.bytefish.de/pdf/facerec_octave.pdf&quot;  rel=&quot;nofollow&quot;&gt;Face Recognition with OpenCV2 (GNU Octave/MATLAB version, 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. The Eigenfaces and Fisherfaces method are explained in detail, prototyped with &lt;a href=&quot;http://www.python.org&quot; class=&quot;urlextern&quot; title=&quot;http://www.python.org&quot;  rel=&quot;nofollow&quot;&gt;Python&lt;/a&gt;,  &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 implemented with &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 checks 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 a 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&gt;
&lt;!-- EDIT46 PLUGIN_INCLUDE_END &quot;blog:face_recognition_with_opencv2&quot; [0-] --&gt;&lt;!-- EDIT47 PLUGIN_INCLUDE_EDITBTN &quot;blog:face_recognition_with_opencv2&quot; [0-] --&gt;&lt;div class=&quot;inclmeta level1&quot;&gt;
	&lt;abbr class=&quot;published&quot; title=&quot;2012-01-31T23:03:19Z&quot;&gt;2012/01/31 23:03&lt;/abbr&gt;
	&amp;middot; &lt;span class=&quot;vcard author&quot;&gt;&lt;a href=&quot;http://www.bytefish.de/user/philipp_wagner&quot; class=&quot;wikilink1 url fn&quot; title=&quot;user:philipp_wagner&quot;&gt;Philipp Wagner&lt;/a&gt;&lt;/span&gt;
	&amp;middot; &lt;span class=&quot;comment&quot;&gt;&lt;a href=&quot;http://www.bytefish.de/blog/face_recognition_with_opencv2#discussion__section&quot; class=&quot;wikilink1&quot; title=&quot;blog:face_recognition_with_opencv2#discussion__section&quot;&gt;5&amp;nbsp;Comments&lt;/a&gt;&lt;/span&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=opencv&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=octave&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=cpp&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;!-- EDIT  [-] --&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p class=&quot;centeralign&quot;&gt;
&lt;a href=&quot;http://www.bytefish.de/blog?first=10&quot; class=&quot;wikilink1&quot;&gt;Older entries &amp;gt;&amp;gt;&lt;/a&gt;
&lt;/p&gt;
</description>
            <pubDate>Tue, 05 Apr 2011 21:23:12 +0200</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;div class=&quot;table sectionedit48&quot;&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; rowspan=&quot;2&quot;&gt; Face Recognition with OpenCV2 &lt;/td&gt;&lt;td class=&quot;col1&quot; rowspan=&quot;2&quot;&gt; Philipp Wagner &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;http://www.bytefish.de/pdf/facerec_octave.pdf&quot; class=&quot;urlextern&quot; title=&quot;http://www.bytefish.de/pdf/facerec_octave.pdf&quot;  rel=&quot;nofollow&quot;&gt;PDF (GNU Octave/MATLAB version, English)&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot; rowspan=&quot;2&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 Python, 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&quot;&gt; &lt;a href=&quot;http://www.bytefish.de/pdf/facerec_python.pdf&quot; class=&quot;urlextern&quot; title=&quot;http://www.bytefish.de/pdf/facerec_python.pdf&quot;  rel=&quot;nofollow&quot;&gt;PDF (Python version, English)&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&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;row4&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;row5&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;row6&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;row7&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;row8&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&gt;
&lt;!-- EDIT48 TABLE [281-2605] --&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=erlang&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=distributed_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=mapreduce&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=eigenfaces&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=xml&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=scheme&quot; class=&quot;wikilink1&quot; title=&quot;tag:scheme&quot; rel=&quot;tag&quot;&gt;scheme&lt;/a&gt;,
	&lt;a href=&quot;http://www.bytefish.de/tag/opencv?do=showtag&amp;amp;tag=opencv&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=cpp&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;
</description>
        <category>erlang</category>
        <category>distributed_hashtable</category>
        <category>mapreduce</category>
        <category>eigenfaces</category>
        <category>xml</category>
        <category>scheme</category>
        <category>opencv</category>
        <category>cpp</category>
            <pubDate>Wed, 21 Mar 2012 09:59:28 +0200</pubDate>
        </item>
        <item>
            <title>home</title>
            <link>http://www.bytefish.de/home</link>
            <description>
&lt;p&gt;
Welcome to my page. It contains things I work on, a &lt;a href=&quot;http://www.bytefish.de/wiki&quot; class=&quot;wikilink1&quot; title=&quot;wiki&quot;&gt;wiki&lt;/a&gt;, a &lt;a href=&quot;http://www.bytefish.de/blog&quot; class=&quot;wikilink1&quot; title=&quot;blog&quot;&gt;blog&lt;/a&gt; and &lt;a href=&quot;http://www.bytefish.de/documents&quot; class=&quot;wikilink1&quot; title=&quot;documents&quot;&gt;documents&lt;/a&gt; I wrote. There are articles on &lt;a href=&quot;http://www.bytefish.de/doku.php?id=tag:erlang&amp;amp;do=showtag&amp;amp;tag=tag:erlang&quot; class=&quot;interwiki iw_this&quot; title=&quot;http://www.bytefish.de/doku.php?id=tag:erlang&amp;amp;do=showtag&amp;amp;tag=tag:erlang&quot;&gt;Erlang&lt;/a&gt;, &lt;a href=&quot;http://www.bytefish.de/doku.php?id=tag:opencv&amp;amp;do=showtag&amp;amp;tag=tag:opencv&quot; class=&quot;interwiki iw_this&quot; title=&quot;http://www.bytefish.de/doku.php?id=tag:opencv&amp;amp;do=showtag&amp;amp;tag=tag:opencv&quot;&gt;OpenCV&lt;/a&gt; and a lot of other things I had fun with.
&lt;/p&gt;

&lt;p&gt;
Enjoy your stay.
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit49&quot;&gt;&lt;a name=&quot;contact&quot; id=&quot;contact&quot;&gt;Contact&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&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 this domain&lt;/em&gt;&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;!-- EDIT49 SECTION &quot;Contact&quot; [315-] --&gt;</description>
            <pubDate>Thu, 10 Feb 2011 09:40:18 +0200</pubDate>
        </item>
        <item>
            <title>legal</title>
            <link>http://www.bytefish.de/legal</link>
            <description>
&lt;p&gt;
&lt;em&gt;To non-geman visitors&lt;/em&gt;: German law requires me to publish this page.
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit50&quot;&gt;&lt;a name=&quot;impressum&quot; id=&quot;impressum&quot;&gt;Impressum&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Anschrift
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Philipp Wagner&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Löwenzahnweg 4&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 02906 Niesky&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Kontakt über Mail : bytefish-at-gmx.de
&lt;/p&gt;

&lt;p&gt;
Wenn Sie mich Kontaktieren wollen, bitte ersetzen Sie -at- durch ein @ zeichen.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT50 SECTION &quot;Impressum&quot; [75-288] --&gt;
&lt;h2 class=&quot;sectionedit51&quot;&gt;&lt;a name=&quot;haftung_fuer_inhalte&quot; id=&quot;haftung_fuer_inhalte&quot;&gt;Haftung für Inhalte&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT51 SECTION &quot;Haftung für Inhalte&quot; [289-1221] --&gt;
&lt;h2 class=&quot;sectionedit52&quot;&gt;&lt;a name=&quot;haftung_fuer_links&quot; id=&quot;haftung_fuer_links&quot;&gt;Haftung für Links&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT52 SECTION &quot;Haftung für Links&quot; [1222-1954] --&gt;
&lt;h2 class=&quot;sectionedit53&quot;&gt;&lt;a name=&quot;urheberrecht&quot; id=&quot;urheberrecht&quot;&gt;Urheberrecht&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind für den privaten und kommerziellen Gebrauch gestattet. Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT53 SECTION &quot;Urheberrecht&quot; [1955-2775] --&gt;
&lt;h2 class=&quot;sectionedit54&quot;&gt;&lt;a name=&quot;datenschutz&quot; id=&quot;datenschutz&quot;&gt;Datenschutz&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Die Nutzung unserer Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. Soweit auf unseren Seiten personenbezogene Daten (beispielsweise Name, Anschrift oder eMail-Adressen) erhoben werden, erfolgt dies, soweit möglich, stets auf freiwilliger Basis. Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben. Wir weisen darauf hin, dass die Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich.
&lt;/p&gt;

&lt;p&gt;
Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-Mails, vor.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT54 SECTION &quot;Datenschutz&quot; [2776-] --&gt;</description>
            <pubDate>Mon, 27 Dec 2010 17:25:27 +0200</pubDate>
        </item>
        <item>
            <title>wiki</title>
            <link>http://www.bytefish.de/wiki</link>
            <description>
&lt;p&gt;
&lt;em&gt;… is chaos I will order later.&lt;/em&gt;
&lt;/p&gt;

&lt;h2 class=&quot;sectionedit55&quot;&gt;&lt;a name=&quot;dealing_with_data&quot; id=&quot;dealing_with_data&quot;&gt;Dealing with data&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.bytefish.de/wiki/pca_lda_with_gnu_octave&quot; class=&quot;wikilink1&quot; title=&quot;wiki:pca_lda_with_gnu_octave&quot;&gt;Principal Component Analysis and Linear Discriminant Analysis with GNU Octave&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.bytefish.de/wiki/kpca&quot; class=&quot;wikilink1&quot; title=&quot;wiki:kpca&quot;&gt;Kernel Principal Component Analysis&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.bytefish.de/wiki/machine_learning_opencv&quot; class=&quot;wikilink1&quot; title=&quot;wiki:machine_learning_opencv&quot;&gt;Machine Learning with OpenCV&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT55 SECTION &quot;Dealing with data&quot; [39-310] --&gt;
&lt;h2 class=&quot;sectionedit56&quot;&gt;&lt;a name=&quot;misc&quot; id=&quot;misc&quot;&gt;Misc&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.bytefish.de/wiki/geo&quot; class=&quot;wikilink1&quot; title=&quot;wiki:geo&quot;&gt;Map Projections&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT56 SECTION &quot;Misc&quot; [311-363] --&gt;
&lt;h2 class=&quot;sectionedit57&quot;&gt;&lt;a name=&quot;general&quot; id=&quot;general&quot;&gt;General&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.bytefish.de/wiki/latex&quot; class=&quot;wikilink1&quot; title=&quot;wiki:latex&quot;&gt;LaTeX&lt;/a&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT57 SECTION &quot;General&quot; [364-412] --&gt;
&lt;h2 class=&quot;sectionedit58&quot;&gt;&lt;a name=&quot;programming_languages&quot; id=&quot;programming_languages&quot;&gt;Programming languages&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.bytefish.de/wiki/erlang&quot; class=&quot;wikilink1&quot; title=&quot;wiki:erlang&quot;&gt;Erlang&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.bytefish.de/wiki/python&quot; class=&quot;wikilink1&quot; title=&quot;wiki:python&quot;&gt;Python&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT58 SECTION &quot;Programming languages&quot; [413-505] --&gt;
&lt;h2 class=&quot;sectionedit59&quot;&gt;&lt;a name=&quot;pages_i_copy_and_paste_to&quot; id=&quot;pages_i_copy_and_paste_to&quot;&gt;Pages I copy and paste to&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.bytefish.de/wiki/android&quot; class=&quot;wikilink1&quot; title=&quot;wiki:android&quot;&gt;Android&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.bytefish.de/wiki/opencv&quot; class=&quot;wikilink1&quot; title=&quot;wiki:opencv&quot;&gt;OpenCV&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT59 SECTION &quot;Pages I copy and paste to&quot; [506-] --&gt;</description>
            <pubDate>Wed, 21 Mar 2012 18:09:03 +0200</pubDate>
        </item>
    </channel>
</rss>

