{"id":217377,"date":"2014-03-28T12:17:02","date_gmt":"2014-03-28T08:17:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=217377"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=217377","title":{"rendered":"<span class=\"post_title\">\u041f\u043e\u0438\u0441\u043a \u043b\u044e\u0434\u0435\u0439 \u043d\u0430 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f\u0445 \u043d\u0430 Android \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e OpenCV<\/span>"},"content":{"rendered":"<div class=\"content html_format\"> \t\t\t\u041d\u0435\u0434\u0430\u0432\u0435\u0447\u0430 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u043a\u043e\u0439 \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u201c\u043a\u043e\u043d\u044f\u201d \u043d\u0430 Android\u2019e- \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0443\u0440\u044b \u043b\u044e\u0434\u0435\u0439 \u043d\u0430 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f\u0445 (\u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0432\u044b \u0442\u0430\u043c \u0431\u044b\u043b\u0438, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e). \u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435, \u0431\u044b\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c open source \u043f\u0440\u043e\u0435\u043a\u0442 <a href=\"http:\/\/opencv.org\/\">OpenCV<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Android.<\/p>\n<p>  \u041e \u043d\u0435\u043c \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u043c\u043d\u043e\u0433\u043e <a href=\"http:\/\/habrahabr.ru\/search\/?q=OpenCV\">\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e<\/a>, \u043d\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u0430\u0431\u0436 \u043c\u043d\u043e\u0439 \u043d\u0430\u0439\u0434\u0435\u043d \u043d\u0435 \u0431\u044b\u043b \u0438 \u0431\u044b\u043b \u0441\u043e\u0431\u0440\u0430\u043d \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0438 \u043b\u0438\u0447\u043d\u044b\u0445 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/d13\/91e\/202\/d1391e2029a941e6ba8c8892ecbfbd45.jpg\" width=\"575\" \/><\/div>\n<p>  <a name=\"habracut\"><\/a>  <\/p>\n<h3>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/h3>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/e9d\/5f3\/e98\/e9d5f3e988a343ffa794f3006cb84d8a.png\" alt=\"folders\" align=\"right\"\/>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u0430\u043a \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 Android Studio (\u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c gradle):<br \/>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0441 <a href=\"http:\/\/sourceforge.net\/projects\/opencvlibrary\/files\/opencv-android\/2.4.8\/OpenCV-2.4.8-android-sdk.zip\/download\">\u0441\u0430\u0439\u0442\u0430<\/a> \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043f\u0430\u043f\u043a\u0438 <code>OpenCV-2.4.8-android-sdk\/sdk\/java<\/code> \u0438\u0437 \u0430\u0440\u0445\u0438\u0432\u0430 \u0432 \u043f\u0430\u043f\u043a\u0443 <code>libs\/OpenCV<\/code> \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (\u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u2014 \u0441\u043e\u0437\u0434\u0430\u0442\u044c). <br \/>  \u0414\u0430\u043b\u0435\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0432 \u0444\u0430\u0439\u043b\u044b <b>gradle<\/b>: <br \/>  \u0412 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043f\u0430\u043f\u043a\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c <code>settings.gradle<\/code> \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043c\u043e\u0434\u0443\u043b\u044c:  <\/p>\n<pre><code class=\"java\">include ':app',':app:libs:OpenCV' <\/code><\/pre>\n<p>  \u0412 \u0444\u0430\u0439\u043b\u0435 build gradle \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f (\u043d\u0435 \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0444\u0430\u0439\u043b, \u0430 <code>app\/build.gradle<\/code>) \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0442\u0440\u043e\u0447\u043a\u0443 <code>compile project(':app:libs:OpenCV')<\/code> \u0432 \u0441\u0435\u043a\u0446\u0438\u044e <code>dependencies<\/code>, \u0434\u0430\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c:  <\/p>\n<pre><code class=\"java\">dependencies {     compile 'com.android.support:appcompat-v7:+'     compile project(':app:libs:OpenCV') } <\/code><\/pre>\n<p>  \u0418 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0430\u0439\u043b build.gradle \u0432 \u043f\u0430\u043f\u043a\u0435 OpenCV \u0441 \u043a\u043e\u0434\u043e\u043c:  <\/p>\n<pre><code class=\"java\">buildscript {     repositories {         mavenCentral()     }     dependencies {         classpath 'com.android.tools.build:gradle:0.6.+'     } }  apply plugin: 'android-library'  repositories {     mavenCentral(); }  android {     compileSdkVersion 19     buildToolsVersion &quot;19&quot;      defaultConfig {         minSdkVersion 8         targetSdkVersion 19     }      sourceSets {         main {             manifest.srcFile 'AndroidManifest.xml'             java.srcDirs = ['src']             resources.srcDirs = ['src']             aidl.srcDirs = ['src']             renderscript.srcDirs = ['src']             res.srcDirs = ['res']             assets.srcDirs = ['assets']         }     } } <\/code><\/pre>\n<p>  \u041d\u0443, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u0432\u0441\u0435, OpenCV Android SDK \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0438 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<h3>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e<\/h3>\n<p>  \u041d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u0430 \u0441 OpenCV, \u043c\u0435\u043d\u044f \u0441\u043c\u0443\u0442\u0438\u043b\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u0434 Android- \u044d\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=org.opencv.engine&amp;hl=ru\">OpenCV Manager<\/a>, \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u0448\u0435 \u0442\u0432\u043e\u0440\u0435\u043d\u0438\u0435. \u0414\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0442\u0430\u043a\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0438\u0431\u043e \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0444\u0430\u043a\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0434\u0430\u0431\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u0430\u0448\u0438\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u0435\u043c\u0443 \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432 \u043c\u0430\u0440\u043a\u0435\u0442\u0435 \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043a\u0443(\u0431\u043b\u0430\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u043d\u0435 \u0434\u0430\u0441\u0442 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0443 \u0437\u0430\u0431\u043b\u0443\u0434\u0438\u0442\u044c\u0441\u044f, \u043d\u043e \u0432\u0441\u0435-\u0440\u0430\u0432\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0435\u0433\u043e \u043e\u0442\u043f\u0443\u0433\u043d\u0443\u0442\u044c). <\/p>\n<p>  \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0443\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f- <a href=\"http:\/\/docs.opencv.org\/trunk\/doc\/tutorials\/introduction\/android_binary_package\/dev_with_OCV_on_Android.html#application-development-with-static-initialization\">\u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/a>, \u043d\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0442, \u0447\u0442\u043e \u043e\u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0434\u0435\u0432\u0435\u043b\u043e\u043f\u0435\u0440\u0441\u043a\u0438\u0445 \u0446\u0435\u043b\u0435\u0439 \u0438, \u043a\u0430\u043a \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0431\u0440\u0430\u043d\u0430 \u0432 \u043d\u043e\u0432\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 (It is designed mostly for development purposes. This approach is deprecated for the production code, release package is recommended to communicate with OpenCV Manager via the async initialization described above.). <\/p>\n<p>  \u041d\u043e \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u043d\u0430\u043c \u044d\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0440\u0443\u043a\u0443 \u0442.\u043a. \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u043e\u0434\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c <a href=\"http:\/\/habrahabr.ru\/post\/203014\/\">NDK<\/a> \u0438 \u0441\u0431\u043e\u0440\u043a\u043e\u0439\\\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0441\u0438\u0448\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0432 \u043f\u0440\u043e\u0435\u043a\u0442. \u0422\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c.<\/p>\n<p>  \u0414\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 OpenCV Manager \u043d\u0430 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 adb \u0438\u0437 \u043d\u0430\u0448\u0435\u0433\u043e Android SDK. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0434\u043e\u0436\u0434\u0438\u0442\u0435\u0441\u044c \u0435\u0433\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<br \/>  <code>\/PATH_TO_ANDROID_SDK\/platform-tools\/adb install \/PATH_TO_OPENCV\/OpenCV-2.4.8-android-sdk\/apk\/OpenCV_2.4.8_Manager_2.16_armv7a-neon.apk<\/code> (\u0432\u044b\u0431\u0440\u0430\u0432 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043f\u043e\u0434 ABI apk).<\/p>\n<h3>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c\u0438<\/h3>\n<p>  \u0412\u0441\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f OpenCV \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 callback \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 BaseLoaderCallback, \u0433\u0434\u0435 \u0435\u0441\u0442\u044c \u043e\u0434\u0438\u043d \u043c\u0435\u0442\u043e\u0434 onManagerConnected, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u043e\u0436\u0435\u043c \u0438 \u0443\u0436\u0435 \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 OpenCV, \u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 OpenCVLoader.initAsync, \u0441 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435\u0439 \u0432 \u043d\u0435\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432(\u0432\u043a\u043b\u044e\u0447\u0430\u044f callback). \u0415\u0441\u043b\u0438 \u0412\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u0442 OpenCV Manager, \u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0435\u0433\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435:  <\/p>\n<pre><code class=\"java\">    @Override     public void onResume()     {         super.onResume();         \/\/\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438         OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_8, this, mLoaderCallback);     }      private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {         @Override         public void onManagerConnected(int status) {             switch (status) {                 case LoaderCallbackInterface.SUCCESS:                 { \t\t\/\/\u041c\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c OpenCV                 } break;                 default:                 {                     super.onManagerConnected(status);                 } break;             }         }     }; <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043c\u0435\u043b\u043e \u043c\u043e\u0436\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043d\u0430\u0448\u0435\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439.<\/p>\n<p>  \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c Bitmap \u0438\u0437 url \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u0434\u0430\u043b\u0435\u0435 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u0435\u0435 \u0432 \u043e\u0431\u044a\u0435\u043a\u0442 OpenCV Mat (\u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f), \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0438\u0437 \u0446\u0432\u0435\u0442\u043d\u043e\u0439 \u0432 \u0433\u0440\u0430\u0434\u0430\u0446\u0438\u044e \u0441\u0435\u0440\u043e\u0433\u043e (\u044d\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430) \u0438 \u0432\u044b\u0437\u043e\u0432\u0435\u043c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 <code>HOGDescriptor.detectMultiScale<\/code> (\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440 \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u0438\u0445 \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432 \u0438\u0437 \u043c\u0435\u0442\u043e\u0434\u0430 <code>HOGDescriptor.getDefaultPeopleDetector<\/code>). \u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u0437\u043e\u0432\u0430, \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 locations \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439 \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043b\u044e\u0434\u0435\u0439 (x, y, width, height), \u0430 \u0432 weights \u2014 \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0438\u0441\u043a\u0430 (\u043d\u043e, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430, \u043e\u043d\u0430 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438 \u0442\u0430\u043a\u0438\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445).<\/p>\n<p>  \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u044f \u0437\u0430\u043b\u0438\u043b \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u043d\u0430 facebook \u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u043b \u043c\u0435\u0442\u043e\u0434\u044b \u0437\u0430\u043a\u0430\u0447\u043a\u0438 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439 \u0432 \u043e\u0434\u0438\u043d. \u0421\u0430\u043c \u043a\u043e\u0434 \u043c\u0435\u0442\u043e\u0434\u0430:  <\/p>\n<pre><code class=\"java\">public Bitmap peopleDetect ( String path ) {         Bitmap bitmap = null;         float execTime;         try {             \/\/ \u0417\u0430\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044e             URL url = new URL( path );             HttpURLConnection connection = (HttpURLConnection) url.openConnection();             connection.setDoInput(true);             connection.connect();             InputStream input = connection.getInputStream();             BitmapFactory.Options opts = new BitmapFactory.Options();             opts.inPreferredConfig = Bitmap.Config.ARGB_8888;             bitmap = BitmapFactory.decodeStream(input, null, opts);             long time = System.currentTimeMillis();             \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f OpenCV \u0438 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u043c \u0432 \u043d\u0435\u0435 \u043d\u0430\u0448\u0443 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044e             Mat mat = new Mat();             Utils.bitmapToMat(bitmap, mat);             \/\/ \u041f\u0435\u0440\u0435\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0441 RGB \u043d\u0430 \u0433\u0440\u0430\u0434\u0430\u0446\u0438\u044e \u0441\u0435\u0440\u043e\u0433\u043e             Imgproc.cvtColor(mat, mat, Imgproc.COLOR_RGB2GRAY, 4);             HOGDescriptor hog = new HOGDescriptor();             \/\/\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u043b\u044e\u0434\u0435\u0439 \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u043d\u0430\u0448\u0435\u043c\u0443 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u0443             MatOfFloat descriptors = HOGDescriptor.getDefaultPeopleDetector();             hog.setSVMDetector(descriptors);             \/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u044b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e\u0438\u0441\u043a\u0430 ( locations - \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0435 \u043e\u0431\u043b\u0430\u0441\u0442\u0438, weights - \u0432\u0435\u0441 (\u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u043e\u0441\u0442\u044c) \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u043b\u043e\u043a\u0430\u0446\u0438\u0438)             MatOfRect locations = new MatOfRect();             MatOfDouble weights = new MatOfDouble();             \/\/ \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u0441\u0430\u043c \u0430\u043d\u0430\u043b\u0438\u0437 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0437\u0430\u043f\u0438\u0448\u0443\u0442\u0441\u044f \u0432 locations \u0438 weights             hog.detectMultiScale(mat, locations, weights);             execTime = ( (float)( System.currentTimeMillis() - time ) ) \/ 1000f;             \/\/\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439 \u043d\u0430 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438             Point rectPoint1 = new Point();             Point rectPoint2 = new Point();             Scalar fontColor = new Scalar(0, 0, 0);             Point fontPoint = new Point();             \/\/ \u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 - \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044e \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0438 \u0432\u0435\u0441 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u043d\u0438\u0445             if (locations.rows() &gt; 0) {                 List&lt;Rect&gt; rectangles = locations.toList();                 int i = 0;                 List&lt;Double&gt; weightList = weights.toList();                 for (Rect rect : rectangles) {                     float weigh = weightList.get(i++).floatValue();                      rectPoint1.x = rect.x;                     rectPoint1.y = rect.y;                     fontPoint.x  = rect.x;                     fontPoint.y  = rect.y - 4;                     rectPoint2.x = rect.x + rect.width;                     rectPoint2.y = rect.y + rect.height;                     final Scalar rectColor = new Scalar( 0  , 0 , 0  );                     \/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e                     Core.rectangle(mat, rectPoint1, rectPoint2, rectColor, 2);                     Core.putText(mat,                             String.format(&quot;%1.2f&quot;, weigh),                             fontPoint, Core.FONT_HERSHEY_PLAIN, 1.5, fontColor,                             2, Core.LINE_AA, false);                  }             }             fontPoint.x = 15;             fontPoint.y = bitmap.getHeight() - 20;             \/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e             Core.putText(mat,                     &quot;Processing time:&quot; + execTime + &quot; width:&quot; + bitmap.getWidth() + &quot; height:&quot; + bitmap.getHeight() ,                     fontPoint, Core.FONT_HERSHEY_PLAIN, 1.5, fontColor,                     2, Core.LINE_AA, false);             Utils.matToBitmap( mat , bitmap );         } catch (IOException e) {             e.printStackTrace();         }         return bitmap;     } <\/code><\/pre>\n<p>  \u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c bitmap \u0441 \u043d\u0430\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u043d\u0430 \u043d\u0435\u0433\u043e \u043e\u0431\u043b\u0430\u0441\u0442\u044f\u043c\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043b\u044e\u0434\u0435\u0439, \u0432\u0435\u0441\u043e\u043c \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u043d\u0435\u043a\u043e\u0439 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439. \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0434\u043d\u043e\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438(\u0434\u043e \u0442\u044b\u0441\u044f\u0447\u0438 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0432 \u0448\u0438\u0440\u0438\u043d\u0443 \u0438 \u0432\u044b\u0441\u043e\u0442\u0443) \u043d\u0430 Samsung Galaxy S3 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u043a\u043e\u043b\u043e 1-6 \u0441\u0435\u043a\u0443\u043d\u0434. \u041d\u0438\u0436\u0435 \u2014 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e\u0438\u0441\u043a\u0430 \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<p>  <b>\u041d\u0430 \u043f\u0435\u0440\u0432\u043e\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u043d\u0435 \u043d\u0430\u0448\u0435\u043b \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430, \u043a\u0430\u043a \u0431\u044b \u043d\u0430\u043c \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c(<\/b><br \/>  Image-1.jpg width:488 height:420 executionTime:1.085  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/34c\/69d\/dc8\/34c69ddc89e24817b119dee404032e89.jpg\" alt=\"image\"  width=\"575\"\/><\/div>\n<p>  <b>\u0414\u0430\u043b\u0435\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e\u043b\u0443\u0447\u0448\u0435, \u043d\u043e \u0442\u043e\u0436\u0435 \u043d\u0435 \u0442\u043e<\/b><br \/>  Image-2.jpg width:575 height:400 executionTime:1.226  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/ab7\/927\/f94\/ab7927f940ed4fcf903f885a43c9232a.jpg\" alt=\"image\"  width=\"575\"\/><\/div>\n<p>  <b>\u0414\u0430 \u0438 \u0442\u0440\u0435\u0442\u0438\u0439 \u043f\u043e\u0434\u043a\u0430\u0447\u0430\u043b<\/b><br \/>  Image-3.jpg width:618 height:920 executionTime:6.459  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/ee5\/fb4\/45b\/ee5fb445b39c45e6836c9b1d67d70e55.jpg\" alt=\"image\"  width=\"575\"\/><\/div>\n<p>  <b>\u0423\u0436\u0435 \u0447\u0442\u043e-\u0442\u043e <\/b><br \/>  Image-4.jpg width:590 height:505 executionTime:3.084  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/336\/d35\/4d9\/336d354d9200447b9204238ca0d7b780.jpg\" alt=\"image\"  width=\"575\"\/><\/div>\n<p>  <b>\u041f\u0435\u0440\u0435\u0439\u0434\u044f \u043a \u0431\u043e\u043b\u0435\u0435 \u00ab\u0436\u0438\u0432\u044b\u043c\u00bb \u0444\u043e\u0442\u043e, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0441\u043b\u0435\u0433\u043a\u0430 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u044b\u043c<\/b><br \/>  Image-5.jpg width:604 height:453 executionTime:1.913  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/28a\/930\/a06\/28a930a0609f494fad536eb0381c7948.jpg\" alt=\"image\"  width=\"575\"\/><\/div>\n<p>  <b>\u041f\u0430\u043c\u044f\u0442\u043d\u0438\u043a \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0431\u044b\u043b \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043d<\/b><br \/>  Image-6.jpg width:960 height:643 executionTime:4.106  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/879\/5de\/3c4\/8795de3c4eeb45fb9658fc475b1a08e3.jpg\" alt=\"image\"  width=\"575\"\/><\/div>\n<p>  <b>\u0410 \u0432\u043e\u0442 \u0438 \u043f\u0435\u0440\u0432\u0430\u044f \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u00ab\u0437\u0430\u0442\u043e\u0447\u0435\u043d\u0430\u00bb<\/b><br \/>  Image-7.jpg width:960 height:643 executionTime:2.638  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/268\/2ce\/2c6\/2682ce2c6a374cfba11029381ec609fa.jpg\" alt=\"image\"  width=\"575\"\/><\/div>\n<p>  <b>\u041d\u0430 \u0447\u0435\u0442\u043a\u043e\u043c \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u0435 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043d\u0443\u0436\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442<\/b><br \/>  Image-8.jpg width:960 height:857 executionTime:3.293  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/174\/446\/4fb\/1744464fb41f404781155d47fd911ebb.jpg\" alt=\"image\"  width=\"575\"\/><\/div>\n<p>  <b>\u0417\u0434\u0435\u0441\u044c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b<\/b><br \/>  Image-9.jpg width:960 height:642 executionTime:2.264  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/559\/4a1\/ee1\/5594a1ee1f4e4a3a92c294c5ef373d47.jpg\" alt=\"image\"  width=\"575\"\/><\/div>\n<p>  <b>\u0424\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f \u0441 \u043b\u044e\u0434\u044c\u043c\u0438 \u043d\u0430 \u0434\u0430\u043b\u044c\u043d\u0435\u043c \u043f\u043b\u0430\u043d\u0435<\/b><br \/>  Image-10.jpg width:960 height:643 executionTime:2.188  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/ba5\/9bd\/123\/ba59bd1231b541759e9dce24ab7997ec.jpg\" alt=\"image\"  width=\"575\"\/><\/div>\n<p>  <b>\u041a\u0440\u0443\u043f\u043d\u044b\u0439 \u043f\u043b\u0430\u043d, \u043d\u043e \u0431\u0435\u0437\u0443\u0441\u043f\u0435\u0448\u043d\u043e<\/b><br \/>  Image-11.jpg width:960 height:639 executionTime:2.273  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/d3c\/d19\/857\/d3cd198571b8423dbabd70107e0a6c7c.jpg\" alt=\"image\"  width=\"575\"\/><\/div>\n<p>  <b>\u0412\u043c\u0435\u0441\u0442\u043e \u0447\u0435\u0442\u044b\u0440\u0435\u0445- \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0435<\/b><br \/>  Image-12.jpg width:960 height:640 executionTime:2.669  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/223\/9e6\/7a5\/2239e67a508c40e591a07f3fbbe8e66b.jpg\" alt=\"image\"  width=\"575\"\/><\/div>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432, \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0444\u043e\u0442\u043e\\\u0432\u0438\u0434\u0435\u043e \u0441 \u043a\u0430\u043c\u0435\u0440 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u0438 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u043a\u0430\u0434\u0440\u0430\u043c\u0438, \u0430 \u0434\u043b\u044f \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439, \u0441 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u043c\u0438 \u043f\u043b\u0430\u043d\u0430\u043c\u0438, \u0434\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f(\u043c\u043e\u0436\u043d\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u0432\u0435\u0441\u0443, \u043d\u043e \u0442\u043e\u0433\u0434\u0430 \u0440\u0438\u0441\u043a\u0443\u0435\u043c \u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u043e\u0432). \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c OpenCV \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439, \u0434\u0430 \u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u044f\u0445 \u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u0445, \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0443\u0441\u043f\u0435\u0432\u0430\u0442\u044c \u0437\u0430 \u043f\u043e\u0442\u043e\u043a\u043e\u043c \u043a\u0430\u0434\u0440\u043e\u0432.<\/p>\n<p>  \u0414\u043b\u044f \u043c\u043e\u0438\u0445 \u0446\u0435\u043b\u0435\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043d\u0435 \u043f\u043e\u0434\u043e\u0448\u043b\u0430, \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u043e\u0435 \u043c\u0438\u043d\u0438 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u0430\u043c \u043f\u043e\u043b\u0435\u0437\u043d\u043e.<\/p>\n<p>  \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0435!<\/p>\n<p>  \u041f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 <a href=\"https:\/\/github.com\/gektor650\/DetectPeopleOpenCV\">GitHub<\/a>. \t\t\t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/217377\/\"> http:\/\/habrahabr.ru\/post\/217377\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\"> \t\t\t\u041d\u0435\u0434\u0430\u0432\u0435\u0447\u0430 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u043a\u043e\u0439 \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u201c\u043a\u043e\u043d\u044f\u201d \u043d\u0430 Android\u2019e- \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0443\u0440\u044b \u043b\u044e\u0434\u0435\u0439 \u043d\u0430 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f\u0445 (\u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0432\u044b \u0442\u0430\u043c \u0431\u044b\u043b\u0438, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e). \u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435, \u0431\u044b\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c open source \u043f\u0440\u043e\u0435\u043a\u0442 <a href=\"http:\/\/opencv.org\/\">OpenCV<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Android.<\/p>\n<p>  \u041e \u043d\u0435\u043c \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u043c\u043d\u043e\u0433\u043e <a href=\"http:\/\/habrahabr.ru\/search\/?q=OpenCV\">\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e<\/a>, \u043d\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u0430\u0431\u0436 \u043c\u043d\u043e\u0439 \u043d\u0430\u0439\u0434\u0435\u043d \u043d\u0435 \u0431\u044b\u043b \u0438 \u0431\u044b\u043b \u0441\u043e\u0431\u0440\u0430\u043d \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0438 \u043b\u0438\u0447\u043d\u044b\u0445 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/d13\/91e\/202\/d1391e2029a941e6ba8c8892ecbfbd45.jpg\" width=\"575\" \/><\/div>\n<p>  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-217377","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/217377","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=217377"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/217377\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=217377"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=217377"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=217377"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}