Project

General

Profile

<h1>Z&aacute;kladn&iacute; informace</h1>

<p>M&aacute;me dodat ře&scaron;en&iacute;, kter&eacute; umožn&iacute; vložit 2D a 3D objekty reprezentuj&iacute;c&iacute; historick&eacute; elementy do obrazu re&aacute;ln&eacute;ho světa. Ře&scaron;en&iacute; poběž&iacute; na platformě Android. Nemus&iacute;me dodat cel&eacute; ře&scaron;en&iacute;, pouze dema ře&scaron;&iacute;c&iacute; kl&iacute;čovou funkcionalitu. Budeme se pod&iacute;let i n&aacute;vrhu ovl&aacute;d&aacute;n&iacute; (z&aacute;kladn&iacute;ho konceptu).</p>

<p>Projekt mus&iacute; b&yacute;t dokončen <strong>do konce z&aacute;ř&iacute; 2015</strong>.</p>

<h2>GIT reposit&aacute;ř</h2>

<p>K nalezen&iacute; na adrese http://aurel.mendelu.cz/git/historybrowser.git, z&aacute;roveň je napojen i na tento projekt v Redmine.</p>

<h2>Rozchozen&iacute;</h2>

<p>Čerpal jsem z n&aacute;vodu:&nbsp;<a href="http://blog.hig.no/gtl/2014/08/28/opencv-and-android-studio/&quot;&gt;http://blog.hig.no/gtl/2014/08/28/opencv-and-android-studio/&lt;/a&gt;&lt;/p>

<h3>Prerekvizity:</h3>

<ul>
<li>Android Studio s nainstalovan&yacute;m Android SDK 19 nebo vy&scaron;&scaron;&iacute;m (nebo v&scaron;emi).</li>
<li>OpenCV for Android z&nbsp;<a href="http://opencv.org/downloads.html&quot;&gt;http://opencv.org/downloads.html&lt;/a&gt;&amp;nbsp;(verze 3.0)</li>
</ul>

<h3>N&aacute;vod:</h3>

<p>1. Rozbalit OpenCV</p>

<p>2. Vytvořit nov&yacute; projekt v Android Studiu, vybrat např. API 15, &scaron;ablona např. Blank Activity, vhodně pojmenovat prvn&iacute; aktivitu</p>

<p><a href="http://i.imgur.com/sc1JgnK.png&quot; target="_blank"><img alt="" src="http://i.imgur.com/sc1JgnK.png&quot; style="width: 400px; height: 232px;" /></a> <a href="http://i.imgur.com/eHcjLiQ.png&quot; target="_blank"><img alt="" src="http://i.imgur.com/eHcjLiQ.png&quot; style="width: 400px; height: 232px;" /></a> <a href="http://i.imgur.com/v8qqQZZ.png&quot; target="_blank"><img alt="" src="http://i.imgur.com/v8qqQZZ.png&quot; style="width: 400px; height: 232px;" /></a> <a href="http://i.imgur.com/lHkJQp5.png&quot; target="_blank"><img alt="" src="http://i.imgur.com/lHkJQp5.png&quot; style="width: 400px; height: 232px;" /></a></p>

<p>3. Otevř&iacute;t složku nově vytvořen&eacute;ho projektu a vytvořit v n&iacute; novou složku &quot;libraries&quot;</p>

<p>4. Otevř&iacute;t složku &quot;libraries&quot; a otevř&iacute;t si složku s rozbalen&yacute;m OpenCV. Zkop&iacute;rovat složku &quot;/opencv/sdk/java&quot; do &quot;/libraries/&quot; a přejmenovat složku &quot;/libraries/java/&quot; na &quot;opencv&quot;</p>

<p><a href="http://i.imgur.com/kqJY1Fm.png&quot; target="_blank"><img alt="" src="http://i.imgur.com/kqJY1Fm.png&quot; style="width: 400px; height: 232px;" /></a> <a href="http://i.imgur.com/tO9w1Fc.png&quot; target="_blank"><img alt="" src="http://i.imgur.com/tO9w1Fc.png&quot; style="width: 400px; height: 232px;" /></a></p>

<p>5. Ve složce &quot;/libraries/opencv&quot; vytvořit soubor &quot;build.gradle&quot; a zkop&iacute;rovat do něj tento k&oacute;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: &#39;android-library&#39;

buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath &#39;com.android.tools.build:gradle:0.12.2&#39;
}
}

android {
compileSdkVersion 19
buildToolsVersion &quot;19.1.0&quot;

defaultConfig {
minSdkVersion 8
targetSdkVersion 19
versionCode 2490
versionName &quot;2.4.9&quot;
}

sourceSets {
main {
manifest.srcFile &#39;AndroidManifest.xml&#39;
java.srcDirs = [&#39;src&#39;]
resources.srcDirs = [&#39;src&#39;]
res.srcDirs = [&#39;res&#39;]
aidl.srcDirs = [&#39;src&#39;]
}
}
}</pre>

<p>6. V souboru &quot;settings.gradle&quot;, kter&yacute; se nach&aacute;z&iacute; v kořenov&eacute;m adres&aacute;ři Android Studio projektu, přidat ř&aacute;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 &#39;:libraries:opencv&#39;</pre>

<p><a href="http://i.imgur.com/pEcVyYz.png&quot; target="_blank"><img alt="" src="http://i.imgur.com/pEcVyYz.png&quot; style="width: 400px; height: 232px;" /></a></p>

<p>7. V Android Studiu, kde je otevřen&yacute; projekt (nemusel b&yacute;t, mohl b&yacute;t, je to jedno) spustit volbu z menu &quot;Tools/Android/Sync Project with Gradle files&quot;. Sledovat spodn&iacute; stavovou li&scaron;tu, kde je oznamov&aacute;n stav syncu. Pokud se tam objev&iacute; &quot;Gradle build finished...&quot;, je v&scaron;e v poř&aacute;dku. Pokud ne, zač&iacute;t odznovu.</p>

<p>8. J&iacute;t do menu &quot;File/Project Structure&quot; v Android Studiu, nalevo vybrat modul &quot;app&quot; a pot&eacute; vybrat z&aacute;ložku &quot;Dependencies&quot;. Dole kliknout na +, vybrat &quot;Module dependency&quot;, vybrat &quot;:library:opencv&quot; (mělo by tam už b&yacute;t jako jedin&yacute; modul) a potvrdit. Pomoc&iacute; OK zavř&iacute;t okno.</p>

<p><a href="http://i.imgur.com/kkIKJ3C.png&quot; target="_blank"><img alt="" src="http://i.imgur.com/kkIKJ3C.png&quot; style="width: 400px; height: 232px;" /></a></p>

<p>9. Ve složce s projektem a d&aacute;le v podsložce &quot;/app/src/main/&quot; vytvořit složku &quot;jniLibs&quot; a do n&iacute; zkop&iacute;rovat obsah složky &quot;/sdk/native/libs/&quot;, kter&aacute; se nach&aacute;z&iacute; v rozbalen&eacute;m OpenCV (budou to 4 jin&eacute; složky, ve kter&yacute;ch jsou .so soubory).</p>

<p><a href="http://i.imgur.com/uV7trMp.png&quot; target="_blank"><img alt="" src="http://i.imgur.com/uV7trMp.png&quot; style="width: 400px; height: 232px;" /></a></p>

<p>10. Znovu prov&eacute;st postup z bodu 7 a pot&eacute; spustit z menu &quot;Build/Make Project&quot;. Pokud se nevyskytla ž&aacute;dn&aacute; chyba, bude v projektu funkčn&iacute; OpenCV.</p>

<p>11. Do MainActivity před metodu onCreate pastnout k&oacute;d pro slinkov&aacute;n&iacute; opencv kompil&aacute;torem:&nbsp;</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(&quot;opencv_java&quot;);
}</pre>

<p>&nbsp;</p>