<h1>Základní informace</h1>
<p>Máme dodat řešení, které umožní vložit 2D a 3D objekty reprezentující historické elementy do obrazu reálného světa. Řešení poběží na platformě Android. Nemusíme dodat celé řešení, pouze dema řešící klíčovou funkcionalitu. Budeme se podílet i návrhu ovládání (základního konceptu).</p>
<p>Projekt musí být dokončen <strong>do konce září 2015</strong>.</p>
<h2>GIT repositář</h2>
<p>K nalezení na adrese http://aurel.mendelu.cz/git/historybrowser.git, zároveň je napojen i na tento projekt v Redmine.</p>
<h2>Rozchození</h2>
<p>Čerpal jsem z návodu: <a href="http://blog.hig.no/gtl/2014/08/28/opencv-and-android-studio/">http://blog.hig.no/gtl/2014/08/28/opencv-and-android-studio/</a></p>
<h3>Prerekvizity:</h3>
<ul>
<li>Android Studio s nainstalovaným Android SDK 19 nebo vyšším (nebo všemi).</li>
<li>OpenCV for Android z <a href="http://opencv.org/downloads.html">http://opencv.org/downloads.html</a>&nbsp;(verze 3.0)</li>
</ul>
<h3>Návod:</h3>
<p>1. Rozbalit OpenCV</p>
<p>2. Vytvořit nový projekt v Android Studiu, vybrat např. API 15, šablona např. Blank Activity, vhodně pojmenovat první aktivitu</p>
<p><a href="http://i.imgur.com/sc1JgnK.png" target="_blank"><img alt="" src="http://i.imgur.com/sc1JgnK.png" style="width: 400px; height: 232px;" /></a> <a href="http://i.imgur.com/eHcjLiQ.png" target="_blank"><img alt="" src="http://i.imgur.com/eHcjLiQ.png" style="width: 400px; height: 232px;" /></a> <a href="http://i.imgur.com/v8qqQZZ.png" target="_blank"><img alt="" src="http://i.imgur.com/v8qqQZZ.png" style="width: 400px; height: 232px;" /></a> <a href="http://i.imgur.com/lHkJQp5.png" target="_blank"><img alt="" src="http://i.imgur.com/lHkJQp5.png" style="width: 400px; height: 232px;" /></a></p>
<p>3. Otevřít složku nově vytvořeného projektu a vytvořit v ní novou složku "libraries"</p>
<p>4. Otevřít složku "libraries" a otevřít si složku s rozbaleným OpenCV. Zkopírovat složku "/opencv/sdk/java" do "/libraries/" a přejmenovat složku "/libraries/java/" na "opencv"</p>
<p><a href="http://i.imgur.com/kqJY1Fm.png" target="_blank"><img alt="" src="http://i.imgur.com/kqJY1Fm.png" style="width: 400px; height: 232px;" /></a> <a href="http://i.imgur.com/tO9w1Fc.png" target="_blank"><img alt="" src="http://i.imgur.com/tO9w1Fc.png" style="width: 400px; height: 232px;" /></a></p>
<p>5. Ve složce "/libraries/opencv" vytvořit soubor "build.gradle" a zkopírovat do něj tento kód:</p>
<pre style="margin-top: 1.6em; margin-bottom: 1.6em; padding: 6px 10px; border-style: solid; border-color: rgb(170, 170, 170) rgb(170, 170, 170) rgb(204, 204, 204); font-family: monospace, serif; font-stretch: inherit; line-height: 21px; font-size: 14px; vertical-align: middle; box-sizing: border-box; width: 605.484375px; height: auto; border-top-left-radius: 2px; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 2px; outline: none; -webkit-box-shadow: rgb(255, 255, 255) 0px 1px 0px, rgba(0, 0, 0, 0.2) 0px 1px 1px inset; box-shadow: rgb(255, 255, 255) 0px 1px 0px, rgba(0, 0, 0, 0.2) 0px 1px 1px inset; white-space: pre-wrap; word-wrap: break-word; color: rgb(85, 85, 85); widows: 1; background-color: rgb(244, 244, 244); background-position: initial initial; background-repeat: initial initial;">
apply plugin: 'android-library'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.12.2'
}
}
android {
compileSdkVersion 19
buildToolsVersion "19.1.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 19
versionCode 2490
versionName "2.4.9"
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
res.srcDirs = ['res']
aidl.srcDirs = ['src']
}
}
}</pre>
<p>6. V souboru "settings.gradle", který se nachází v kořenovém adresáři Android Studio projektu, přidat řádek:</p>
<pre style="margin-top: 1.6em; margin-bottom: 1.6em; padding: 6px 10px; border-style: solid; border-color: rgb(170, 170, 170) rgb(170, 170, 170) rgb(204, 204, 204); font-family: monospace, serif; font-stretch: inherit; line-height: 21px; font-size: 14px; vertical-align: middle; box-sizing: border-box; width: 556.484375px; height: auto; border-top-left-radius: 2px; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 2px; outline: none; -webkit-box-shadow: rgb(255, 255, 255) 0px 1px 0px, rgba(0, 0, 0, 0.2) 0px 1px 1px inset; box-shadow: rgb(255, 255, 255) 0px 1px 0px, rgba(0, 0, 0, 0.2) 0px 1px 1px inset; white-space: pre-wrap; word-wrap: break-word; color: rgb(85, 85, 85); widows: 1; background-color: rgb(244, 244, 244); background-position: initial initial; background-repeat: initial initial;">
include ':libraries:opencv'</pre>
<p><a href="http://i.imgur.com/pEcVyYz.png" target="_blank"><img alt="" src="http://i.imgur.com/pEcVyYz.png" style="width: 400px; height: 232px;" /></a></p>
<p>7. V Android Studiu, kde je otevřený projekt (nemusel být, mohl být, je to jedno) spustit volbu z menu "Tools/Android/Sync Project with Gradle files". Sledovat spodní stavovou lištu, kde je oznamován stav syncu. Pokud se tam objeví "Gradle build finished...", je vše v pořádku. Pokud ne, začít odznovu.</p>
<p>8. Jít do menu "File/Project Structure" v Android Studiu, nalevo vybrat modul "app" a poté vybrat záložku "Dependencies". Dole kliknout na +, vybrat "Module dependency", vybrat ":library:opencv" (mělo by tam už být jako jediný modul) a potvrdit. Pomocí OK zavřít okno.</p>
<p><a href="http://i.imgur.com/kkIKJ3C.png" target="_blank"><img alt="" src="http://i.imgur.com/kkIKJ3C.png" style="width: 400px; height: 232px;" /></a></p>
<p>9. Ve složce s projektem a dále v podsložce "/app/src/main/" vytvořit složku "jniLibs" a do ní zkopírovat obsah složky "/sdk/native/libs/", která se nachází v rozbaleném OpenCV (budou to 4 jiné složky, ve kterých jsou .so soubory).</p>
<p><a href="http://i.imgur.com/uV7trMp.png" target="_blank"><img alt="" src="http://i.imgur.com/uV7trMp.png" style="width: 400px; height: 232px;" /></a></p>
<p>10. Znovu provést postup z bodu 7 a poté spustit z menu "Build/Make Project". Pokud se nevyskytla žádná chyba, bude v projektu funkční OpenCV.</p>
<p>11. Do MainActivity před metodu onCreate pastnout kód pro slinkování opencv kompilátorem: </p>
<pre style="margin-top: 1.6em; margin-bottom: 1.6em; padding: 6px 10px; border-style: solid; border-color: rgb(170, 170, 170) rgb(170, 170, 170) rgb(204, 204, 204); font-family: monospace, serif; font-stretch: inherit; line-height: 21px; font-size: 14px; vertical-align: middle; box-sizing: border-box; width: 556.484375px; height: auto; border-top-left-radius: 2px; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 2px; outline: none; -webkit-box-shadow: rgb(255, 255, 255) 0px 1px 0px, rgba(0, 0, 0, 0.2) 0px 1px 1px inset; box-shadow: rgb(255, 255, 255) 0px 1px 0px, rgba(0, 0, 0, 0.2) 0px 1px 1px inset; white-space: pre-wrap; word-wrap: break-word; color: rgb(85, 85, 85); widows: 1; background-color: rgb(244, 244, 244); background-position: initial initial; background-repeat: initial initial;">
static {
System.loadLibrary("opencv_java");
}</pre>
<p> </p>