<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jestřáblog</title>
	<atom:link href="http://blog.jestrab.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jestrab.net</link>
	<description>život z ptačí perspektivy</description>
	<lastBuildDate>Tue, 24 Apr 2012 20:21:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Co přinesl rok 2011</title>
		<link>http://blog.jestrab.net/co-prinesl-rok-2011/</link>
		<comments>http://blog.jestrab.net/co-prinesl-rok-2011/#comments</comments>
		<pubDate>Sun, 26 Feb 2012 12:37:23 +0000</pubDate>
		<dc:creator>Petr Nohejl</dc:creator>
				<category><![CDATA[Jestřábí svět]]></category>
		<category><![CDATA[Nové]]></category>
		<category><![CDATA[cestování]]></category>
		<category><![CDATA[vzpomínky]]></category>
		<category><![CDATA[zážitky]]></category>

		<guid isPermaLink="false">http://blog.jestrab.net/?p=264</guid>
		<description><![CDATA[Po těžké pětileté dřině jsem získal tři písmenka před jméno. Úspěšně jsem obhájil svoji diplomovou práci a zakončil magisterské studium na FIT VUT v Brně. Promoci jsem oslavil s rodinou u Černého medvěda. Získal jsem několik ocenění za svoji diplomku na téma Rozšířená realita pro platformu Android. Vyhrál jsem 1. místo na studentské konferenci EEICT [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>Po těžké pětileté dřině jsem získal <abbr title="Ing.">tři písmenka</abbr> před jméno. Úspěšně jsem obhájil svoji <a href="https://market.android.com/details?id=net.jestrab.caramelle">diplomovou práci </a>a zakončil magisterské studium na <a href="http://www.fit.vutbr.cz/">FIT</a> <a href="http://www.vutbr.cz/">VUT</a> v Brně. Promoci jsem oslavil s rodinou u <a href="http://www.cerny-medved.cz/">Černého medvěda</a>.</li>
<li>Získal jsem několik ocenění za svoji diplomku na téma <em>Rozšířená realita pro platformu Android</em>. Vyhrál jsem 1. místo na studentské konferenci <a href="http://www.feec.vutbr.cz/EEICT/">EEICT 2011</a> v kategorii posterové sekce. Dále jsem získal 3. místo odborné poroty a 5. místo při hlasování veřejnosti na soutěži <a href="http://www.fit.vutbr.cz/events/McFIT/MediaDemo/2011/">MediaContest Multimedia Demo 2011</a>. Svoji práci jsem také prezentoval na konferenci <a href="http://www.openmobility.cz/">Openmobility</a>.</li>
<li>Byl jsem přijat na doktorské studium. Vybral jsem si disertační téma <em>Uživatelská rozhraní se zaměřením na 3D</em>. Vyzkoušel jsem si, jaké to je vést bakalářskou práci, vést semestrální projekt řeckého studenta, hlídat na půlsemestrální zkoušce, nebo přednášet cvika z Assembleru.</li>
<li>Opět jsme se s Jančou stěhovali. Z privátu u výstaviště jsme se přesunuli opodál a snad už na delší dobu. Dostali jsme taky pračku, takže už nebudu muset vozit hadry domů na vyprání <img src='http://blog.jestrab.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </li>
<li>Navštívil jsem <a href="http://www.google.com/events/developerday/2011/prague/">Google Developer Day 2011</a> &#8211; velmi zajímavé přednášky nejen o Androidu a luxusní pohoštění. Dále jsem navštívil <a href="http://gds2011.ceske-hry.cz/">Game Developers Session 2011</a> &#8211; poutavé přednášky o vývoji her. Zúčastnil jsem se několika setkání u <a href="https://twitter.com/#!/napyvo">Pyva</a>, jež organizuje Honza Javorek.</li>
<li>Nabral jsem mnoho nových zkušeností ve vývoji mobilních aplikací pro Android. Vyvinul jsem <a href="https://market.android.com/details?id=net.jestrab.slevolapka">Slevolapku</a> (agregátor slev), <a href="https://market.android.com/details?id=net.jestrab.caramelle">Caramelle Augmented Reality</a> (prohlížeč rozšířené reality), <a href="https://market.android.com/details?id=net.skimap">Ski Map</a> (lyžařský průvodce, ve spolupráci s Honzou Liškou), GTD (úkolníček napojený na IS Evidio, pro firmu Avito s.r.o), Kenvelo (katalog oblečení, pro firmu Avito s.r.o).</li>
<li>Pořídil jsem si nové domény. Jedna z nich je petrnohejl.cz, na které budu mít v budoucnu vlastní &#8222;business&#8220; prezentaci. Taky jsme se přestěhovali z amerického Hostmonster hostingu zpět do ČR na vlastní VPS.</li>
<li>Pořídil jsem si nový penobook, penodisk a dostal jsem (zapůjčen) svůj první tablet.</li>
<li>Postavil jsem vesmírnou loď <a href="http://fav.me/d3dqjy4">Enterprise</a>.</li>
<li>Byli jsme s Jančou na báječné <a href="http://janie.jestrab.net/dovolena-v-krkonosich/">dovolené v Krkonoších</a> a pokořili jsme Sněžku. Vyrazili jsme na <a href="http://janie.jestrab.net/v-meste-na-dunaji/">výlet do Bratislavy</a>, kde jsem byl prvně. Účasnil jsem se společně s peno clanem lyžovačky v Koutech nad Desnou, s Lázeňákem. Tradičně již potřetí jsme <a href="http://kajolinka.rajce.idnes.cz/31.7.-4.8.2011%2C_Vltava/">spluli Vltavu</a>, tentokrát na raftech. V největších hicech jsme vyrazili na <a href="http://janie.jestrab.net/vylet-na-palavu/">jednodenní tůru po Pálavských kopcích</a>. Taky jsme byli na <a href="http://janie.jestrab.net/vylet-do-marianskeho-udoli/">výletě v Mariánském údolí</a>, kde jsme se rozloučili s naší kámoškou Mendy. Na podzim jsme vyrazili do Valtic na <a href="http://janie.jestrab.net/slavnosti-burcaku-ve-valticich/">burčákové slavnosti</a> a cimbál. Janča našla moji vlastní kešku na Makové, když jsme byli na <a href="http://janie.jestrab.net/prazdniny-v-pribrami-v-bodech/">dovolené v Příbrami</a>. Uzřel jsem Květnou zahradu na <a href="http://janie.jestrab.net/prazdniny-v-kromerizi-v-bodech/">prázdninách v Kroměříži</a>. Navštívil jsem s rodinou pražskou ZOO.</li>
<li>Hudební kultura byla velmi slabá. Navštívili jsme jen jeden koncert &#8211; <a href="http://janie.jestrab.net/joe-bar-blues-street-hudebni-sklep-brno-30-9-2011/">Joe Bar Blues Street Band</a>, ale bylo to super.</li>
<li>Taneční kultura byla lepší. Zúčastnili jsme se plesu SU FIT na Semilasse a dechovky v Dělnickém domě, kde tentokrát nebyl Mýdlový děda. Zato jsme našli nového kámoše &#8211; leteckého inženýra, který nás pochválil za účast a koupil nám brambůrky.</li>
<li>Účastnil jsem se několika oslav, megapárty a akcí různého druhu: PenoFercoBration, Žánkovy narozky na Palačáku, Rychlá rota slaví narozky, Džem session, <a href="http://janie.jestrab.net/sushi-party/">Sushi párty</a>, <a href="http://janie.jestrab.net/taje-taje/">Gurmánský večer v Taji</a>, kolaudačka u Bakiho, <a href="http://janie.jestrab.net/jak-jsme-vitali-novy-rok/">Hororový Silvestr</a>, promoce bratrance Jana Sebastiana.</li>
<li>S klukama ze školy jsme se přihlásili do šifrovací hry <a href="http://www.tmou.cz/2011/index">Tmou</a>. Kvalifikací jsme prošli na divokou kartu a hru jsme skončili na 5. stage z 16ti, což je myslím úspěch. Ale možná jsme neměli tolik pít.</li>
<li>Navštívil jsem interaktivní výstavu <a href="http://janie.jestrab.net/poznavej-se-30-3-2011-brno/">Poznávej se</a>, jež organizoval IQ park Liberec. Dále jsem byl na <a href="http://janie.jestrab.net/cetnicke-humoresky-17-12-2011-brno/">výstavě o Četnických humoreskách</a>. Navštívil jsem festival cestovatelských filmů Go Kamera a <a href="http://janie.jestrab.net/sport-life-12-11-2011-brno-vystaviste/">festival Cyklocestování</a>, kde měli úžasnou přednášku manželé Hervéovi, kteří objeli celou zeměkouli na kole.</li>
<li>S Jančou jsme se naučili zacházet s FIMEM a <a href="http://janie.jestrab.net/nausnice-s-androidem-aneb-prvni-fimo-pokus/">vyrobili jsme Androidí náušnice</a>. Poslali jsme je do <a href="http://www.svetandroida.cz/vyhlaseni-vitezu-velke-narozeninove-souteze-s-lg-201102">soutěže na Svět Androida</a> a umístili se na 7. místě. Úkolem bylo ztvárnit originálním způsobem &#8222;Androida&#8220;. Vyhráli jsme kapacitní stylus.</li>
</ul>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.jestrab.net%2Fco-prinesl-rok-2011%2F&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="padding: 0px 0px; border:none; overflow:hidden; width:450px; height:70px;"></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://blog.jestrab.net/co-prinesl-rok-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sumec dle baštýře Jardy</title>
		<link>http://blog.jestrab.net/sumec-dle-bastyre-jardy/</link>
		<comments>http://blog.jestrab.net/sumec-dle-bastyre-jardy/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 23:33:34 +0000</pubDate>
		<dc:creator>Petr Nohejl</dc:creator>
				<category><![CDATA[Nové]]></category>
		<category><![CDATA[Vaření]]></category>
		<category><![CDATA[jídlo]]></category>
		<category><![CDATA[recept]]></category>

		<guid isPermaLink="false">http://blog.jestrab.net/?p=260</guid>
		<description><![CDATA[Zdravím všechny čtenáře Jestřáblogu a především všechny kuchařky a kuchaře! Po dlouhé době jsem se opět dokopal něco napsat na blog. V letním semestru jsem neměl tolik času kvůli diplomce a státnicím, tak se to pokusím teď napravit. Jelikož teď mám zase více času, pustil jsem se do vaření. Vyrazil jsem na ryby k panu [...]]]></description>
			<content:encoded><![CDATA[<p>Zdravím všechny čtenáře Jestřáblogu a především všechny kuchařky a kuchaře! Po dlouhé době jsem se opět dokopal něco napsat na blog. V letním semestru jsem neměl tolik času kvůli diplomce a státnicím, tak se to pokusím teď napravit. Jelikož teď mám zase více času, pustil jsem se do vaření. Vyrazil jsem na ryby k panu <a href="http://www.rybarna.cz/">Šopíkovi</a> a ulovil krásný kus sumečka. Janie vygooglila dobrý recept, tak jsem nakoupil suroviny a jal se vaření. Ještě bych rád upozornil, že baštýř není člověk, který rád baští, nýbrž člověk, starající se o rybníky. Bohužel žádného baštýře Jardu neznám, tak jsem si recept pracovně přejmenoval na &#8222;Sumec dle baštýře Jestřába&#8220;.</p>
<p>Budeme potřebovat následující ingredience:</p>
<ul>
<li>3/4 kg sumce</li>
<li>10 dkg slaniny</li>
<li>2 dl smetany</li>
<li>máslo</li>
<li>4 rajčata</li>
<li>2 papriky</li>
<li>2 cibule</li>
<li>10 středních brambor</li>
<li>koření na ryby</li>
<li>bylinky a další koření dle fantazie (provensál, šalvěj, bazalka)</li>
<li>mletá paprika</li>
<li>mouka</li>
<li>sůl</li>
</ul>
<p>Nejdříve oloupeme brambory a vcelku je uvaříme do poloměkka. Mezitím vymažeme pekáč či zapékací misku máslem. Dále si nakrájíme na kolečka rajčata, cibuli a uvařené brambory. Papriku nakrájíme na proužky. Na pekáč pokládáme kolečka brambor a na ně místy nějakou zeleninu. Na zeleninu položíme naporcované a okořeněné kousky ryby, zabalené v anglické slanině. Rybu také nezapomeneme posypat mletou paprikou a případně osolíme (není nezbytně nutné, protože koření na ryby je již slané). Navrch ještě položíme zbylou zeleninu, lístky šalvěje a kousky másla. Sumce pečeme v troubě asi 3/4 hodiny na střední výkon. Před koncem pečení zalijeme smetanou, kterou můžeme zahustit moukou. Můžeme přidat strouhaný sýr.</p>
<div id="attachment_262" class="wp-caption alignnone" style="width: 310px"><a title="Sumec dle baštýře Jardy na pekáči" href="http://blog.jestrab.net/wp-content/uploads/sumec-dle-bastyre-jardy-1.jpg" rel="lightbox"><img class="size-medium wp-image-262 " title="Sumec dle baštýře Jardy na pekáči" src="http://blog.jestrab.net/wp-content/uploads/sumec-dle-bastyre-jardy-1-300x225.jpg" alt="Sumec dle baštýře Jardy na pekáči" width="300" height="225" /></a><p class="wp-caption-text">Sumec dle baštýře Jardy na pekáči</p></div>
<p>Recept je poměrně jednoduchý a jídlo chutná výborně. Výhodou sumce je, že nemá vůbec žádné kosti. Já jsem jídlo připravoval ve 2 zapékacích miskách a bylo z toho 6 regulérních porcí. Baštýř Jestřáb vám přeje dobrou chuť!</p>
<div id="attachment_261" class="wp-caption alignnone" style="width: 310px"><a title="Sumeček na talíři" href="http://blog.jestrab.net/wp-content/uploads/sumec-dle-bastyre-jardy-2.jpg" rel="lightbox"><img class="size-medium wp-image-261 " title="Sumeček na talíři" src="http://blog.jestrab.net/wp-content/uploads/sumec-dle-bastyre-jardy-2-300x225.jpg" alt="Sumeček na talíři" width="300" height="225" /></a><p class="wp-caption-text">Sumeček na talíři</p></div>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.jestrab.net%2Fsumec-dle-bastyre-jardy%2F&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="padding: 0px 0px; border:none; overflow:hidden; width:450px; height:70px;"></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://blog.jestrab.net/sumec-dle-bastyre-jardy/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Apache a mod_python pro webový framework Django</title>
		<link>http://blog.jestrab.net/apache-a-mod_python-pro-webovy-framework-django/</link>
		<comments>http://blog.jestrab.net/apache-a-mod_python-pro-webovy-framework-django/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 23:06:06 +0000</pubDate>
		<dc:creator>Petr Nohejl</dc:creator>
				<category><![CDATA[Informační technologie]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[projekt]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[tutoriál]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://blog.jestrab.net/?p=190</guid>
		<description><![CDATA[Tento tutoriál stručně popisuje postup, jak nainstalovat, nastavit a zprovoznit webový server Apache 2.2 s modulem mod_python na systému GNU/Linux Ubuntu 9.10. Dále popisuje postup, jak nainstalovat databázi MySQL, webový framework Django a zprovoznit je na webovém serveru Apache. Na závěr je ukázán příklad vytvoření nového Django projektu a spuštění na serveru Apache. Tutoriál byl napsán [...]]]></description>
			<content:encoded><![CDATA[<p>Tento tutoriál stručně popisuje postup, jak nainstalovat, nastavit a zprovoznit webový server Apache 2.2 s modulem mod_python na systému GNU/Linux Ubuntu 9.10. Dále popisuje postup, jak nainstalovat databázi MySQL, webový framework Django a zprovoznit je na webovém serveru Apache. Na závěr je ukázán příklad vytvoření nového Django projektu a spuštění na serveru Apache. Tutoriál byl napsán v rámci 2. projektu do předmětu <abbr title="Přenos dat, počítačové sítě a protokoly">PDS</abbr>, který jsem absolvoval v letním semestru 2010.</p>
<h1>Úvod</h1>
<p><a href="http://www.apache.org/">Apache HTTP Server</a> je nejrozšířenější softwarový webový server s otevřeným kódem pro GNU/Linux, BSD, Solaris, Mac OS X, Microsoft Windows a další platformy. V současné době dodává prohlížečům na celém světě většinu internetových stránek. Výhody Apache: výkon a spolehlivost, široké možnosti, open source. [1]</p>
<p><a href="http://www.modpython.org/">Mod_python</a> je modul pro webový server Apache, který na serveru umožňuje spouštění skriptů, napsaných v jazyce Python.</p>
<p><a href="http://www.djangoproject.com/">Django</a> je vyspělý webový framework napsaný v jazyce Python, který podporuje rychlý vývoj a čisté, pragmatické konstrukce.</p>
<h1>Instalace Apache</h1>
<p>Instalaci serveru Apache 2.2 provedeme spuštěním připraveného dávkového skriptu <em>install_apache.sh</em>. Skript byl napsán pro operační systém GNU/Linux Ubuntu 9.10 a na jiných systémech není zaručena jeho funkčnost. Všechny skripty a příkazy je potřeba spouštět jako admin (příkazem sudo). Pro správnou instalaci je nutné mít na disku dostatek místa (minimálně 50 MB). Dále je potřeba mít správně nainstalován ANSI-C kompilátor, nástroj make a další potřebné utility, používané v instalačním skriptu.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#! /bin/bash</span>
<span style="color: #666666; font-style: italic;">#skript: install_apache.sh</span>
<span style="color: #666666; font-style: italic;">#popis: davkovy skript pro instalaci serveru Apache na OS GNU/Linux Ubuntu 9.10</span>
<span style="color: #666666; font-style: italic;">#autor: Petr Nohejl (xnohej00)</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#promenne</span>
<span style="color: #007800;">MIRROR</span>=http:<span style="color: #000000; font-weight: bold;">//</span>ftp.sh.cvut.cz<span style="color: #000000; font-weight: bold;">/</span>MIRRORS<span style="color: #000000; font-weight: bold;">/</span>apache<span style="color: #000000; font-weight: bold;">/</span>httpd<span style="color: #000000; font-weight: bold;">/</span>httpd-2.2.15.tar.gz
<span style="color: #007800;">VERSION</span>=httpd-2.2.15
<span style="color: #007800;">TEMP</span>=APACHE_INSTALL <span style="color: #666666; font-style: italic;">#pozor, tento adresar se nakonci skriptu maze!</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">cd</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #007800;">$TEMP</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #007800;">$TEMP</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #007800;">$MIRROR</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">gzip</span> <span style="color: #660033;">-d</span> <span style="color: #007800;">$VERSION</span>.tar.gz
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">tar</span> xvf <span style="color: #007800;">$VERSION</span>.tar
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #007800;">$VERSION</span>
.<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--prefix</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>apache2 <span style="color: #660033;">--enable-rewrite</span>=shared <span style="color: #660033;">--enable-speling</span>=shared <span style="color: #660033;">--with-mpm</span>=prefork
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">make</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span>
<span style="color: #7a0874; font-weight: bold;">cd</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-rf</span> <span style="color: #007800;">$TEMP</span></pre></div></div>

<p>Skript nejdříve vytvoří pracovní adresář a do něj stáhne (z internetu) pomocí nástroje <em>wget</em> zkomprimovaný instalační balíček. Ten rozbalí pomocí nástrojů <em>gzip</em> a <em>tar</em>. Dále spustí konfigurační skript <em>configure</em>, který připraví projekt ke kompilaci a vytvoří soubor <em>Makefile</em>. Konfigurace trvá delší dobu, a proto je třeba být trpělivý. Dále se projekt zkompiluje pomocí příkazu <em>make</em> a nainstaluje pomocí příkazu <em>make install</em>. Tyto operace rovněž trvají delší čas. Nakonec skript vymaže pracovní adresář. Pokud chcete mít nad vším vlastní kontrolu, je lepší instalovat server ručně (bez použití dávkového skriptu) a řídit se postupem, popsaným výše.</p>
<p>Při spouštění konfiguračního skriptu máme možnost nastavit mnoho parametrů. Pomocí přepínače <em>&#8211;prefix</em> nastavíme adresář, kam bude server nainstalován. Pomocí přepínače <em>&#8211;enable</em> můžeme nainstalovat volitelné moduly. Příznak <em>shared</em> značí, že modul je dynamicky sdílený (DSO). Pokud nainstalujeme nějaký modul s příznakem <em>shared</em>, automaticky se zapne podpora DSO (jinak ji musíme v případě potřeby explicitně zapnout příkazem <em>&#8211;enable-so</em> při konfiguraci). Přepínač <em>&#8211;with-mpm</em> nastavuje model procesů serveru. Parametrů existuje daleko více. Pro více informací o instalaci Apache navštivte dokumentaci: <a href="http://httpd.apache.org/docs/2.2/install.html">http://httpd.apache.org/docs/2.2/install.html</a>.</p>
<h1>Konfigurace Apache</h1>
<p>Po úspěšné instalaci je potřeba Apache správně nakonfigurovat. Konfigurační soubor s nastavením serveru se nachází v adresáři /usr/local/apache2/conf/httpd.conf. Soubor otevřeme v libovolném textovém editoru:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> gedit <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>conf<span style="color: #000000; font-weight: bold;">/</span>httpd.conf</pre></div></div>

<p>Nastavíme proměnnou <em>Listen</em> (na jakém portu a IP se bude naslouchat), odkomentujeme řádek se <em>ServerName </em>a nastavíme název serveru, nastavíme proměnnou DocumentRoot (kořenový adresář webových dokumentů). Dále můžeme nastavovat i další parametry serveru. Pro více informací o konfiguraci serveru navštivte dokumentaci: <a href="http://httpd.apache.org/docs/2.2/mod/directives.html">http://httpd.apache.org/docs/2.2/mod/directives.html</a>. Příklad změn v konfiguračním souboru pro základní nastavení:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Listen 127.0.0.1:<span style="color: #000000;">666</span>
ServerName www.example.com:<span style="color: #000000;">80</span>
DocumentRoot <span style="color: #ff0000;">&quot;/usr/local/apache2/htdocs&quot;</span></pre></div></div>

<p>Po každé změně konfiguračního souboru je nutné server restartovat.</p>
<h1>Spuštění serveru</h1>
<p>Pokud jsme server správně nainstalovali a nakonfigurovali, můžeme jej spustit a otestovat správnou funkčnost:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>apachectl –k start
firefox http:<span style="color: #000000; font-weight: bold;">//</span>127.0.0.1:<span style="color: #000000;">666</span><span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>apachectl –k restart
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>apachectl –k stop</pre></div></div>

<p>Pokud je vše v pořádku, měl by se nám v prohlížeči vypsat nápis &#8222;It works!&#8220;.</p>
<div id="attachment_253" class="wp-caption alignnone" style="width: 310px"><a title="Spuštění serveru Apache" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/apache-a-mod_python-pro-webovy-framework-django-1.jpg"><img class="size-medium wp-image-253 " title="Spuštění serveru Apache" src="http://blog.jestrab.net/wp-content/uploads/apache-a-mod_python-pro-webovy-framework-django-1-300x206.jpg" alt="Spuštění serveru Apache" width="300" height="206" /></a><p class="wp-caption-text">Spuštění serveru Apache</p></div>
<h1>Instalace a konfigurace mod_python</h1>
<p>Nyní nainstalujeme pro Apache modul mod_python. Před vlastní instalací modulu je potřeba mít správně nainstalován Python (minimálně verzi 2.3), balíček Python dev a samozřejmě Apache. Mod_python vyžaduje podporu DSO (Dynamic Shared Object), kterou lze nastavit při instalaci (konfiguraci) Apache. Instalaci mod_python můžeme provést buď pomocí utility <em>apt-get</em>, nebo si můžeme modul stáhnout z internetu, sestavit a nainstalovat. Druhá možnost je poněkud komplikovaná a proto zvolíme jednodušší cestu s pomocí <em>apt-get</em>, která udělá vše potřebné za nás.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> libapache2-mod-python</pre></div></div>

<p>Po úspěšné instalaci modulu budeme muset opět upravit konfigurační soubor serveru:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> gedit <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>conf<span style="color: #000000; font-weight: bold;">/</span>httpd.conf</pre></div></div>

<p>Přidáme příkaz <em>LoadModule</em> na správné místo v souboru (viz komentáře v konfiguračním souboru) pro načtení modulu a poté přidáme další příkazy pro nastavení handleru pro následné testování serveru (např. na konec konfiguračního souboru). Nezapomeneme provést restart serveru, aby se znovu načetl konfigurační soubor.</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #00007f;">LoadModule</span> python_module /usr/lib/apache2/modules/mod_python.so
&nbsp;
&lt;<span style="color: #000000; font-weight:bold;">Location</span> /mpinfo&gt;
    <span style="color: #00007f;">SetHandler</span> mod_python
    PythonHandler mod_python.testhandler
&lt;/<span style="color: #000000; font-weight:bold;">Location</span>&gt;
&nbsp;
&lt;<span style="color: #000000; font-weight:bold;">Directory</span> /usr/local/apache2/htdocs/test&gt; 
    <span style="color: #00007f;">AddHandler</span> mod_python .py
    PythonHandler mptest 
    PythonDebug <span style="color: #0000ff;">On</span> 
&lt;/<span style="color: #000000; font-weight:bold;">Directory</span>&gt;</pre></div></div>

<p>Nyní můžeme vyzkoušet ladící výpis serveru:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">firefox http:<span style="color: #000000; font-weight: bold;">//</span>127.0.0.1:<span style="color: #000000;">666</span><span style="color: #000000; font-weight: bold;">/</span>mpinfo</pre></div></div>

<p>Pokud je vše v pořádku, měl by se nám v prohlížeči vypsat ladící výpis.</p>
<div id="attachment_254" class="wp-caption alignnone" style="width: 310px"><a title="Ladící výpis mod_python" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/apache-a-mod_python-pro-webovy-framework-django-2.jpg"><img class="size-medium wp-image-254 " title="Ladící výpis mod_python" src="http://blog.jestrab.net/wp-content/uploads/apache-a-mod_python-pro-webovy-framework-django-2-300x206.jpg" alt="Ladící výpis mod_python" width="300" height="206" /></a><p class="wp-caption-text">Ladící výpis mod_python</p></div>
<p>Dále si vytvoříme testovací skript <em>mptest.py</em> v jazyce Python:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>htdocs<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">test</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> gedit <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>htdocs<span style="color: #000000; font-weight: bold;">/</span>test<span style="color: #000000; font-weight: bold;">/</span>mptest.py</pre></div></div>

<p>Do skriptu <em>mptest.py</em> uložíme následující kód:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> mod_python <span style="color: #ff7700;font-weight:bold;">import</span> apache
<span style="color: #ff7700;font-weight:bold;">def</span> handler<span style="color: black;">&#40;</span>req<span style="color: black;">&#41;</span>:
    req.<span style="color: black;">content_type</span> = <span style="color: #483d8b;">'text/plain'</span>
    req.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Hello World! I am Python.&quot;</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">return</span> apache.<span style="color: black;">OK</span></pre></div></div>

<p>A nakonec spustíme testovací skript:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">firefox http:<span style="color: #000000; font-weight: bold;">//</span>127.0.0.1:<span style="color: #000000;">666</span><span style="color: #000000; font-weight: bold;">/</span>test<span style="color: #000000; font-weight: bold;">/</span>mptest.py</pre></div></div>

<p>Pokud je vše v pořádku, měl by se nám v prohlížeči vypsat nápis &#8222;Hello World! I am Python.&#8220;.</p>
<div id="attachment_256" class="wp-caption alignnone" style="width: 310px"><a title="Hello Python" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/apache-a-mod_python-pro-webovy-framework-django-4.jpg"><img class="size-medium wp-image-256 " title="Hello Python" src="http://blog.jestrab.net/wp-content/uploads/apache-a-mod_python-pro-webovy-framework-django-4-300x206.jpg" alt="Hello Python" width="300" height="206" /></a><p class="wp-caption-text">Hello Python</p></div>
<h1>Základní konfigurace Publisher Handler</h1>
<p>Publisher Handler je standardní mod_python handler pro zobrazování webových stránek. V předchozí kapitole jsme si v konfiguračním souboru Apache nastavili jednoduchý handler, který odchytává URL končící na <em>.py</em> ve složce <em>test </em>a spouští skript (handler) <em>mptest.py</em>. Pokud chceme mít více handlerů, použijeme pokročilejší handler Publisher. V konfiguračním souboru Apache nastavíme (předešlý handler z předchozí kapitoly zakomentujeme):</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;">&lt;<span style="color: #000000; font-weight:bold;">Directory</span> /usr/local/apache2/htdocs&gt; 
    <span style="color: #00007f;">AddHandler</span> mod_python .py
    PythonHandler mod_python.publisher 
    PythonDebug <span style="color: #0000ff;">On</span> 
&lt;/<span style="color: #000000; font-weight:bold;">Directory</span>&gt;</pre></div></div>

<p>Restartujeme server pro znovunačtení konfigurace. Dále si vytvoříme jednoduchou dynamickou webovou stránku v Pythonu (jednoduchá kalkulačka). Vytvoříme si novou složku a dva zdrojové soubory:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>htdocs<span style="color: #000000; font-weight: bold;">/</span>form
<span style="color: #c20cb9; font-weight: bold;">sudo</span> gedit <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>htdocs<span style="color: #000000; font-weight: bold;">/</span>form<span style="color: #000000; font-weight: bold;">/</span>index.html
<span style="color: #c20cb9; font-weight: bold;">sudo</span> gedit <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>htdocs<span style="color: #000000; font-weight: bold;">/</span>form<span style="color: #000000; font-weight: bold;">/</span>form.py</pre></div></div>

<p>Do souboru <em>index.html</em> uložíme následující kód:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span>    
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>Calculator<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>    
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Enter two numbers:<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>                  
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">form</span> <span style="color: #000066;">action</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;form.py/msg&quot;</span> <span style="color: #000066;">method</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;POST&quot;</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;num1&quot;</span>&gt;</span> + 
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;num2&quot;</span>&gt;</span> =<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">br</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;submit&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;calculate&quot;</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">form</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></pre></div></div>

<p>Do skriptu <em>form.py</em> uložíme následující kód:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">def</span> msg<span style="color: black;">&#40;</span>req, num1, num2<span style="color: black;">&#41;</span>:
    <span style="color: #808080; font-style: italic;"># make sure the user provided all the parameters</span>
    <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span><span style="color: black;">&#40;</span>num1 <span style="color: #ff7700;font-weight:bold;">and</span> num2<span style="color: black;">&#41;</span>: <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #483d8b;">&quot;&lt;html&gt;&lt;h1&gt;Result&lt;/h1&gt;&lt;p&gt;Missing some parametre!&lt;/p&gt;&lt;/html&gt;&quot;</span>
    <span style="color: #808080; font-style: italic;"># provide feedback to the user</span>
    <span style="color: #ff7700;font-weight:bold;">try</span>: result = <span style="color: #008000;">int</span><span style="color: black;">&#40;</span>num1<span style="color: black;">&#41;</span> + <span style="color: #008000;">int</span><span style="color: black;">&#40;</span>num2<span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">except</span>: <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #483d8b;">&quot;&lt;html&gt;&lt;h1&gt;Result&lt;/h1&gt;&lt;p&gt;Invalid parametres!&lt;/p&gt;&lt;/html&gt;&quot;</span>    
    <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #483d8b;">&quot;&lt;html&gt;&lt;h1&gt;Result&lt;/h1&gt;&lt;p&gt;&quot;</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>result<span style="color: black;">&#41;</span> + <span style="color: #483d8b;">&quot;&lt;/p&gt;&lt;/html&gt;&quot;</span></pre></div></div>

<p>Nakonec zobrazíme web v prohlížeči:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">firefox http:<span style="color: #000000; font-weight: bold;">//</span>127.0.0.1:<span style="color: #000000;">666</span><span style="color: #000000; font-weight: bold;">/</span>form<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p>Pokud je vše v pořádku, měl by se nám v prohlížeči zobrazit formulář s nadpisem &#8222;Calculator&#8220;.</p>
<div id="attachment_255" class="wp-caption alignnone" style="width: 310px"><a title="Calculator" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/apache-a-mod_python-pro-webovy-framework-django-3.jpg"><img class="size-medium wp-image-255 " title="Calculator" src="http://blog.jestrab.net/wp-content/uploads/apache-a-mod_python-pro-webovy-framework-django-3-300x206.jpg" alt="Calculator" width="300" height="206" /></a><p class="wp-caption-text">Calculator</p></div>
<p>Pro více informací o konfiguraci mod_python navštivte dokumentaci: <a href="http://www.modpython.org/live/current/doc-html/modpython.html">http://www.modpython.org/live/current/doc-html/modpython.html</a>.</p>
<h1>Instalace MySQL serveru</h1>
<p>Pro práci s webovým frameworkem Django budeme potřebovat databázi. Nainstalujeme MySQL server pomocí nástroje <em>apt-get </em>a podporu MySQL pro Python. Alternativně můžeme použít jiné databáze (např. SQLite).</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> mysql-server python-mysqldb</pre></div></div>

<h1>Instalace frameworku Django a vytvoření projektu</h1>
<p>Pro instalaci budeme potřebovat program SVN. Ten můžeme případně nainstalovat pomocí programu <em>apt-get</em>.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> subversion</pre></div></div>

<p>Nainstalujeme vývojovou verzi Djanga z SVN repozitáře:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span>
<span style="color: #c20cb9; font-weight: bold;">svn</span> <span style="color: #c20cb9; font-weight: bold;">co</span> http:<span style="color: #000000; font-weight: bold;">//</span>code.djangoproject.com<span style="color: #000000; font-weight: bold;">/</span>svn<span style="color: #000000; font-weight: bold;">/</span>django<span style="color: #000000; font-weight: bold;">/</span>trunk<span style="color: #000000; font-weight: bold;">/</span> django_src</pre></div></div>

<p>Nyní vytvoříme symbolický odkaz na Django, aby jej systém mohl najít a mohl s ním pracovat. Nejprve si zjistíme, kde se nachází adresář <em>site-packages</em>, a potom vyvoříme samotný odkaz (místo &#8222;YOUR-DIR&#8220; doplňte řetězec z předchozího příkazu <em>python -c</em>):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">python <span style="color: #660033;">-c</span> <span style="color: #ff0000;">&quot;from distutils.sysconfig import get_python_lib; print get_python_lib()&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">pwd</span><span style="color: #000000; font-weight: bold;">`/</span>django_src<span style="color: #000000; font-weight: bold;">/</span>django YOUR-DIR<span style="color: #000000; font-weight: bold;">/</span>django
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">cp</span> ~<span style="color: #000000; font-weight: bold;">/</span>django_src<span style="color: #000000; font-weight: bold;">/</span>django<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>django-admin.py <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin</pre></div></div>

<p>Dále si vytvoříme několik adresářů, které bude Django používat:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span>
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> django_projects
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> django_templates
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> media</pre></div></div>

<p>Poté vytvoříme symbolické odkazy na media (css, javascript atd.):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>htdocs
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span>  ~<span style="color: #000000; font-weight: bold;">/</span>media media
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> ~<span style="color: #000000; font-weight: bold;">/</span>django_src<span style="color: #000000; font-weight: bold;">/</span>django<span style="color: #000000; font-weight: bold;">/</span>contrib<span style="color: #000000; font-weight: bold;">/</span>admin<span style="color: #000000; font-weight: bold;">/</span>media admin_media</pre></div></div>

<p>Nyní už můžeme vytvořit nový Django projekt standardním způsobem (postup, jak vytvořit Django projekt není součástí tohoto tutoriálu).</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>django_projects
django-admin.py startproject mysite</pre></div></div>

<p>Django vyzkoušíme na projektu <em>Mysite</em>, který zobrazuje ankety <em>Polls</em>. Projekt najdete v tutoriálu na oficiálních stránkách Djanga: <a href="http://docs.djangoproject.com/en/dev/intro/tutorial01/">http://docs.djangoproject.com/en/dev/intro/tutorial01/</a>. Uložíme jej do složky <em>django_projects </em>a následně vyzkoušíme, zda jej Apache zobrazí. Pokud v Django projektu používáme SQLite (jako v našem ukázkovém projektu <em>Mysite</em>), musíme povolit zápis do souboru. V nastavení Django projektu <em>settings.py</em> nezapomeneme správně nastavit připojení k databázi (případně cestu k sqlite), proměnnou <em>TEMPLATE_DIRS</em> a media (místo &#8222;USER-NAME&#8220; doplňte vaše systémové uživatelské jméno).</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">DATABASE_NAME = <span style="color: #483d8b;">'/home/USER-NAME/django_projects/mysite/sqlite3.db'</span>
MEDIA_ROOT = <span style="color: #483d8b;">'/media/'</span>
ADMIN_MEDIA_PREFIX = <span style="color: #483d8b;">'/admin_media/'</span>
TEMPLATE_DIRS = <span style="color: black;">&#40;</span> <span style="color: #483d8b;">'/home/USER-NAME/django_projects/mysite/mytemplates'</span> <span style="color: black;">&#41;</span></pre></div></div>

<p>Upravíme konfigurační soubor serveru a nastavíme handler pro Django (předešlý handler z předchozí kapitoly zakomentujeme, místo &#8222;USER-NAME&#8220; doplňte vaše systémové uživatelské jméno):</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;">&lt;<span style="color: #000000; font-weight:bold;">Location</span> <span style="color: #7f007f;">&quot;/&quot;</span>&gt;
    <span style="color: #00007f;">SetHandler</span> python-program
    PythonHandler django.core.handlers.modpython
    <span style="color: #00007f;">SetEnv</span> DJANGO_SETTINGS_MODULE mysite.settings
    PythonDebug <span style="color: #0000ff;">On</span>
    PythonPath <span style="color: #7f007f;">&quot;['/home/USER-NAME/django_projects'] + sys.path&quot;</span>
&lt;/<span style="color: #000000; font-weight:bold;">Location</span>&gt;
&nbsp;
&lt;<span style="color: #000000; font-weight:bold;">Location</span> <span style="color: #7f007f;">&quot;/media&quot;</span>&gt;
    <span style="color: #00007f;">SetHandler</span> <span style="color: #0000ff;">None</span>
&lt;/<span style="color: #000000; font-weight:bold;">Location</span>&gt;
&nbsp;
&lt;<span style="color: #000000; font-weight:bold;">Location</span> <span style="color: #7f007f;">&quot;/admin_media&quot;</span>&gt;
    <span style="color: #00007f;">SetHandler</span> <span style="color: #0000ff;">None</span>
&lt;/<span style="color: #000000; font-weight:bold;">Location</span>&gt;
&nbsp;
&lt;<span style="color: #000000; font-weight:bold;">LocationMatch</span> <span style="color: #7f007f;">&quot;<span style="color: #000099; font-weight: bold;">\.</span>(jpg|gif|png)$&quot;</span>&gt;
    <span style="color: #00007f;">SetHandler</span> <span style="color: #0000ff;">None</span>
&lt;/<span style="color: #000000; font-weight:bold;">LocationMatch</span>&gt;</pre></div></div>

<p>Po provedení restartu serveru by měl Django projekt začít fungovat. Projekt zobrazíme v prohlížeči (login i heslo do administrace je &#8222;admin&#8220;):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">firefox http:<span style="color: #000000; font-weight: bold;">//</span>127.0.0.1:<span style="color: #000000;">666</span><span style="color: #000000; font-weight: bold;">/</span>polls<span style="color: #000000; font-weight: bold;">/</span>
firefox http:<span style="color: #000000; font-weight: bold;">//</span>127.0.0.1:<span style="color: #000000;">666</span><span style="color: #000000; font-weight: bold;">/</span>polls<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">/</span>
firefox http:<span style="color: #000000; font-weight: bold;">//</span>127.0.0.1:<span style="color: #000000;">666</span><span style="color: #000000; font-weight: bold;">/</span>polls<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">/</span>results<span style="color: #000000; font-weight: bold;">/</span>
firefox http:<span style="color: #000000; font-weight: bold;">//</span>127.0.0.1:<span style="color: #000000;">666</span><span style="color: #000000; font-weight: bold;">/</span>polls<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">/</span>vote<span style="color: #000000; font-weight: bold;">/</span>
firefox http:<span style="color: #000000; font-weight: bold;">//</span>127.0.0.1:<span style="color: #000000;">666</span><span style="color: #000000; font-weight: bold;">/</span>admin<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<h1>
<div id="attachment_257" class="wp-caption alignnone" style="width: 310px"><a title="Django admin" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/apache-a-mod_python-pro-webovy-framework-django-5.jpg"><img class="size-medium wp-image-257 " title="Django admin" src="http://blog.jestrab.net/wp-content/uploads/apache-a-mod_python-pro-webovy-framework-django-5-300x206.jpg" alt="Django admin" width="300" height="206" /></a><p class="wp-caption-text">Django admin</p></div>
<p>Literatura</h1>
<p>[1] Apache HTTP Server In <em>Wikipedia : the free encyclopedia</em> [online]. St. Petersburg (Florida) : Wikipedia Foundation,<br />
[cit. 2010-04-24]. Dostupné z WWW: &lt;http://cs.wikipedia.org/wiki/Apache_HTTP_Server&gt;.</p>
<p>[2] <em>The Apache Software Foundation</em> [online]. 2010-04-24 [cit. 2010-04-24]. Apache HTTP Server Version 2.2 Documentation. Dostupné z WWW: &lt;http://httpd.apache.org/docs/2.2/&gt;.</p>
<p>[3] <em>Mod_python Apache/Python Integration</em> [online]. 2010-04-24 [cit. 2010-04-24]. Mod_python Manual. Dostupné z WWW: &lt;http://www.modpython.org/live/current/doc-html/modpython.html&gt;.</p>
<p>[4] <em>The Django framework</em> [online]. 2010-04-24 [cit. 2010-04-24]. How to use Django with Apache and mod_python. Dostupné z WWW: &lt;http://docs.djangoproject.com/en/dev/howto/deployment/modpython/&gt;.</p>
<p>[5] <em>Jeff Baier</em> [online]. 2010-04-26 [cit. 2010-04-26]. Nstalling Django on an Ubuntu Linux Server. Dostupné z WWW: &lt;http://jeffbaier.com/articles/installing-django-on-an-ubuntu-linux-server/&gt;.</p>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.jestrab.net%2Fapache-a-mod_python-pro-webovy-framework-django%2F&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="padding: 0px 0px; border:none; overflow:hidden; width:450px; height:70px;"></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://blog.jestrab.net/apache-a-mod_python-pro-webovy-framework-django/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pórková polévka</title>
		<link>http://blog.jestrab.net/porkova-polevka/</link>
		<comments>http://blog.jestrab.net/porkova-polevka/#comments</comments>
		<pubDate>Sun, 23 Jan 2011 12:57:35 +0000</pubDate>
		<dc:creator>Petr Nohejl</dc:creator>
				<category><![CDATA[Vaření]]></category>
		<category><![CDATA[polévka]]></category>
		<category><![CDATA[recept]]></category>

		<guid isPermaLink="false">http://blog.jestrab.net/?p=250</guid>
		<description><![CDATA[Zdravím všechny kuchařky a kuchaře. Po delší době opět přicházím s novým nenáročným receptem na polévku, který jsem získal od sester Káti a Máti. Trochu jsem zaexperimentoval a vylepšil jej o pár vychytávek. Uvaříme si pórkovou polévku. Budeme potřebovat následující suroviny: 1 velký pór 2 cibule několik stroužků česneku 2 kostky droždí olej hladká mouka [...]]]></description>
			<content:encoded><![CDATA[<p>Zdravím všechny kuchařky a kuchaře. Po delší době opět přicházím s novým nenáročným receptem na polévku, který jsem získal od sester Káti a Máti. Trochu jsem zaexperimentoval a vylepšil jej o pár vychytávek. Uvaříme si pórkovou polévku. Budeme potřebovat následující suroviny:</p>
<ul>
<li>1 velký pór</li>
<li>2 cibule</li>
<li>několik stroužků česneku</li>
<li>2 kostky droždí</li>
<li>olej</li>
<li>hladká mouka</li>
<li>sůl</li>
<li>pepř</li>
<li>voda</li>
</ul>
<p>V hrnci necháme rozpálit olej a v něm pomalu rozpustíme droždí. Musíme dát pozor, aby se nám droždí nepřipálilo. Hrnec jsem tentokrát použil menší než obvykle &#8211; asi střední velikosti. Vyšlo z něj přibližně 5 porcí. Až se droždí rozpustí, přidáme nakrájený pór, cibuli a orestujeme. Následně do hrnce přilijeme vodu, osolíme, opepříme a přidáme nadrcený česnek. Nastavíme vařič na plný výkon a vaříme zhruba půl hodiny. Občas nezapomeneme promíchat. Jedinci, co rádi experimentují můžou dochutit nějakým kořením, ale na vlastní nebezpečí! Já jsem zkusil přidat trochu curry. Až bude polévka uvařená, ochutnáme a pokud je vše v pořádku, zahustíme jíškou. Tu si připravíme ve sklenici, do které přidáme přibližně 3 lžíce mouky a smícháme s vodou tak, aby se nevytvořily cucky. Před aplikací jíšky polévku ochladíme studenou vodou. To nám zajistí, že se nebudou tvořit v polévce hrudky. Znovu ochutnáme a pokud je vše OK, můžeme podávat.</p>
<p>Jako obvykle nezapomeneme polévku uchovávat v chladu – v lednici, případně v zimě na balkóně, aby se nám nezkazila. Přeji dobré chutnání!</p>
<div id="attachment_252" class="wp-caption alignnone" style="width: 310px"><a title="Pórková polévka" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/porkova-polevka.jpg"><img class="size-medium wp-image-252  " title="Pórková polévka" src="http://blog.jestrab.net/wp-content/uploads/porkova-polevka-300x225.jpg" alt="Pórková polévka" width="300" height="225" /></a><p class="wp-caption-text">Pórková polévka</p></div>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.jestrab.net%2Fporkova-polevka%2F&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="padding: 0px 0px; border:none; overflow:hidden; width:450px; height:70px;"></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://blog.jestrab.net/porkova-polevka/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ohlédnutí za rokem 2010</title>
		<link>http://blog.jestrab.net/ohlednuti-za-rokem-2010/</link>
		<comments>http://blog.jestrab.net/ohlednuti-za-rokem-2010/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 20:27:58 +0000</pubDate>
		<dc:creator>Petr Nohejl</dc:creator>
				<category><![CDATA[Jestřábí svět]]></category>
		<category><![CDATA[cestování]]></category>
		<category><![CDATA[vzpomínky]]></category>
		<category><![CDATA[zážitky]]></category>

		<guid isPermaLink="false">http://blog.jestrab.net/?p=249</guid>
		<description><![CDATA[Přestěhoval jsem se z koleje Pod Palackého vrchem (kde jsem žil skoro 4 roky) na privát na Nerudově. Po 3 měsících potom spolu s Janie na privát u výstaviště. Pořídil jsem si Androida a začal se pro něj učit programovat aplikace. Dostal jsem Djembe a začal se učit na něj hrát. Dostal jsem novou přilbu [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>Přestěhoval jsem se z koleje Pod Palackého vrchem (kde jsem žil  skoro 4 roky) na privát na Nerudově. Po 3 měsících potom spolu s Janie  na privát u výstaviště.</li>
<li>Pořídil jsem si <a href="http://www.android.com/">Androida</a> a začal se pro něj učit programovat aplikace.</li>
<li>Dostal jsem <a href="http://irokodjembe.com/bubny.htm">Djembe</a> a začal se učit na něj hrát.</li>
<li>Dostal jsem novou přilbu (největší velikost), ale na kolo nebyl skoro žádný čas.</li>
<li>Pořídili jsme si s Janie čajový set na čajové obřady (Kung Fu Cha <img src='http://blog.jestrab.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).</li>
<li>Zavedl jsem si Penogram &#8211; osobní týdenní harmonogram, kde  si  odškrtávám činnosti, které často nedodržuju a chci dodržovat (např.   sport, úklid nebo psaní na blog).</li>
<li>Koupil jsem si novou doménu Jestřáb.net a vydal nové penovizitky.</li>
<li>Složil jsem zkoušku z <abbr title="Teoretická informatika">TIN</abbr>, jednoho z nejtěžších předmětů na FIT. Naopak jsem neudělal <abbr title="Funkcionální a logické programování">FPR</abbr>.</li>
<li>Podílel jsem se na projektu <a href="http://blog.jestrab.net/projekt-mimikry/">Mimikry</a>, který se prezentoval na mezinárodní výstavě designu <a href="http://www.designblok.cz">Designblok</a> 2010 v Praze.</li>
<li>Vybral jsem si diplomovou práci na téma: Rozšířená realita pro platformu Android, zaměřená na leteckou navigaci.</li>
<li>Navštívil jsem <a href="http://vyvojari.seznam.cz">Seznam.cz developers</a> day &#8211; zajímavé přednášky a dobré občerstvení.</li>
<li>Účastnil jsem se komparzu při natáčení filmu <a href="http://www.facebook.com/pages/Nezavisly-film-Park/101182066605462">Park</a>.</li>
<li>Získal jsem novou práci v <a href="http://www.sovanet.cz/">Sovanet</a>, kterou jsem po měsíci opustil hlavně kvůli nedostatku času.</li>
<li>Přesvědčil  jsem se na vlastní kůži, že <a href="http://www.nejnabytek.cz/asko/">Asko je nejhorší prodejce nábytku</a>. Vymyslel  jsem SOAN (Svaz odpůrců Asko nábytek) a vytvořil web. Posléze jsem  musel web včetně domény úplně zrušit pod pohružkou žaloby.</li>
<li>Ulovil jsem spoustu kešek a dosáhl jubilea 300 kousků.</li>
<li>Objevil jsem svého oblíbeného spisovatele, Roalda Dahla. Jediného oblíbeného spisovatele <img src='http://blog.jestrab.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</li>
<li>Získal jsem nové kamarádky z Taiwanu a Hong-Kongu. Po studiích bych tam chtěl vycestovat.</li>
<li>Byl jsem s rodinou a Janie v <a href="http://janie.jestrab.net/prazdniny-v-italii/">Itálii</a>. Nejdřív u moře v Rosolina Mare, pak v Benátkách, Roveretu a Lago di Garda.</li>
<li>Splul jsem Vltavu na pálavě s Janie a kamarádama.</li>
<li>Účastnil jsem se několika výletů: do Mikulova za vínem, do <a href="http://janie.jestrab.net/mezinarodni-vylet-do-obran/">Obřan</a>, na  Hády, na Macochu, do Kroměříže, do Rožnova a na promoce bratrance Jirky  na Hluboké.</li>
<li>Pořádal jsem <a href="http://janie.jestrab.net/velikonocni-piknik-v-luzankach-vol-2/">Velikonoční</a> a Burčákový piknik a dále <a href="http://blog.jestrab.net/zavody-v-kosiku/">Závody v košíku</a>, které se nakonec kvůli návštěvě policajtů nekonaly.</li>
<li>Účastnil jsem se několika legendárních párty: předloňský Silvestr na  téma oldies, loňský Silvestr na téma léto, PenoFercoBration v Lékárně, Péťovy  narozeniny, Janie narozeniny na Nerudově v crazy oblečení, Míšovy a  Zuzejkovy narozeniny s karaoke a bruslením, Žankovy a Cínovy narozky na  Palačáku.</li>
<li>Navštívil jsem řadu koncertů: Švihadlo, Xavier Baumaxa a Honza Homola, Tokamak, Joe Bar Blues Street, Poletíme?, Cowhill, Louis Pasteur, Panenka vyzutá a další. <a href="http://janie.jestrab.net/joe-bar-blues-street-stara-pekarna-brno-2-9-2010/">Joe Bar Blues Street</a> mi dokonce osobně věnovali písničku &#8216;Prašivej pes&#8217;.</li>
<li>Navštívil jsem několik hudebních festivalů: Čarodějáles v Brně, Realbeat v Žízníkově a <a href="http://janie.jestrab.net/ceske-hrady-cz-rozmberk-nad-vltavou-30-31-7/">České Hrady v Rožmberku</a>.</li>
<li>Navštívil jsem Muzejní noc v Brně a Praze, Noc vědců v Brně, tradiční festival ohňostrojů <a href="http://www.ignisbrunensis.cz/">Ignis Brunensis</a> v Brně, <a href="http://festival.fi.muni.cz/">filmový festival na FI MUNI</a>, <a href="http://janie.jestrab.net/medical-fair-19-22-10-brno/">Medical fair</a>, výstavu <a href="http://janie.jestrab.net/designblok-praha-5-10-10-2010/">Designblok</a> v Praze a výstavu <a href="http://blog.jestrab.net/sangri-la/">Šangri-la</a>.</li>
<li>Účastnil jsem se Maturitního plesu bratrance Ládi v Praze v Národním domě, Plesu SU FIT na Semilasse, Plesu Gymnázia Kroměříž a několika Dechovek s Královopolkou.</li>
<li>Byl jsem v kině na trháku roku &#8211; <a href="http://www.csfd.cz/film/228329-avatar/">Avatar</a> ve 3D.</li>
</ul>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.jestrab.net%2Fohlednuti-za-rokem-2010%2F&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="padding: 0px 0px; border:none; overflow:hidden; width:450px; height:70px;"></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://blog.jestrab.net/ohlednuti-za-rokem-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nerealistické videoefekty</title>
		<link>http://blog.jestrab.net/nerealisticke-videoefekty/</link>
		<comments>http://blog.jestrab.net/nerealisticke-videoefekty/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 15:41:28 +0000</pubDate>
		<dc:creator>Petr Nohejl</dc:creator>
				<category><![CDATA[Informační technologie]]></category>
		<category><![CDATA[aplikace]]></category>
		<category><![CDATA[grafika]]></category>
		<category><![CDATA[OpenCV]]></category>
		<category><![CDATA[programování]]></category>
		<category><![CDATA[projekt]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.jestrab.net/?p=238</guid>
		<description><![CDATA[V tomto článku bych chtěl popsat projekt, na kterém jsem pracoval v zimním semestru 2010 spolu s Petrem Panáčkem. Projekt se zabývá nerealistickými videoefekty. Text článku je převzat z dokumentace projektu pro předmět PGP. Úvod Cílem práce bylo nastudovat metody používané v nerealistickém zobrazování videa. Hlavním úkolem pak bylo navrhnout a implementovat aplikaci realizující vybraný [...]]]></description>
			<content:encoded><![CDATA[<p>V tomto článku bych chtěl popsat projekt, na kterém jsem pracoval v zimním semestru 2010 spolu s Petrem Panáčkem. Projekt se zabývá nerealistickými videoefekty. Text článku je převzat z dokumentace projektu pro předmět <abbr title="Pokročilá počítačová grafika">PGP</abbr>.</p>
<h1>Úvod</h1>
<p>Cílem práce bylo nastudovat metody používané v nerealistickém zobrazování videa. Hlavním úkolem pak bylo navrhnout a implementovat aplikaci realizující vybraný efekt na videosekvenci a zhodnotit možnosti metod pro zpracování videa (stabilita mezi framy, plynulost pohybů apod.). Nakonec bylo úkolem demonstrovat dosažené výsledky na vhodných vstupech a vyhodnotit.</p>
<p>V rámci projektu jsme implementovali aplikaci demonstrující 3 nerealistické video efekty:</p>
<ul>
<li>Komiksový efekt</li>
<li>Malířský efekt</li>
<li>Mozaikový efekt</li>
</ul>
<h1>Nerealistické videoefekty</h1>
<p>Nerealistické renderování je oblast počítačové grafiky, která se zaměřuje na různé metody expresivního vyjádření (vykreslení) digitálního obrazu. Jedná se o opačný proces vykreslování realistické grafiky, tedy soubor technik vedoucích k výstupu, který nemá charakter fotorealistického grafického výstupu. Zpravidla se používá tehdy, kdy je potřeba imitovat různé techniky výtvarného umění nebo zvýraznit některé rysy zobrazovaného útvaru. Vstupem je videosekvence reálného obrazu, pořízená videokamerou, 3D scéna nebo jiná videosekvence. Výstupem filtru je vyrenderovaná videosekvence s daným nerealistickým efektem. [1]</p>
<p>Příklady některých nerealistických efektů:</p>
<ul>
<li>Komiks (cartoon, comic)</li>
<li>Malířské techniky (painterly rendering)</li>
<li>Náčrtky (sketching)</li>
<li>Deformace obrazu (liquify)</li>
</ul>
<h2>Komiksový efekt</h2>
<p>Komiksový efekt napodobuje kreslený film. Výsledkem je segmentovaný obraz s redukovaným rozsahem barev a se zvýrazněnými hranami (obr. 1).</p>
<p>Algoritmus pro vykreslování efektu používá metodu shlukování, konkrétně algoritmus K-means (viz kapitola Algoritmy pro zpracování efektů). Při každém vykreslení snímku nejprve proběhne výpočet počtu shluků. To zajišťuje lepší stabilitu obrazu mezi jednotlivými snímky. Počet shluků se určuje z barevnosti snímku pomocí histogramu a mění se jen při výraznější změně barevnosti.</p>
<p>Algoritmus K-means segmentuje pixely obrazu do shluků podle 5 kritérií: červená barevná složka, zelená barevná složka, modrá barevná složka, pozice na ose x, pozice na ose y. Barva jednotlivých shluků se vypočítá z průměru barev všech pixelů daného segmentu.</p>
<p>Nakonec se v obraze zvýrazní hrany pomocí Cannyho algoritmu pro detekci hran (viz kapitola Algoritmy pro zpracování efektů). Ten najde v obraze hrany, rozšíří je pomocí dilatace o určitou velikost a odpovídající pixely ve výsledném obraze potom ztmaví o danou hodnotu.</p>
<div id="attachment_239" class="wp-caption alignnone" style="width: 310px"><a title="Ukázka komiksového efektu" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/nerealisticke-videoefekty-01.jpg"><img class="size-medium wp-image-239 " title="Ukázka komiksového efektu" src="http://blog.jestrab.net/wp-content/uploads/nerealisticke-videoefekty-01-300x110.jpg" alt="Ukázka komiksového efektu" width="300" height="110" /></a><p class="wp-caption-text">Obr. 1: Ukázka komiksového efektu</p></div>
<h2>Malířský efekt</h2>
<p>Malířský efekt imituje obraz malovaný štětcem na plátno. Výsledkem je obraz složený z menších různobarevných oblastí, připomínající stopy štětce (obr. 4).</p>
<p>Algoritmus zpracovává každý snímek videa v několika průchodech. V těchto průchodech jsou do obrazu zakreslovány čáry o různých tloušťkách, přičemž každá čára představuje jeden tah štětcem (obr. 3). Při zpracování jednoho snímku je ze všeho nejdříve rozmazán původní obrázek. V každém průchodu je poté obrázek překreslen jemnějším štětcem. Kromě zmenšování tloušťky štětce je také v každém průchodu zvětšována hustota zakreslovaných čar. Jinými slovy, je zmenšován krok průchodu obrazem. Jemnější štětce jsou ovšem použity pouze v místech, kde se aktuální obraz liší od původního rozmazaného obrazu. Díky tomu je zajištěna vyšší stabilita mezi jednotlivými snímky. Překreslování tenčím štětcem tedy slouží k odstranění nepřesností v aktuálním obraze. Po použití jemnějšího štětce je obraz vždy znovu rozmazán. Rozmazání obrazu se provádí pomocí algoritmu Gaussian blur (viz kapitola Algoritmy pro zpracování efektů).</p>
<p>Směr kreslené čáry je určen kolmicí ke gradientu obrazu. Gradient je vypočítán pomocí Sobelova filtru (viz kapitola Algoritmy pro zpracování efektů) použitého ve směru osy x a y (obr. 2). Kolmice je poté získána pouhým prohozením souřadných os a změnou znaménka jedné osy. Barva čáry je vypočítána jako průměrná hodnota mezi počátečním a koncovým bodem čáry, přičemž hodnota těchto bodů je brána z původního rozmazaného obrazu. [2]</p>
<div id="attachment_240" class="wp-caption alignnone" style="width: 310px"><a title="Vykreslení čáry" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/nerealisticke-videoefekty-02.jpg"><img class="size-medium wp-image-240 " title="Vykreslení čáry" src="http://blog.jestrab.net/wp-content/uploads/nerealisticke-videoefekty-02-300x230.jpg" alt="Vykreslení čáry" width="300" height="230" /></a><p class="wp-caption-text">Obr. 2: Vykreslení čáry</p></div>
<div id="attachment_241" class="wp-caption alignnone" style="width: 310px"><a title="Vykreslování čar v jednotlivých průchodech (postupně zleva doprava)" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/nerealisticke-videoefekty-03.jpg"><img class="size-medium wp-image-241 " title="Vykreslování čar v jednotlivých průchodech (postupně zleva doprava)" src="http://blog.jestrab.net/wp-content/uploads/nerealisticke-videoefekty-03-300x225.jpg" alt="Vykreslování čar v jednotlivých průchodech (postupně zleva doprava)" width="300" height="225" /></a><p class="wp-caption-text">Obr. 3: Vykreslování čar v jednotlivých průchodech (postupně zleva doprava)</p></div>
<div id="attachment_242" class="wp-caption alignnone" style="width: 310px"><a title="Ukázka malířského efektu" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/nerealisticke-videoefekty-04.jpg"><img class="size-medium wp-image-242 " title="Ukázka malířského efektu" src="http://blog.jestrab.net/wp-content/uploads/nerealisticke-videoefekty-04-300x110.jpg" alt="Ukázka malířského efektu" width="300" height="110" /></a><p class="wp-caption-text">Obr. 4: Ukázka malířského efektu</p></div>
<h2>Mozaikový efekt</h2>
<p>Mozaikový efekt je jednoduchý a často používaný. Obraz napodobuje mozaiku. Používá se pro skrytí detailů v obraze. Výsledkem je obraz složený z větších jednobarevných čtverců (obr. 5).</p>
<p>Algoritmus rozděluje obraz na čtvercové oblasti o určité velikosti. Tyto oblasti jsou potom obarveny jednou barvou, vypočtenou z průměru barev všech pixelů původní oblasti.</p>
<div id="attachment_243" class="wp-caption alignnone" style="width: 310px"><a title="Ukázka efektu mozaiky" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/nerealisticke-videoefekty-05.jpg"><img class="size-medium wp-image-243 " title="Ukázka efektu mozaiky" src="http://blog.jestrab.net/wp-content/uploads/nerealisticke-videoefekty-05-300x110.jpg" alt="Ukázka efektu mozaiky" width="300" height="110" /></a><p class="wp-caption-text">Obr. 5: Ukázka efektu mozaiky</p></div>
<h1>Algoritmy pro zpracování efektů</h1>
<h2>K-means</h2>
<p>Algoritmus K-means slouží k segmentaci obrazu. Obraz se skládá z <em>K</em> regionů a každý pixel je klasifikován do jednoho z regionu. Každý region je reprezentován středem μ<sub>i</sub>. Pixel je klasifikován do regionu, jehož střed je nejblíže (obr. 6).</p>
<div id="attachment_244" class="wp-caption alignnone" style="width: 310px"><a title="Ukázka segmentace podle K-means ve 2D (kříže znázorňují středy regionů μi)" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/nerealisticke-videoefekty-06.jpg"><img class="size-medium wp-image-244 " title="Ukázka segmentace podle K-means ve 2D (kříže znázorňují středy regionů μi)" src="http://blog.jestrab.net/wp-content/uploads/nerealisticke-videoefekty-06-300x224.jpg" alt="Ukázka segmentace podle K-means ve 2D (kříže znázorňují středy regionů μi)" width="300" height="224" /></a><p class="wp-caption-text">Obr. 6: Ukázka segmentace podle K-means ve 2D (kříže znázorňují středy regionů μi)</p></div>
<p>Algoritmus K-means:</p>
<ol>
<li>Náhodně inicializuj středy regionů μ<sub>i</sub>.</li>
<li>Klasifikuj pixely x<sub>n</sub> do regionů.</li>
<li>Vypočti nové středy regionů.</li>
<li>Opakuj kroky 2 a 3, dokud se středy shluků mění.</li>
</ol>
<h2>Cannyho hranový detektor a Sobelův operátor</h2>
<p>Cannyho hranový detektor je algoritmus, který nalezne množinu hran v obraze. Využívá Sobelův operátor ve směru <em>X</em> a <em>Y</em>, potlačení nemaximálních hodnot a prahování s hysterezí. Zvýraznění hran pomocí Cannyho algoritmu je vidět například v obr. 1.</p>
<p>Sobelův operátor je diskrétní diferenciální operátor, který počítá aproximaci gradientu intenzity obrazu. Je založen na konvoluci obrazu pomocí filtru v horizontálním a vertikálním směru. Zpravidla používá konvoluční matice o velikosti 3&#215;3 (vzorec 1).</p>
<div id="attachment_245" class="wp-caption alignnone" style="width: 310px"><a title="Konvoluční matice Sobelova filtru (A je zdrojový obraz, G je výsledný gradient)" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/nerealisticke-videoefekty-07.jpg"><img class="size-medium wp-image-245 " title="Konvoluční matice Sobelova filtru (A je zdrojový obraz, G je výsledný gradient)" src="http://blog.jestrab.net/wp-content/uploads/nerealisticke-videoefekty-07-300x116.jpg" alt="Konvoluční matice Sobelova filtru (A je zdrojový obraz, G je výsledný gradient)" width="300" height="116" /></a><p class="wp-caption-text">Vzorec 1: Konvoluční matice Sobelova filtru (A je zdrojový obraz, G je výsledný gradient)</p></div>
<p>Potlačení nemaximálních hodnot (Non-maximum suppression) funguje tak, že ve směru gradientu se potlačí pixely, které nejsou lokálním maximem (obr. 7). Výsledkem je ztenčení tlustých hran potlačením nemaximálních hodnot v černobílém obraze.</p>
<div id="attachment_246" class="wp-caption alignnone" style="width: 310px"><a title="Znázornění pixelů ve směru gradientu" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/nerealisticke-videoefekty-08.jpg"><img class="size-medium wp-image-246 " title="Znázornění pixelů ve směru gradientu" src="http://blog.jestrab.net/wp-content/uploads/nerealisticke-videoefekty-08-300x300.jpg" alt="Znázornění pixelů ve směru gradientu" width="300" height="300" /></a><p class="wp-caption-text">Obr. 7: Znázornění pixelů ve směru gradientu</p></div>
<p>Prahování s histerezí funguje tak, že silné hrany (větší než <em>High</em>) jsou ponechány. Slabé jsou ponechány, pouze pokud jsou spojeny s nějakou silnější hranou (obr. 8). Velmi slabé hrany jsou potlačeny (nižší než <em>Low</em>). Obvykle platí: <em>High</em> = 2-3 * <em>Low</em>.</p>
<div id="attachment_247" class="wp-caption alignnone" style="width: 310px"><a title="Prahování s histerezí" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/nerealisticke-videoefekty-09.jpg"><img class="size-medium wp-image-247 " title="Prahování s histerezí" src="http://blog.jestrab.net/wp-content/uploads/nerealisticke-videoefekty-09-300x120.jpg" alt="Prahování s histerezí" width="300" height="120" /></a><p class="wp-caption-text">Obr. 8: Prahování s histerezí</p></div>
<h2>Gaussian blur</h2>
<p>Gaussian blur je často používaný algoritmus v počítačové grafice pro redukci šumu a detailů. Funguje na principu konvoluce pomocí Gaussovské funkce (vzorec 2). Gaussian blur je filtr s dolní propustí.</p>
<div id="attachment_248" class="wp-caption alignnone" style="width: 250px"><a title="Dvou dimenzionální Gaussovská funkce" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/nerealisticke-videoefekty-10.jpg"><img class="size-full wp-image-248 " title="Dvou dimenzionální Gaussovská funkce" src="http://blog.jestrab.net/wp-content/uploads/nerealisticke-videoefekty-10.jpg" alt="Dvou dimenzionální Gaussovská funkce" width="240" height="80" /></a><p class="wp-caption-text">Vzorec 2: Dvou dimenzionální Gaussovská funkce</p></div>
<h1>Implementace aplikace</h1>
<p>Aplikace demonstruje 3 video efekty: komiksový efekt, mozaikový efekt a malířský efekt. Vstupem programu je typ efektu a název video souboru ve formátu AVI. Výstupem jsou dvě okna, zobrazující video. První ukazuje originální obraz, druhé zobrazuje vyrenderovaný obraz, na který byl aplikován daný efekt.</p>
<p>Program demonstrující výše zmíněné nerealistické efekty je implementován v jazyce C/C++, v prostředí Visual Studio 2008. Používá knihovnu OpenCV. Pro úspěšné sestavení projektu je nutné mít nainstalovanou tuto knihovnu a správně definovány v nastavení projektu knihovny pro linker.</p>
<p>Každý efekt je implementován ve vlastní třídě (<em>effectComic</em>, <em>effectPainterly</em>, <em>effectMosaic</em>). Na začátku každého zdrojového souboru s efektem jsou definovány konstanty, ovlivňující různé vlastnosti při výpočtu efektu. Konstanty lze měnit a ovlivňovat tak některé parametry efektu. Třída <em>effects</em> se stará o základní zpracování obrazu &#8211; načtení videa ze souboru a zobrazení na výstup.</p>
<p>Ovládání aplikace:</p>
<ul>
<li><em>VideoEffects.exe -h</em> &#8211; zobrazí nápovědu</li>
<li><em>VideoEffects.exe -c inputVideo</em> &#8211; demonstruje komiksový efekt</li>
<li><em>VideoEffects.exe -p inputVideo</em> &#8211; demonstruje malířský efekt</li>
<li><em>VideoEffects.exe -m inputVideo</em> &#8211; demonstruje mozaikový efekt</li>
</ul>
<p><em>inputVideo</em> je název vstupního video souboru ve formátu AVI.</p>
<h1>Závěr</h1>
<p>Nerealistické vykreslování obrazu může mít různé využití. Používá se například v moderních videokamerách pro „umělecké“ efekty, mobilních telefonech s fotoaparátem nebo také v programech pro střihání videa. Využití může nalézt i v zábavném průmyslu, např. v počítačových hrách nebo aplikacích na webu.</p>
<p>Díky projektu jsme se naučili metody a principy pro nerealistické renderování obrazu. Naučili jsme se nové algoritmy pro zpracování obrazu a prohloubili si znalosti v programování aplikací v OpenCV.</p>
<p>Zdrojové soubory projektu na <a href="https://github.com/petrnohejl/Non-Realistic-Video-Effects">github.com</a>.</p>
<h1>Zdroje</h1>
<p>[1] Non-photorealistic rendering. In <em>Wikipedia : the free encyclopedia</em> [online]. St. Petersburg (Florida) : Wikipedia Foundation, 9.1.2005, last modified on 14.10.2010 [cit. 2010-12-28]. Dostupné z WWW: &lt;http://en.wikipedia.org/wiki/Non-photorealistic_rendering&gt;.</p>
<p>[2] HERTZMANN, Aaron; PERLIN, Ken. <em>Painterly rendering : Painterly Rendering with Curved Brush Strokes of Multiple Sizes</em> [online]. New York University, Media Research Laboratory : 2000 [cit. 2010-12-29]. Dostupné z WWW: &lt;http://mrl.nyu.edu/projects/npr/painterly/&gt;.</p>
<p>[3] <em>Matlab Central</em> [online]. 27.3.2008 [cit. 2010-12-29]. Efficient K-Means Clustering. Dostupné z WWW: &lt;http://www.mathworks.com/matlabcentral/fileexchange/19344-efficient-k-means-clustering-using-jit&gt;.</p>
<p>[4] Sobel operator. In <em>Wikipedia : the free encyclopedia</em> [online]. St. Petersburg (Florida) : Wikipedia Foundation, 19.2.2004, last modified on 12.12.2010 [cit. 2010-12-29]. Dostupné z WWW: &lt;http://en.wikipedia.org/wiki/Sobel_operator&gt;.</p>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.jestrab.net%2Fnerealisticke-videoefekty%2F&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="padding: 0px 0px; border:none; overflow:hidden; width:450px; height:70px;"></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://blog.jestrab.net/nerealisticke-videoefekty/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Projekt Mimikry &#8211; rozšířená realita</title>
		<link>http://blog.jestrab.net/projekt-mimikry/</link>
		<comments>http://blog.jestrab.net/projekt-mimikry/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 13:20:35 +0000</pubDate>
		<dc:creator>Petr Nohejl</dc:creator>
				<category><![CDATA[Informační technologie]]></category>
		<category><![CDATA[aplikace]]></category>
		<category><![CDATA[ARToolKit]]></category>
		<category><![CDATA[augmented reality]]></category>
		<category><![CDATA[programování]]></category>
		<category><![CDATA[projekt]]></category>
		<category><![CDATA[výstava]]></category>

		<guid isPermaLink="false">http://blog.jestrab.net/?p=222</guid>
		<description><![CDATA[V tomto článku bych chtěl stručně popsat projekt Mimikry, na kterém jsem se podílel v zimním semestru 2010. Článek je upravenou částí dokumentace, kterou jsem odevzdával v rámci školního projektu pro předmět POV. K projektu jsem se dostal víceméně náhodou přes mého vedoucího diplomové práce, kterého kontaktovali studenti Akademie výtvarných umění v Praze, že by [...]]]></description>
			<content:encoded><![CDATA[<p>V tomto článku bych chtěl stručně popsat projekt Mimikry, na kterém jsem se podílel v zimním semestru 2010. Článek je upravenou částí dokumentace, kterou jsem odevzdával v rámci školního projektu pro předmět <abbr title="Počítačové vidění">POV</abbr>. K projektu jsem se dostal víceméně náhodou přes mého vedoucího diplomové práce, kterého kontaktovali studenti Akademie výtvarných umění v Praze, že by potřebovali programátora pro svůj projekt. Další informace lze nalézt na <a href="http://www.projectmodul.com/">stránkách studentů</a>.</p>
<h1>Úvod</h1>
<p>Cílem práce bylo nastudovat možnosti knihovny <a href="http://blog.jestrab.net/artoolkit/">ARToolKit</a> a vytvořit aplikaci pro rozšířenou realitu využívající tuto knihovnu. Výsledná aplikace byla určena pro projekt Mimikry, který se prezentoval na výstavě Designblok 2010. Výstava se konala 5. &#8211; 10. 10. 2010 v Praze. Projekt jsem vypracovával samostatně ve spolupráci se studenty Akademie výtvarných umění v Praze pod vedením Ing. Aleše Láníka.</p>
<p>Projekt byl experimentální. Hlavním úkolem bylo vytvořit aplikaci rozšířené reality, která vykresluje 3D model kudlanky, mapovaný pomocí multipatterns (více trasovacích značek) na reálný model orchideje (plastika z tvrdého papíru o rozměrech cca 2m) a následně vytvořit určitou interakci s tímto modelem. Účelem práce bylo živě demonstrovat mimézi pomocí výpočetní techniky s využitím počítačového vidění. Miméze je souborný pojem pro morfologické, fyziologické i  etologické jevy, které živočichovi umožňují skrýt se, zamaskovat nebo  uniknout pozornosti. Konkrétně se jednalo o fytomimezi, tj. napodobování rostlin (např. pakobylky a strašilky napodobují větvičky nebo listy rostlin). V naší performanci si divák prohlédl živý model orchideje, která se pomocí rozšířené reality &#8222;proměnila&#8220; v maskovanou kudlanku.</p>
<h1>Základní princip</h1>
<p>V této kapitole si popíšeme, jak celý experiment funguje a co dělá. Projekt byl předváděn v zatemněné místnosti, kde se nacházela papírová plastika orchideje, podepřená pevným stojanem. S papírovým modelem bylo možné otáčet zleva doprava. Na této plastice bylo nalepeno 7 trasovacích značek ARToolKit, vytisknutých na tvrdém papíru. Bylo použito více značek proto, aby bylo možné model prohlížet z více stran a z blízka, protože při snímání obrazu kamerou musí být viditelná vždy minimálně jedna značka. Značky byly rozmístěny tak, aby bylo možné prohlížet model pomocí kamery i z velmi krátké vzdálenosti. Trasovací značky měly více velikostí (20 cm a 15 cm).</p>
<div id="attachment_223" class="wp-caption alignnone" style="width: 310px"><a title="Prezentace projektu na výstavě Designblok 2010" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-01.jpg"><img class="size-medium wp-image-223 " title="Prezentace projektu na výstavě Designblok 2010" src="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-01-300x225.jpg" alt="Prezentace projektu na výstavě Designblok 2010" width="300" height="225" /></a><p class="wp-caption-text">Prezentace projektu na výstavě Designblok 2010</p></div>
<p>Celá plastika byla osvícena projektorem, který promítal jednoduchou texturu (bílá barva s růžovým nádechem). Textura měla připomínat, že se jedná o květ orchideje. Texturu bylo potřeba vytvořit tak, aby se bílá barva promítala přesně na celý model v místech, kde dopadá světlo projektoru na model. Do míst, kde dopadá světlo mimo model byla promítána černá barva. Osvícení projektorem zajistilo, že plastika byla více výrazná a zárověň tím byly zajištěny světelné podmínky pro rozpoznávání značek ARToolKit.</p>
<p>V místnosti byl dále umístěn počítač, na kterém běžela aplikace pro rozšířenou realitu. Do počítače byla připojena webkamera Logitech QuickCam Pro 9000 o vysokém rozlišení (1600 x 1200 px), pomocí které se snímal obraz. Výsledný obraz rozšířené reality se promítal na velkou plazma obrazovku umístěnou na stěně. Uprostřed místnosti byl umístěn dřevěný podstavec, na kterém byla položena kamera, se kterou mohli návštěvníci výstavy hýbat a vyzkoušet si tak aplikaci na vlastní kůži.</p>
<div id="attachment_224" class="wp-caption alignnone" style="width: 310px"><a title="Instrukce pro návštěvníka výstavy" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-02.jpg"><img class="size-medium wp-image-224 " title="Instrukce pro návštěvníka výstavy" src="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-02-300x210.jpg" alt="Instrukce pro návštěvníka výstavy" width="300" height="210" /></a><p class="wp-caption-text">Instrukce pro návštěvníka výstavy</p></div>
<p>Aplikace rovněž umožnila určitou míru interakce uživatele s modelem. Z větší dálky se vykreslovaly 3D modely více podobné květu orchideje. Z blízka se potom vykreslovaly modely kudlanky s většími detaily.</p>
<div id="attachment_225" class="wp-caption alignnone" style="width: 310px"><a title="Papírový model květu orchideje" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-03.jpg"><img class="size-medium wp-image-225 " title="Papírový model květu orchideje" src="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-03-300x300.jpg" alt="Papírový model květu orchideje" width="300" height="300" /></a><p class="wp-caption-text">Papírový model květu orchideje</p></div>
<div id="attachment_226" class="wp-caption alignnone" style="width: 310px"><a title="3D model kudlanky" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-04.jpg"><img class="size-medium wp-image-226 " title="3D model kudlanky" src="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-04-300x300.jpg" alt="3D model kudlanky" width="300" height="300" /></a><p class="wp-caption-text">3D model kudlanky</p></div>
<h1>Implementace aplikace</h1>
<p>Aplikace je implementována v jazyce C/C++, ve vývojovém prostředí Microsoft Visual Studio 2008 s využitím knihovny <a href="http://blog.jestrab.net/artoolkit/">ARToolKit</a>. Pro vykreslování 3D modelů potom byly použity knihovny OpenGL a OpenVRML.</p>
<p>Parametry trasovacích značek (název, datový soubor, fyzické rozměry v mm, střed značky) a seznam VRML modelů jsou uloženy v konfiguračních souborech. Nastavení kalibrace kamery je rovněž uloženo v souboru. V projektu byly použity standardní trasovací značky ARToolKit: patt.hiro, patt.kanji, patt.sample1, patt.sample2, patt.a, patt.c, patt.f.</p>
<p>Kostra zdrojového kódu aplikace:</p>
<ul>
<li>Inicializace, nastavení videokamery, zpracování konfiguračního souboru značek a načtení modelů VRML.</li>
<li>Hlavní smyčka:
<ul>
<li>Načtení snímku z videokamery.</li>
<li>Detekce trasovacích značek a rozpoznání vzorů.</li>
<li>Výpočet pozice a rotace kamery vzhledem k rozpoznaným značkám.</li>
<li>Vykreslení snímku a virtuálních objektů.</li>
</ul>
</li>
<li>Ukončení snímání videokamery.</li>
</ul>
<h1>Funkce aplikace</h1>
<ul>
<li>Rozšířená realita využívající knihovnu ARToolKit.</li>
<li>Interakce modelu s uživatelem v podobě použití LOD objektů.</li>
<li>Trasování 3D objektu pomocí multipatterns.</li>
<li>Použití 7 trasovacích značek o různých fyzických rozměrech.</li>
<li>Funkce pro snadnější výpočet transformačních matic multipatterns (ruční polohování objektu).</li>
<li>Využití stabilizace trasování objektu pomocí funkce historie.</li>
<li>Využití knihovny OpenVRML pro vykreslování 3D modelů.</li>
<li>Možnost vykreslování objektu z poslední známé pozice v případě nerozpoznání značek (použitelné pro statickou kameru).</li>
<li>Přizpůsobení prahu světelným podmínkám (ruční nastavení).</li>
<li>Debug mode zobrazující prahovaný obraz.</li>
<li>Fullscreen mode.</li>
<li>Možnost vypnutí zobrazení videa.</li>
</ul>
<h1>Příprava projektu a zkušenosti</h1>
<p>Instalace projektu probíhala přímo na místě konání výstavy, v Superstudiu Designbloku Bubenská 1 v Praze. Při instalaci bylo potřeba nalepit trasovací značky na plastiku a vypočítat transformační matice, udávající vzájemné polohy značek. Výpočet transformačních matic je náročný, a proto byla pro jejich zjištění do aplikace implementována funkce, která umožnila jednoduše umístit do scény 3D model kudlanky tak, aby přesně odpovídal pozici papírového modelu. Pomocí tlačítek pro posun a rotaci byl model umístěn přesně na místo kam patří a program vrátil informace o pozici a rotaci modelu. Tento postup se opakoval pro všechny trasovací značky. Tímto jsme získali transformační matice, potřebné pro použití multipatterns.</p>
<div id="attachment_227" class="wp-caption alignnone" style="width: 310px"><a title="Ukázka plastiky s trasovacími značkami" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-05.jpg"><img class="size-medium wp-image-227 " title="Ukázka plastiky s trasovacími značkami" src="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-05-300x225.jpg" alt="Ukázka plastiky s trasovacími značkami" width="300" height="225" /></a><p class="wp-caption-text">Ukázka plastiky s trasovacími značkami</p></div>
<p>Dále bylo během instalace nutné provést kalibraci kamery a vhodně nastavit nasvícení plastiky projektorem.</p>
<p>Během práce na projektu jsme se setkali s několika problémy. Původně bylo zamýšleno použít vlastní vzory trasovacích značek. Vlastní značky jsme navrhli a vytiskli. Provedli jsme trénování vzorů a posléze se ukázalo, že je nelze použít, protože je ARToolKit vzájemně zaměňuje. Příčinou bylo to, že symboly značek byly podobné. Při detekci značek dochází k normalizaci a změně rozlišení. ARToolKit pak detekoval dvě podobné značky jako jednu stejnou. Dalším problémem, se kterým jsme se setkali byla délka USB kabelu pro připojení webkamery. Nemohli jsme použít delší prodlužovací kabel než 3m, protože u delších kabelů docházelo k velkým ztrátám a přenos videa byl nestabilní. V projektu jsme také chtěli použít VRML model s animací, ale kvůli velkým hardwarovým nárokům to nebylo možné. Rovněž jsme se pokusili použít v aplikaci 3D virtuální brýle Z800 3D Visor, ale použitá grafická karta je nepodporovala.</p>
<p>Na projektu se podíleli:</p>
<ul>
<li>Jan Poupě, Tadeáš Podracký, Jan Novák, Eliška Vojtková &#8211; autoři projektu, papírová plastika, zajištění vybavení, organizace výstavy</li>
<li>Petr Nohejl &#8211; vývoj software, pomoc s instalací</li>
<li>Michal Slyusar &#8211; 3D modely</li>
</ul>
<h1>Závěr</h1>
<p>Aplikaci se povedlo naprogramovat dle požadavků, nainstalovat pro daný fyzický model a úspěšně prezentovat na výstavě, pro kterou byla určena. Kvůli jistým omezením a nedostatku času pro instalaci se občas vyskytly chyby v pozicování virtuálního modelu. Dalším problémem bylo občasné nepochopení celého experimentu ze strany návštěvníků výstavy, a proto bylo nutné později vytvořit informační plakát, popisující účel projektu. Práce na experimentu byla pro mě velmi zajímavá a přínosná. Získal jsem mnoho nových zkušenosti a seznámil se s principy rozšířené reality. Spolupráce se studenty Akademie výtvarných umění byla rovněž velkou zkušeností. Zajímavé byly názory lidí z ne-informatických oborů, kteří nahlíželi na problematiku rozšířené reality z trochu jiného pohledu než samotný programátor.</p>
<p>Zdrojové soubory projektu na <a href="https://github.com/petrnohejl/Mimesis">github.com</a>.</p>
<p>Na závěr ještě přikládám několik fotografií&#8230;</p>
<div id="attachment_228" class="wp-caption alignnone" style="width: 310px"><a title="Vystřihování trasovacích značek, které se stejně nepoužily" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-06.jpg"><img class="size-medium wp-image-228 " title="Vystřihování trasovacích značek, které se stejně nepoužily" src="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-06-300x225.jpg" alt="Vystřihování trasovacích značek, které se stejně nepoužily" width="300" height="225" /></a><p class="wp-caption-text">Vystřihování trasovacích značek, které se stejně nepoužily</p></div>
<div id="attachment_229" class="wp-caption alignnone" style="width: 235px"><a title="Instalace nesprávných značek" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-07.jpg"><img class="size-medium wp-image-229 " title="Instalace nesprávných značek" src="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-07-225x300.jpg" alt="Instalace nesprávných značek" width="225" height="300" /></a><p class="wp-caption-text">Instalace nesprávných značek</p></div>
<div id="attachment_230" class="wp-caption alignnone" style="width: 310px"><a title="Testování" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-08.jpg"><img class="size-medium wp-image-230 " title="Testování" src="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-08-300x225.jpg" alt="Testování" width="300" height="225" /></a><p class="wp-caption-text">Testování</p></div>
<div id="attachment_231" class="wp-caption alignnone" style="width: 235px"><a title="Úklid a úprava ateliéru" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-09.jpg"><img class="size-medium wp-image-231 " title="Úklid a úprava ateliéru" src="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-09-225x300.jpg" alt="Úklid a úprava ateliéru" width="225" height="300" /></a><p class="wp-caption-text">Úklid a úprava ateliéru</p></div>
<div id="attachment_232" class="wp-caption alignnone" style="width: 310px"><a title="Prezentace projektu na výstavě" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-10.jpg"><img class="size-medium wp-image-232 " title="Prezentace projektu na výstavě" src="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-10-300x225.jpg" alt="Prezentace projektu na výstavě" width="300" height="225" /></a><p class="wp-caption-text">Prezentace projektu na výstavě</p></div>
<div id="attachment_233" class="wp-caption alignnone" style="width: 310px"><a title="Prezentace projektu na výstavě" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-11.jpg"><img class="size-medium wp-image-233 " title="Prezentace projektu na výstavě" src="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-11-300x225.jpg" alt="Prezentace projektu na výstavě" width="300" height="225" /></a><p class="wp-caption-text">Prezentace projektu na výstavě</p></div>
<div id="attachment_234" class="wp-caption alignnone" style="width: 235px"><a title="Plakát" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-12.jpg"><img class="size-medium wp-image-234 " title="Plakát" src="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-12-225x300.jpg" alt="Plakát" width="225" height="300" /></a><p class="wp-caption-text">Plakát</p></div>
<div id="attachment_235" class="wp-caption alignnone" style="width: 310px"><a title="Prezentace projektu na výstavě" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-13.jpg"><img class="size-medium wp-image-235 " title="Prezentace projektu na výstavě" src="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-13-300x225.jpg" alt="Prezentace projektu na výstavě" width="300" height="225" /></a><p class="wp-caption-text">Prezentace projektu na výstavě</p></div>
<div id="attachment_236" class="wp-caption alignnone" style="width: 310px"><a title="Prezentace projektu na výstavě" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-14.jpg"><img class="size-medium wp-image-236 " title="Prezentace projektu na výstavě" src="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-14-300x225.jpg" alt="Prezentace projektu na výstavě" width="300" height="225" /></a><p class="wp-caption-text">Prezentace projektu na výstavě</p></div>
<div id="attachment_237" class="wp-caption alignnone" style="width: 310px"><a title="Prezentace projektu na výstavě" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-15.jpg"><img class="size-medium wp-image-237 " title="Prezentace projektu na výstavě" src="http://blog.jestrab.net/wp-content/uploads/projekt-mimikry-15-300x225.jpg" alt="Prezentace projektu na výstavě" width="300" height="225" /></a><p class="wp-caption-text">Prezentace projektu na výstavě</p></div>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.jestrab.net%2Fprojekt-mimikry%2F&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="padding: 0px 0px; border:none; overflow:hidden; width:450px; height:70px;"></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://blog.jestrab.net/projekt-mimikry/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nejlepší aplikace pro Android</title>
		<link>http://blog.jestrab.net/nejlepsi-aplikace-pro-android/</link>
		<comments>http://blog.jestrab.net/nejlepsi-aplikace-pro-android/#comments</comments>
		<pubDate>Tue, 21 Dec 2010 01:26:33 +0000</pubDate>
		<dc:creator>Petr Nohejl</dc:creator>
				<category><![CDATA[Informační technologie]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[aplikace]]></category>

		<guid isPermaLink="false">http://blog.jestrab.net/?p=191</guid>
		<description><![CDATA[Mobilní telefon s OS Android používám už více než půl roku (přešel jsem z Windows Mobile) a jsem s ním jsem velmi spokojený. Rozhodl jsem se sepsat seznam aplikací, které mi přijdou užitečné, zajímavé, vtipné&#8230; Seznam budu nejspíš v budoucnu aktualizovat. Většina aplikací je free nebo s reklamou. Budu rád, když do diskuze napíšete svoje [...]]]></description>
			<content:encoded><![CDATA[<p>Mobilní telefon s OS Android používám už více než půl roku (přešel jsem z Windows Mobile) a jsem s ním jsem velmi spokojený. Rozhodl jsem se sepsat seznam aplikací, které mi přijdou užitečné, zajímavé, vtipné&#8230; Seznam budu nejspíš v budoucnu aktualizovat. Většina aplikací je free nebo s reklamou. Budu rád, když do diskuze napíšete svoje postřehy, tipy na dobré aplikace a případné lepší alternativy ke zmíněným.</p>
<h1>Mnou vyvinuté aplikace</h1>
<ul>
<li><a href="https://market.android.com/details?id=net.jestrab.caramelle">Caramelle Augmented Reality</a> &#8211; prohlížeč rozšířené reality</li>
<li><a href="https://market.android.com/details?id=net.skimap">Ski Map</a> &#8211; mapa sjezdovek a lyžařských středisek</li>
<li><a href="https://market.android.com/details?id=net.jestrab.slevolapka">Slevolapka</a> &#8211; upozorňování na zajímavé slevy</li>
</ul>
<h1>Utility</h1>
<ul>
<li><a href="http://www.appbrain.com/app/barcode-scanner/com.google.zxing.client.android">Barcode Scanner</a> &#8211; čtečka čárových kódů</li>
<li><a href="http://www.appbrain.com/app/bubble/bz.ktk.bubble">Bubble</a> &#8211; vodováha</li>
<li><a href="https://market.android.com/details?id=cz.fit.TAM">BusBooker</a> &#8211; rezervace Student Agency</li>
<li><a href="https://market.android.com/details?id=com.threebanana.notes">Catch</a> &#8211; poznámky</li>
<li><a href="https://market.android.com/details?id=com.socialnmobile.dictapps.notepad.color.note">ColorNote Notepad</a> &#8211; poznámky</li>
<li><a href="http://www.appbrain.com/app/unit-converter-convertpad/com.mathpad.mobile.android.wt.unit">ConvertPad</a> &#8211; převodník jednotek</li>
<li><a href="https://market.android.com/details?id=cz.destil.settleup">Dlužníček</a> &#8211; evidence výdajů a dluhů</li>
<li><a href="http://www.appbrain.com/app/droidstats/nitro.phonestats">DroidStats</a> &#8211; počítadlo hovorů, SMS a datového provozu</li>
<li><a href="https://market.android.com/details?id=com.dropbox.android">Dropbox</a> &#8211; sdílení dat</li>
<li><a href="http://www.appbrain.com/app/google-goggles/com.google.android.apps.unveil">Goggles</a> &#8211; rozpoznání obrazů</li>
<li><a href="https://market.android.com/details?id=com.google.android.apps.docs">Google Docs</a> &#8211; Google Docs dokumenty</li>
<li><a href="http://www.appbrain.com/app/google-sky-map/com.google.android.stardroid">Google Sky Map</a> &#8211; noční obloha ovládaná akcelerometrem</li>
<li><a href="https://market.android.com/details?id=com.google.android.apps.translate">Google Translate</a> &#8211; slovník a překladač</li>
<li><a href="http://www.appbrain.com/app/greader-%28google-reader-%7C-rss%29/com.noinnion.android.greader.reader">gReader</a> &#8211; RSS čtečka</li>
<li><a href="http://smartmania.mobilmania.cz/index.php?ind=news&amp;op=news_show_single&amp;ide=1215">Heureka.cz</a> &#8211; srovnání cen</li>
<li><a href="https://market.android.com/details?id=net.kuratkoo.jidelnicekvut">Jídelníček VUT</a> &#8211; menzy VUT v Brně</li>
<li><a href="https://market.android.com/details?id=cz.lunchtime.android">Lunchtime</a> &#8211; české restaurace</li>
<li><a href="https://market.android.com/details?id=com.vsoft.meteoservis">Meteoservis</a> &#8211; předpověď počasí</li>
<li><a href="https://market.android.com/details?id=de.stohelit.folderplayer">MortPlayer</a> &#8211; hudební přehrávač</li>
<li><a href="https://market.android.com/details?id=com.mxtech.videoplayer.ad">MX Video Player</a> &#8211; video přehrávač</li>
<li><a href="http://www.appbrain.com/app/pubtran/cz.fhejl.pubtran">Pubtran</a> &#8211; jízdní řád</li>
<li><a href="https://market.android.com/details?id=com.pumpdroid">Pumpdroid</a> &#8211; ceny pohonných hmot</li>
<li><a href="http://www.appbrain.com/app/realcalc-scientific-calculator/uk.co.nickfines.RealCalc">RealCalc</a> &#8211; vědecká kalkulačka</li>
<li><a href="http://www.appbrain.com/app/shazam/com.shazam.android">Shazam</a> &#8211; rozpoznávání hudby</li>
<li><a href="http://www.appbrain.com/app/simple-last-fm-scrobbler/com.adam.aslfms">Simple Last.fm Scrobbler</a> &#8211; Last.fm scrobbler</li>
<li><a href="http://www.appbrain.com/app/sleep-bot-tracker-log/com.lslk.sleepbot">Sleep Bot Tracker</a> &#8211; měření spánku</li>
<li><a href="http://blog.inmite.eu/sms-jizdenka/">SMS Jízdenka</a> &#8211; SMS jízdenka</li>
<li><a href="https://market.android.com/details?id=cz.ursimon.studentagency">SMS Rezervace pro SA</a> &#8211; rezervace Student Agency</li>
<li><a href="http://www.appbrain.com/app/text-edit/org.paulmach.textedit">Text Edit</a> &#8211; textový editor</li>
<li><a href="http://www.appbrain.com/app/tricorder/org.hermit.tricorder">Tricorder</a> &#8211; Tricorder ze Star Treku</li>
<li><a href="https://market.android.com/details?id=com.google.android.youtube">YouTube</a> &#8211; video server</li>
</ul>
<h1>Komunikace</h1>
<ul>
<li><a href="https://market.android.com/details?id=com.facebook.katana">Facebook</a> &#8211; sociální síť</li>
<li><a href="http://www.appbrain.com/app/free-sms-sender/cz.vojtisek.freesmssender">Free SMS Sender</a> &#8211; posílání SMS přes internet</li>
<li><a href="https://market.android.com/details?id=com.google.android.gm">Gmail</a> &#8211; mailový klient</li>
<li><a href="http://www.appbrain.com/app/handcent-sms/com.handcent.nextsms">Handcent</a> &#8211; SMS manažer</li>
<li><a href="http://www.appbrain.com/app/meebo-im/com.meebo">Meebo IM</a> &#8211; IM klient</li>
<li><a href="https://market.android.com/details?id=com.seesmic">Seesmic</a> &#8211; Twitter klient</li>
<li><a href="https://market.android.com/details?id=com.skype.raider">Skype</a> &#8211; Skype klient</li>
</ul>
<h1>Mapy, navigace, GPS</h1>
<ul>
<li><a href="http://www.appbrain.com/app/augsatnav/mkt.com.phyora.augsatnav">AugSatNav</a> &#8211; rozšířená realita v autonavigaci</li>
<li><a href="http://www.appbrain.com/app/c%3Ageo-~-geocaching-for-android/carnero.cgeo">c:geo</a> &#8211; navigace pro Geocaching</li>
<li><a href="http://www.appbrain.com/app/columbus/geocaching.columbus">Columbus</a> &#8211; navigace pro Geocaching</li>
<li><a href="http://www.appbrain.com/app/compass/com.apksoftware.compass">Compass</a> &#8211; kompas</li>
<li><a href="https://market.android.com/details?id=com.google.android.apps.maps">Google Maps</a> &#8211; mapy a navigace</li>
<li><a href="http://www.appbrain.com/app/gowalla/com.gowalla">Gowalla</a> &#8211; geolokační hra</li>
<li><a href="http://www.appbrain.com/app/gps-test/com.chartcross.gpstest">GPS Test</a> &#8211; GPS informace</li>
<li><a href="http://www.appbrain.com/app/layar/com.layar">Layar</a> &#8211; prohlížeč rozšířené reality</li>
<li><a href="https://market.android.com/details?id=menion.android.locus">Locus</a> &#8211; offline mapy</li>
<li><a href="https://market.android.com/details?id=cz.seznam.mapy">Mapy.cz</a> &#8211; české mapy</li>
<li><a href="http://www.appbrain.com/app/my-tracks/com.google.android.maps.mytracks">My Tracks</a> &#8211; záznam trasy</li>
<li><a href="http://www.appbrain.com/app/whereyougo/menion.android.whereyougo">WhereYouGo</a> &#8211; Where I Go pro Geocaching</li>
<li><a href="http://www.appbrain.com/app/wikitude-world-browser/com.wikitude">Wikitude</a> &#8211; prohlížeč rozšířené reality</li>
</ul>
<h1>Správa zařízení</h1>
<ul>
<li><a href="http://www.appbrain.com/app/astro-file-manager/com.metago.astro">Astro</a> &#8211; správce souborů</li>
<li><a href="http://www.appbrain.com/app/contact2sim/com.happydroid.c2s">Contact2Sim</a> &#8211; kopírování kontaktů na SIM</li>
<li><a href="http://www.appbrain.com/app/es-file-explorer/com.estrongs.android.pop">ES File Explorer</a> &#8211; správce souborů</li>
<li><a href="http://www.appbrain.com/app/prey-phone-tracker/com.prey">Prey</a> &#8211; sledování ukradeného telefonu</li>
<li><a href="http://www.appbrain.com/app/sms-backup/tv.studer.smssync">SMS Backup</a> &#8211; záloha SMS na Gmail</li>
<li><a href="https://market.android.com/details?id=com.riteshsahu.SMSBackupRestore">SMS Backup &amp; Restore</a> &#8211; záloha a obnovení SMS</li>
</ul>
<h1>Vzhled prostředí a widgety</h1>
<ul>
<li><a href="http://www.appbrain.com/app/extended-controls/com.extendedcontrols">Extended Controls</a> ($0.99) &#8211; widget s ovládacími prvky</li>
<li><a href="https://market.android.com/details?id=com.gau.go.launcherex">GO Launcher Ex</a> &#8211; launcher</li>
</ul>
<h1>Hry a zábava</h1>
<ul>
<li><a href="http://www.appbrain.com/app/abduction/au.com.phil">Abduction</a> &#8211; skákací hra ovládaná akcelerometrem</li>
<li><a href="http://www.andwobble.com/">AndWooble2</a> &#8211; mazané využití akcelerometru</li>
<li><a href="https://market.android.com/details?id=com.rovio.angrybirds">Angry Birds</a> &#8211; asi nejznámější hra</li>
<li><a href="https://market.android.com/details?id=com.nut.bettersettlers">Better Settlers</a> &#8211; generátor polí pro Osadníky z Katanu</li>
<li><a href="http://www.appbrain.com/app/bonsai-blast/com.glu.android.bonsai">Bonsai Blast</a> &#8211; hra s kuličkami</li>
<li><a href="http://www.appbrain.com/app/flying-high/org.Rotate">Flying High</a> &#8211; hra s letadlem ovládaná akcelerometrem</li>
<li><a href="https://market.android.com/details?id=com.droidhen.fruit">Fruit Slice</a> &#8211; porcování ovoce</li>
<li><a href="http://www.appbrain.com/app/my-paper-plane/com.wavecade.mypaperplane">My Paper Plane</a> &#8211; 3D hra s vlaštovkou ovládaná akcelerometrem</li>
<li><a href="http://www.appbrain.com/app/ninjump/com.bfs.ninjump">NinJump</a> &#8211; skákací hra</li>
<li><a href="http://www.appbrain.com/app/panosphere/obg1.PanoSphere">PanoSphere</a> &#8211; 3D panorama ovládané akcelerometrem</li>
<li><a href="http://www.appbrain.com/app/robo-defense-free/com.magicwach.rdefense_free">Robo Defense</a> &#8211; strategická hra</li>
<li><a href="http://www.appbrain.com/app/spaghetti-marshmallows-lite/com.fiffigt.spaghetti.lite">Spaghetti Marshmallow</a> &#8211; budovatelská hra s výbornou fyzikou</li>
<li><a href="https://market.android.com/details?id=web.mod">TravDroid</a> &#8211; Travian klient</li>
<li><a href="https://market.android.com/details?id=com.galapagossoft.trial">Trial Xtreme</a> ($1.99) &#8211; motorka</li>
<li><a href="http://www.appbrain.com/app/unblock-me-free/com.kiragames.unblockmefree">Unblock Me</a> &#8211; logická hra</li>
</ul>
<h1>Design &#8211; inspirace pro vývojáře</h1>
<ul>
<li><a href="https://market.android.com/details?id=gdd11.app">GDD</a> &#8211; Google Developers Day</li>
<li><a href="https://market.android.com/details?id=com.sleekbit.ovuview">OvuView</a> &#8211; i ženy mají své dny</li>
</ul>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.jestrab.net%2Fnejlepsi-aplikace-pro-android%2F&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="padding: 0px 0px; border:none; overflow:hidden; width:450px; height:70px;"></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://blog.jestrab.net/nejlepsi-aplikace-pro-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ARToolKit – rozšířená realita</title>
		<link>http://blog.jestrab.net/artoolkit/</link>
		<comments>http://blog.jestrab.net/artoolkit/#comments</comments>
		<pubDate>Mon, 15 Nov 2010 13:40:03 +0000</pubDate>
		<dc:creator>Petr Nohejl</dc:creator>
				<category><![CDATA[Informační technologie]]></category>
		<category><![CDATA[ARToolKit]]></category>
		<category><![CDATA[augmented reality]]></category>
		<category><![CDATA[programování]]></category>
		<category><![CDATA[projekt]]></category>
		<category><![CDATA[tutoriál]]></category>

		<guid isPermaLink="false">http://blog.jestrab.net/?p=204</guid>
		<description><![CDATA[V tomto článku bych chtěl popsat, co je ARToolKit, jak funguje, co umí, jak se v něm programuje a jak se instaluje. Obsah článku je převzat z mého školního projektu do předmětu GZN. Více o ARToolKit se můžete dozvědět na oficiálních stránkách projektu. Úvod ARToolKit je knihovna, která umožňuje programovat aplikace s rozšířenou realitou (augmented [...]]]></description>
			<content:encoded><![CDATA[<p>V tomto článku bych chtěl popsat, co je ARToolKit, jak funguje, co umí, jak se v něm programuje a jak se instaluje. Obsah článku je převzat z mého školního projektu do předmětu <abbr title="Grafická a zvuková rozhraní a normy">GZN</abbr>. Více o ARToolKit se můžete dozvědět na <a href="http://www.hitl.washington.edu/artoolkit/">oficiálních stránkách projektu</a>.</p>
<h1>Úvod</h1>
<p>ARToolKit je knihovna, která umožňuje programovat aplikace s rozšířenou realitou (augmented reality).  Jedná se o nástroj počítačového vidění, který snímá v reálném čase obraz pomocí videokamery a dokáže vypočítat pozici, vzdálenost a rotaci kamery vzhledem k daným objektům, které jsou označeny speciálními značkami (markers). Výsledkem je reálný obraz s dokreslenou virtuální (rozšířenou) realitou ve 3D. 3D objekty se obvykle vykreslují na trasovací značky a překrývají je. Trasovacích značek může být ve scéně použito více.</p>
<p>Pro lepší představu uvedeme příklad. Na obrázku 1 níže je modrá virtuální krychle, která stojí na skutečné papírové podložce, na které je vytištěna speciální trasovací značka s identifikačním symbolem. Obraz snímá v reálném čase kamera. Když uživatel posune či otočí značku, krychle se pohne s ní. Když uživatel posune značku mimo zorný úhel kamery, krychle zmizí.</p>
<div id="attachment_213" class="wp-caption alignnone" style="width: 310px"><a title="Obr. 1: Modrá krychle se v reálném čase vykresluje na trasovací značku ve skutečném obraze." rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/artoolkit-01.jpg"><img class="size-medium wp-image-213   " title="Obr. 1: Modrá krychle se v reálném čase vykresluje na trasovací značku ve skutečném obraze." src="http://blog.jestrab.net/wp-content/uploads/artoolkit-01-300x234.jpg" alt="Obr. 1: Modrá krychle se v reálném čase vykresluje na trasovací značku ve skutečném obraze." width="300" height="234" /></a><p class="wp-caption-text">Obr. 1: Modrá krychle se v reálném čase vykresluje na trasovací značku ve skutečném obraze.</p></div>
<p>V následujícím textu se některé uvedené názvy/cesty k souborům ARToolKit vztahují k ukázkovým příkladům pro OS Windows (Visual Basic).</p>
<h1>Historie</h1>
<p>Knihovnu ARToolKit vyvinul Japonec Dr. Hirokazu Kato z Nara Institute of Science and Technology v roce 1999. Vydána byla jako opensource Univerzitou ve Washingtonu. Nyní je vývoj pozastaven a poslední dostupná verze knihovny je z května 2007.</p>
<h1>Co ARToolKit umí?</h1>
<ul>
<li>rozpoznávání trasovacích značek</li>
<li>trasování pozice a rotace kamery metodami počítačového vidění</li>
<li>kalibrace kamery</li>
<li>zpracování obrazu v reálném čase</li>
<li>knihovna zajišťující zpracování videa</li>
<li>ARToolKit je napsán v jazyce C/C++</li>
<li>podpora OpenGL, GLUT a VRML (OpenVRML) pro vykreslování virtuálního obrazu</li>
<li>podpora více OS (Linux, MS Windows, Mac OS X) a mobilních platforem (Android, Symbian, iPhone)</li>
<li>podpora 3D virtuálních brýlí</li>
<li>řada nástrojů a příkladů</li>
<li>mnoho mutací (pro Flash, Silverlight, Virtual machines, OpenSceneGraph atd.)</li>
</ul>
<h1>Jak ARToolKit funguje?</h1>
<h2>Základní princip</h2>
<p>Hlavním problémem při vývoji aplikací s rozšířenou realitou je správně najít a trasovat zorný úhel pozorovatele (videokamery).  Aplikace potřebuje znát přesnou pozici videokamery vůči značkám, aby byla schopna určit zorný bod, ze kterého se bude vykreslovat virtuální obraz. Jakmile je známa pozice videokamery, která se vypočte podle polohy a natočení značek, virtuální kamera může být umístěna do stejného bodu jako ta reálná a poté je možno vykreslit 3D modely přesně na místa značek. ARToolKit používá pro trasování pozice kamery algoritmy počítačového vidění, které jsou schopny počítat rychle v reálném čase. Výsledky jsou však závislé na použitém hardware a videokameře.</p>
<h2>Fáze zpracování obrazu v reálném čase</h2>
<ol>
<li>Videokamera sejme snímek a pošle jej počítači ke zpracování.</li>
<li>Program v počítači zpracuje snímek z videa, převede jej pomocí prahování na černo-bílý obraz a najde v něm všechny černé čtverhranné tvary, které odpovídají vzorům trasovacích značek.</li>
<li>Pokud jsou nějaké značky detekovány, program vypočítá pozici a rotaci kamery vůči trasovacím značkám.</li>
<li>Jakmile je známa poloha kamery, virtuální 3D grafika může být vykreslena ze stejné pozice.</li>
<li>Virtuální grafika je vykreslena přes reálný snímek z videokamery a objekty se zobrazí přesně na místa trasovacích značek.</li>
</ol>
<div id="attachment_214" class="wp-caption alignnone" style="width: 310px"><a title="Obr. 2: Fáze zpracování obrazu ARToolKit v reálném čase." rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/artoolkit-02.jpg"><img class="size-medium wp-image-214  " title="Obr. 2: Fáze zpracování obrazu ARToolKit v reálném čase." src="http://blog.jestrab.net/wp-content/uploads/artoolkit-02-300x130.jpg" alt="Obr. 2: Fáze zpracování obrazu ARToolKit v reálném čase." width="300" height="130" /></a><p class="wp-caption-text">Obr. 2: Fáze zpracování obrazu ARToolKit v reálném čase.</p></div>
<h2>Omezení</h2>
<p>ARToolKit má určitá omezení, které je potřeba při vývoji aplikací s rozšířenou realitou brát v úvahu.</p>
<ul>
<li>Virtuální objekty se objeví pouze tehdy, kdy jsou příslušné trasovací značky plně viditelné ze strany pozorovatele (videokamery). Pokud je část značky zakryta, nelze ji rozpoznat.</li>
<li>Správná detekce trasovacích značek ve videu je závislá na světelných podmínkách ve scéně. Při špatném osvětlení nemusí být značky v prahovaném obraze detekovány. Rušit mohou i odlesky světla na značkách. Problémy se světlem lze částečně redukovat nastavením vhodného prahu.</li>
<li>Správná detekce značek je rovněž závislá na naklonění značek vůči pozorovateli (videokameře). Čím více je značka nakloněna, tím hůře se rozpoznává.</li>
<li>Při tvorbě vlastních značek je důležité zvolit vhodné symboly. Platí, že čím jednodušší, tím lepší a tím snadněji se správně rozpozná. Nejvhodnější jsou značky s velkými černými a bílými místy (s nízkou frekvencí). Komplexnější vzory jsou z větší dálky hůře detekovány a můžou zkrátit rozlišovací vzdálenost až o polovinu. V tabulce 1 jsou znázorněny přibližné rozlišovací vzdálenosti trasovacích značek, které byly experimentálně zjištěny.</li>
</ul>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="206" valign="top">Velikost značky [cm]</td>
<td width="212" valign="top">Max. použitelná vzdálenost [cm]</td>
</tr>
<tr>
<td width="206" valign="top">7.0</td>
<td width="212" valign="top">40.6</td>
</tr>
<tr>
<td width="206" valign="top">8.9</td>
<td width="212" valign="top">63.5</td>
</tr>
<tr>
<td width="206" valign="top">10.8</td>
<td width="212" valign="top">86.4</td>
</tr>
<tr>
<td width="206" valign="top">18.7</td>
<td width="212" valign="top">127</td>
</tr>
</tbody>
</table>
<p>Tabulka 1: Rozlišovací vzdálenost trasovacích značek o různé velikosti.</p>
<h2>Kalibrace kamery</h2>
<p>Nastavení a parametry videokamery jsou uloženy v binárním souboru camera_para.dat (v adresáři bin/Data). Konfigurace kamery se zpracuje při každém spuštění aplikace ARToolKit.</p>
<p>ARToolKit používá implicitně soubor camera_para.dat s výchozím nastavením. Rovněž však umožňuje kalibraci jakékoliv kamery a vytvoření vlastního konfiguračního souboru. To je vhodné zejména pro kamery s atypickými objektivy (např. rybí oko). Kalibrace zajistí přesnější výpočty polohy videokamery pro vykreslení virtuální scény a redukuje zkreslení. Pro správné provedení kalibrace bude potřeba vytisknout vzory calib_dist a calib_cpara (z adresáře patterns), s kterými budeme pracovat podobně jako se značkami. K dispozici jsou dva kalibrační postupy.</p>
<ul>
<li>Dvoukroková kalibrace &#8211; složitější použití, ale lepší výsledky. Vhodnější pro 3D měření.</li>
<li>Jednokroková kalibrace &#8211; jednodušší použití, méně přesná.</li>
</ul>
<h2>Přesnost trasování objektů</h2>
<p>ARToolKit umí stabilizovat trasování objektů pomocí funkce historie. Tato stabilizace redukuje chvění virtuálních objektů, protože při výpočtu polohy objektu se využívá průměr několika předchozích poloh. Tímto je zajištěna větší stabilita, ale horší přesnost. Historii lze použít rovněž i při detekci značek. Výpočet je potom o něco rychlejší a stabilnější, ale opět méně přesný.</p>
<h1>Trasovací značky</h1>
<h2>Metody trasování</h2>
<p>Trasovací značky jsou speciální vzory, obvykle vytištěné na papíru, pomocí kterých se trasují virtuální objekty rozšířené reality. Je to jedna z metod, jak lze trasovat vrstvu rozšířené reality. Tato metoda využívá počítačové vidění. Další možnou metodou trasování můžou být např. polohovací senzory (GPS, kompas, akcelerometr), které jsou dostupné zpravidla na moderních mobilních zařízeních.</p>
<h2>Podoba trasovacích značek</h2>
<p>Z polohy značek ve video obrazu se vypočítává pozice a rotace kamery. Značky v ARToolKit mají čtvercový tvar. Tvoří je černobílý symbol s černým okrajem o šířce, která je rovna polovině šířky vnitřní plochy se symbolem. Vnitřní symbol je černý na bílém podkladu a slouží k rozlišení více různých značek od sebe. Měl by být co nejjednodušší (viz kapitola 4.3) a nesmí být středově souměrný, aby bylo možné rozlišit orientaci (natočení) značky ve scéně. Tedy např. značka s kruhem uprostřed je nevhodná. Pokud používáme více značek v aplikaci s rozšířenou realitou, tyto značky by neměly být vzájemně podobné, aby nedošlo k záměně. Značky je vhodné tisknout na tvrdý, nelesknoucí se papír a případně podlepit kartonem, aby se neohýbaly. Je potřeba zvolit vhodnou velikost značky podle použití. Na obrázku 3 jsou ukázány příklady trasovacích značek, které lze rovněž najít v adresáři patterns ve formátu PDF k vytisknutí.</p>
<div id="attachment_215" class="wp-caption alignnone" style="width: 310px"><a title="Obr. 3: Ukázky trasovacích značek ARToolKit." rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/artoolkit-03.jpg"><img class="size-medium wp-image-215 " title="Obr. 3: Ukázky trasovacích značek ARToolKit." src="http://blog.jestrab.net/wp-content/uploads/artoolkit-03-300x90.jpg" alt="Obr. 3: Ukázky trasovacích značek ARToolKit." width="300" height="90" /></a><p class="wp-caption-text">Obr. 3: Ukázky trasovacích značek ARToolKit.</p></div>
<h2>Konfigurační soubor</h2>
<p>Seznam použitých značek je obvykle uložen v konfiguračním souboru object_data (v adresáři bin/Data), který se načítá při inicializaci aplikace ARToolKit.  V souboru je uložen počet použitých značek a ke každé značce její pojmenování, datový soubor, šířka značky na vytištěném papíru v milimetrech (včetně okrajů) a její střed.</p>
<h2>Tvorba vlastních značek</h2>
<p>ARToolKit umožňuje tvorbu vlastních značek pomocí nástroje mk_patt. Tento program umožňuje vygenerovat datový soubor značky z natrénovaných dat z videokamery. Než spustíme trénování, je potřeba vhodně navrhnout symbol naší nové značky a následně značku vytisknout. Pro tvorbu značek lze použít šablonu, uloženou v souboru patterns/blankPatt.gif. Nakonec je potřeba vytvořit příslušný konfigurační soubor k vytvořeným značkám.</p>
<h2>Trasování pomocí více značek</h2>
<p>ARToolKit umožňuje trasování jednoho objektu pomocí více značek. Pomocí sady několika značek s vzájemně neměnnou pozicí (např. značky nalepené na pevné podložce) lze určit jedinou polohu. To lze využít v případě, kdy některá značka je mimo zorný úhel pozorovatele (videokamery). V běžném případě by objekt zmizel, ale pomocí multi značek lze pozici dopočítat. Pokud je viditelná alespoň jedna značka z dané sady, ARToolKit dokáže dopočítat pozici zbylých značek, které jsou mimo zorný úhel. Sadu multi značek je potřeba nadefinovat v konfiguračním souboru marker.dat (v adresáři bin/Data/multi), obdobně jako běžné značky. Navíc je potřeba pro každou značku nastavit transformační matici, udávající přesnou polohu v souřadnicovém systému. Správné nastavení transformační matice může být v některých případech velmi obtížné.</p>
<h1>Vývoj aplikací v ARToolKit</h1>
<h2>ARToolKit framework</h2>
<p>ARToolKit poskytuje funkce, které se volají v určitém pořadí a tvoří tak program s rozšířenou realitou. Některé funkce je však možné používat samostatně. ARToolKit je multiplatformní, pro renderování virtuální vrstvy používá OpenGL a pro správu událostí a oken používá GLUT. API je napsáno v jazyce C.</p>
<p>ARToolKit tvoří tři hlavní moduly:</p>
<ul>
<li>AR modul &#8211; jádro systému, zajišťující trasování značek a zpracování parametrů kamery.</li>
<li>Video modul &#8211; zajišťuje snímání video obrazu.</li>
<li>Gsub modul &#8211; funkce zajišťující vykreslování 3D grafiky.</li>
</ul>
<div id="attachment_216" class="wp-caption alignnone" style="width: 310px"><a title="Obr. 4: Architektura ARToolKit." rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/artoolkit-04.jpg"><img class="size-medium wp-image-216" title="Obr. 4: Architektura ARToolKit." src="http://blog.jestrab.net/wp-content/uploads/artoolkit-04-300x182.jpg" alt="Obr. 4: Architektura ARToolKit." width="300" height="182" /></a><p class="wp-caption-text">Obr. 4: Architektura ARToolKit.</p></div>
<h2>Formát obrazových dat</h2>
<p>Jednotlivé moduly ARToolKit používají odlišné formáty obrazových dat.</p>
<div id="attachment_217" class="wp-caption alignnone" style="width: 310px"><a title="Obr. 5: Formát dat při zpracování obrazu v ARToolKit." rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/artoolkit-05.jpg"><img class="size-medium wp-image-217  " title="Obr. 5: Formát dat při zpracování obrazu v ARToolKit." src="http://blog.jestrab.net/wp-content/uploads/artoolkit-05-300x80.jpg" alt="Obr. 5: Formát dat při zpracování obrazu v ARToolKit." width="300" height="80" /></a><p class="wp-caption-text">Obr. 5: Formát dat při zpracování obrazu v ARToolKit.</p></div>
<h2>Kostra zdrojového kódu aplikace</h2>
<ol>
<li>Inicializace &#8211; inicializace a nastavení videokamery, zpracování konfiguračního souboru značek.</li>
<li>Hlavní smyčka:
<ol>
<li>Načtení snímku z videokamery.</li>
<li>Detekce trasovacích značek a rozpoznání vzorů ve snímku.</li>
<li>Výpočet pozice a rotace kamery vzhledem k rozpoznaným značkám.</li>
<li>Vykreslení snímku a virtuálních objektů.</li>
</ol>
</li>
<li>Ukončení &#8211; ukončení snímání videokamery a vypnutí programu.</li>
</ol>
<h1>Instalace ARToolKit pro Visual Studio</h1>
<h2>Prerekvizity</h2>
<ul>
<li>Vývojové prostředí Microsoft Visual Studio, případně Cygwin.</li>
<li>Knihovna DSVideoLib, zajišťující komunikaci s ovladači videokamery (DSVideoLib je součástí instalačního balíčku ARToolKit).</li>
<li>GLUT (OpenGL Utility Toolkit) runtime a SDK.</li>
<li>DirectX 9.0b nebo novější.</li>
<li>Videokamera nebo webkamera, podporující rozhraní USB nebo Firewire.</li>
<li>OpenVRML knihovna (je součástí instalačního balíčku ARToolKit).</li>
</ul>
<h2>Instalace</h2>
<ol>
<li>Stáhneme instalační balíček z oficiálního webu <a href="http://www.hitl.washington.edu/artoolkit/">http://www.hitl.washington.edu/artoolkit/</a>, případně balíček ARToolKit-2.7.1-bin-book.zip z adresy <a href="http://books.ascii.jp/9784048673617/">http://books.ascii.jp/9784048673617/</a>, kde jsou opraveny některé zdrojové kódy, které v původní verzi způsobovaly chyby při kompilaci programů, pracujících s OpenVRML.</li>
<li>Rozbalíme instalační balíček do adresáře [ARToolKit].</li>
<li>Rozbalíme knihovnu DSVideoLib do adresáře „DSVL“ v [ARToolKit].</li>
<li>Zkopírujeme soubory DSVL.dll a DSVLd.dll z adresáře [ARToolKit]\DSVL\bin do [ARToolKit]\bin.</li>
<li>Nainstalujeme knihovny GLUT. Dll soubory zkopírujeme do systémové složky Windows „System32“. Knihovny a hlavičkové soubory umístíme do SDK adresáře Visual Studia.</li>
<li>Spustíme skript [ARToolKit]\Configure.win32.bat, který vytvoří soubor include\AR\config.h.</li>
<li>Otevřeme ARToolKit.sln ve Visual Studiu a sestavíme solution příkazem Build.</li>
<li>Pro zprovoznění OpenVRML rozbalíme tento balíček do adresáře [ARToolKit].</li>
<li>Zkopírujeme soubor js32.dll z adresáře [ARToolKit]\OpenVRML\bin do [ARToolKit]\bin.</li>
<li>V konfiguračním manažeru Visual Studia povolíme projekty libARvrml a simpleVRML a znovu sestavíme příkazem Build.</li>
</ol>
<h2>Struktura ARToolKit</h2>
<p>ARToolKit obsahuje následující adresáře:</p>
<ul>
<li>bin &#8211; nástroje, příklady, kalibrační soubory videokamery, konfigurační soubory značek a multi-značek, VRML modely a jejich konfigurační soubory, spustitelné programy končící sufixem „d“ jsou určeny pro ladění (debug)</li>
<li>doc &#8211; dokumentace</li>
<li>DSVL &#8211; soubory knihovny DSVideoLib</li>
<li>examples &#8211; zdrojové soubory ukázkových aplikací</li>
<li>include &#8211; hlavičkové soubory ARToolKit</li>
<li>lib &#8211; knihovny a zdrojové kódy ARToolKit</li>
<li>OpenVRML &#8211; soubory knihovny OpenVRML</li>
<li>patterns &#8211; trasovací značky v PDF k vytisknutí</li>
<li>util &#8211; zdrojové soubory nástrojů</li>
</ul>
<h2>Testovací a ukázkové aplikace</h2>
<p>Po úspěšném sestavení solution bychom měli vyzkoušet testovací aplikace (v adresáři bin) a ověřit, zda vše správně funguje. Nejdříve bychom měli vyzkoušet grafický test graphicsTest, kterým ověříme správnou funkčnost OpenGL a GLUT. Na obrazovce by se měla po spuštění programu objevit modrá rotující konvička. Dále vyzkoušíme video test videoTest, kterým ověříme správnou funkčnost videokamery a zobrazování video výstupu na displeji. Na obrazovce by se mělo objevit okno s nastavením konfigurace kamery (podobně jako na obrázku 6) a po potvrzení a zvolení správného nastavení obraz z videokamery. Pokud oba tyto testy fungují správně, máte potvrzeno, že vaše kamera podporuje grafický modul a video modul ARToolKit.</p>
<div id="attachment_218" class="wp-caption alignnone" style="width: 310px"><a title="Obr. 6: Nastavení konfigurace videokamery." rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/artoolkit-06.jpg"><img class="size-medium wp-image-218  " title="Obr. 6: Nastavení konfigurace videokamery." src="http://blog.jestrab.net/wp-content/uploads/artoolkit-06-300x246.jpg" alt="Obr. 6: Nastavení konfigurace videokamery." width="300" height="246" /></a><p class="wp-caption-text">Obr. 6: Nastavení konfigurace videokamery.</p></div>
<p>Pro spuštění ukázkových aplikací ARToolKit je potřeba mít k dispozici vytisknuté trasovací značky (z adresáře patterns). Některé ukázkové aplikace mají implementovaný debug mode, který se zapíná/vypíná tlačítkem „d“ a zobrazuje prahovaný obraz. U některých aplikací lze nastavit manuálně hodnotu prahu pomocí tlačítka „t“. Zdrojové kódy ukázkových aplikací nalezneme v adresáři examples.</p>
<h1>Příklady využití</h1>
<ul>
<li>zábava, hry</li>
<li>interaktivní průvodce v muzeu</li>
<li>navigace v budově</li>
<li>efekty ve filmu</li>
<li>reklama na plakátu</li>
</ul>
<h1>Zdroje</h1>
<p><em>[1] OsgART</em> [online]. 2009 [cit. 2010-11-04]. OsgART: Augmented Reality for OpenSceneGraph. Dostupné z WWW: &lt;http://osgart.org/wiki/File:Build_artoolkit_simpletest.jpg&gt;.</p>
<p><em>[2] ARToolKit</em> [online]. 2007 [cit. 2010-11-04]. ARToolKit Documentation &#8211; How does ARToolKit work. Dostupné z WWW: &lt;http://www.hitl.washington.edu/artoolkit/documentation/images/diagram.jpg&gt;.</p>
<p><em>[3] ARToolKit</em> [online]. 2007 [cit. 2010-11-04]. ARToolKit Documentation &#8211; ARToolKit framework. Dostupné z WWW: &lt;http://www.hitl.washington.edu/artoolkit/documentation/images/artarchitecture.jpg&gt;.</p>
<p><em>[4] ARToolKit</em> [online]. 2007 [cit. 2010-11-04]. ARToolKit Documentation &#8211; ARToolKit framework. Dostupné z WWW: &lt;http://www.hitl.washington.edu/artoolkit/documentation/images/formatpipeline.jpg&gt;.</p>
<p><em>[5] ARToolKit</em> [online]. 2007 [cit. 2010-11-04]. ARToolKit Documentation &#8211; First example.<br />
Dostupné z WWW: &lt;http://www.hitl.washington.edu/artoolkit/documentation/images/configCamWindows.jpg&gt;.</p>
<p>[6] <em>ARToolKit</em> [online]. 2007 [cit. 2010-11-04]. Dostupné z WWW: &lt;http://www.hitl.washington.edu/artoolkit/&gt;.</p>
<p>[7] ARToolKit. In <em>Wikipedia : the free encyclopedia</em> [online]. St. Petersburg (Florida) : Wikipedia Foundation, 16.1.2008, last modified on 11.6.2010 [cit. 2010-11-04]. Dostupné z WWW: &lt;http://en.wikipedia.org/wiki/ARToolKit&gt;.</p>
<p>[8] KATO, Hirokazu. <em>Inside ARToolKit</em> [online]. Japan : Hiroshima City University, 2002 [cit. 2010-11-04]. Dostupné z WWW: &lt;http://www.hitl.washington.edu/artoolkit/Papers/ART02-Tutorial.pdf&gt;.</p>
<p>[9] KATO, Hirokazu; BILLINGHURST, Mark. <em>Marker Tracking and HMD Calibration for a Video-based Augmented Reality Conferencing System</em> [online]. Hiroshima City University and University of Washington : Faculty of Information Sciences and Human Interface Technology Laboratory, 1999 [cit. 2010-11-04]. Dostupné z WWW: &lt;http://www.hitl.washington.edu/artoolkit/Papers/IWAR99.kato.pdf&gt;.</p>
<p>[10] <em>ARToolworks support library</em> [online]. 2010 [cit. 2010-11-04]. ARToolKit Professional. Dostupné z WWW: &lt;http://www.artoolworks.com/support/library/ARToolKit_Professional&gt;.</p>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.jestrab.net%2Fartoolkit%2F&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="padding: 0px 0px; border:none; overflow:hidden; width:450px; height:70px;"></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://blog.jestrab.net/artoolkit/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Šangri-la</title>
		<link>http://blog.jestrab.net/sangri-la/</link>
		<comments>http://blog.jestrab.net/sangri-la/#comments</comments>
		<pubDate>Sat, 13 Nov 2010 00:00:56 +0000</pubDate>
		<dc:creator>Petr Nohejl</dc:creator>
				<category><![CDATA[Akce]]></category>
		<category><![CDATA[cestování]]></category>
		<category><![CDATA[výstava]]></category>

		<guid isPermaLink="false">http://blog.jestrab.net/?p=206</guid>
		<description><![CDATA[O víkendu před dvěma týdny jsme s Janie navštívili výstavu Šangri-la, která se konala v areálu Brněnské Olympie. Na výstavu jsme se chystali už delší dobu, protože jsme měli výhodný voucher ze Slevomatu, který v listopadu končí. Strávili jsme tam asi 4 hodiny a kdyby už nezavírali, určitě bych tam zůstal i déle. Z výstavy [...]]]></description>
			<content:encoded><![CDATA[<p>O víkendu před dvěma týdny jsme s Janie navštívili výstavu Šangri-la, která se konala v areálu Brněnské Olympie. Na výstavu jsme se chystali už delší dobu, protože jsme měli výhodný voucher ze Slevomatu, který v listopadu končí. Strávili jsme tam asi 4 hodiny a kdyby už nezavírali, určitě bych tam zůstal i déle. Z výstavy jsem byl nadšen, a proto bych se s vámi rád podělil o některé postřehy.</p>
<p>Výstava byla rozdělena na 4 části: Nepál, Tibet, Bhůtán a Indie. Pomocí zajímavých fotografií s popisem, poučných textů, příběhů, předmětů, rekvizit a video projekcí byl divák vtažen do děje a doslova pohlcen kulturami a náboženstvím této krásné a tajemné země. Jakoby se zastavil čas a já se na chvíli odprostil od všech starostí, stresů a užíval atmosféru pohody, světa plného barev, historie a krásné přírody.</p>
<p>Výstava začínala v džungli. Viděli jsme mnoho krásných fotografií místních domorodců s body-tuningem (ozdoby v uších, v nose, tetování apod.), zahráli jsme si na animistický bubínek a poseděli v chýši u ohně. Dozvěděli jsme se, že nejnebezpečnějším zvířetem v džungli není tygr nebo kobra, nýbrž komár Anopheles, který přenáší malárii. Na ní umírají milióny domorodců, kteří nemají léky. Cestovatel, který vyprávěl svůj příběh líčil, že malárii dostal 8x, ale pokaždé měl naštěstí u sebe léky.</p>
<p>Dále jsme se dostali do civilizace v Nepálu, kde jsme narazili na Yettiho. Ale byl na nás hodný. Na fotkách jsme si prohlédli mladou princeznu-bohyni, která je uctívána a hýčkána do té doby, než dostane první menstruaci. Poté už není čistá, stává se obyčejným člověkem a nahradí ji mladší nástupkyně.</p>
<div id="attachment_208" class="wp-caption alignnone" style="width: 310px"><a title="Yetti" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/sangri-la-5.jpg"><img class="size-medium wp-image-208" title="Yetti" src="http://blog.jestrab.net/wp-content/uploads/sangri-la-5-300x176.jpg" alt="Yetti" width="300" height="176" /></a><p class="wp-caption-text">Yetti</p></div>
<p>Došli jsme až do hor, těch nejvyšších na světě, tedy Himalájí. Na Mt. Everest vedou dvě cesty. Nejdřív jsme zvolili první cestu přes ledopád a prošli chladnou jeskyni. Přečetli jsme si příběhy horolezců (mimo jiné i dobrodružství Pražského primátora Pavla Béma), uviděli sněhuláka v Himalájích a dokonce i originál sněhovou kouli, bohužel rozteklou v uzavřené lahvi. Pak jsme se vydali tou druhou cestou přes vrcholky a vylezli až na samotný vrchol Mt. Everest. Dozvěděli jsme se také o zajímavém způsobu pohřbívání v horách. Jelikož je zde velký nedostatek stromů, kremace není příliš reálná. Pohřbení do země je zase náročné, zřejmě kvůli skalnaté a kamenité zemi. Proto se pohřbívá tím způsobem, že se zesnulý rozřeže a nechá ležet. Supi mrtvé tělo sežerou a zesnulý tak vykoná svůj poslední dobrý skutek &#8211; nakrmí svým tělem živé tvory.</p>
<div id="attachment_209" class="wp-caption alignnone" style="width: 310px"><a title="Himaláje" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/sangri-la-3.jpg"><img class="size-medium wp-image-209 " title="Himaláje" src="http://blog.jestrab.net/wp-content/uploads/sangri-la-3-300x225.jpg" alt="Himaláje" width="300" height="225" /></a><p class="wp-caption-text">Himaláje</p></div>
<p>Dostali jsme se do Tibetu a následně Bhůtánu. Zatočili jsme si modlitebími mlýnky, které za nás automaticky odříkaly modlitby, zahráli si na hrací misky, které vydávaly meditační dunivý tón, navštívili jsme klášter i obydlí chudých domorodců &#8211; obyčejný stan. Všude bylo spoustu barevných praporků s modlitbami. Modrá znamená nebe, bílá mraky, žlutá zemi, zelená vodu, červená oheň. Zajímavé bylo líčení pouti kolem nejposvátnější hory Kailas. Věřící plazivým krokem obejdou 50 km krkolomnou cestu za 3 týdny. Plazí se i po kamenech nebo v bahně.</p>
<div id="attachment_211" class="wp-caption alignnone" style="width: 310px"><a title="Klášter" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/sangri-la-1.jpg"><img class="size-medium wp-image-211 " title="Klášter" src="http://blog.jestrab.net/wp-content/uploads/sangri-la-1-300x225.jpg" alt="Klášter" width="300" height="225" /></a><p class="wp-caption-text">Klášter</p></div>
<p>Ocitli jsme se na chvíli i v pekle! Dočetli jsme se  zajímavosti o východních náboženstvích. Budhismus je ateistický, v umění se často vyskytují erotické motivy a jsou uctívány falické předměty. Budhisté nesmí zabít žádného živého tvora. Hinduismus zase uctívá krávy. Hinduistou se nemůžete stát jen tak, musíte se jím narodit. Vyznavači Islámu zase nesmí jíst vepřové maso. V pekle nás zaujal krásný asijský drak, tak jsme se u něj vyfotili.</p>
<div id="attachment_210" class="wp-caption alignnone" style="width: 310px"><a title="Drak" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/sangri-la-2.jpg"><img class="size-medium wp-image-210 " title="Drak" src="http://blog.jestrab.net/wp-content/uploads/sangri-la-2-300x225.jpg" alt="Drak" width="300" height="225" /></a><p class="wp-caption-text">Drak</p></div>
<p>Poslední zemí, kterou jsme navštívili byla Indie, jedna z nejlidnatějších zemí světa. Přešli jsme po mostě řeku Ganga a dozvěděli se, že obyvatelé Indie konají před smrtí pouť k posvátné řece Ganga, aby zde strávili poslední chvíle života a očistili se od všech hříchů. Po smrti jsou mrtvoly spalovány a hozeny do řeky. Obřad je poměrně finančně nákladný. Ti chudší si nemohou dovolit drahé palivo na spálení, a tak nejsou spáleni zcela a stávají se potravou dravých ptáků. Prošli jsme také rušnými ulicemi Indie, kde se vyskytují nejrůznější obchodníci a živnostníci. Například čistič uší. Obyvatelé Indie mají na čele různé malůvky, které symbolizují jejich zařazení do jakési náboženské skupiny. Nakonec jsme si také nezapomněli polít vodou sochu bůžka, který prý nosí studentům štěstí při zkouškách.</p>
<div id="attachment_212" class="wp-caption alignnone" style="width: 310px"><a title="Rekvizity výstavy" rel="lightbox" href="http://blog.jestrab.net/wp-content/uploads/sangri-la-4.jpg"><img class="size-medium wp-image-212 " title="Rekvizity výstavy" src="http://blog.jestrab.net/wp-content/uploads/sangri-la-4-300x213.jpg" alt="Rekvizity výstavy" width="300" height="213" /></a><p class="wp-caption-text">Rekvizity výstavy</p></div>
<p>Výstava se mi moc líbila. Byla zajímavá a poučná. Na několika místech se pouštěly i zajímavé filmy. Bohužel nebyl čas je všechny shlédnout. Pomocí rekvizit (džungle, jeskyně, hora, klášter, peklo) jsem se dokázal na chvíli teleportovat do Asie, zastavit čas, meditovat a užívat si té příjemné atmosféry celé výstavy. Všem co ještě Šangri-la nenavštívili doporučuji, aby si pospíšili, protože výstava brzy končí. Určitě se vám bude líbit.</p>
<h4>Hodnocení: 9/10</h4>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.jestrab.net%2Fsangri-la%2F&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="padding: 0px 0px; border:none; overflow:hidden; width:450px; height:70px;"></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://blog.jestrab.net/sangri-la/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

