1. 程式人生 > >Android Studio內配置和使用OpenCV3.x(不依靠Manager)

Android Studio內配置和使用OpenCV3.x(不依靠Manager)

我所使用的opencv版本為3.1,Android Studio版本為2.0

先從opencv官網下載對應的版本的安卓的opencv的sdk 解壓出來路徑不要有中文

然後在Android Studio裡建立一個安卓專案,在根目錄建立一個資料夾,命名為libraries
這裡寫圖片描述
然後把sdk結業目錄下的 sdk\java資料夾複製到libraries資料夾內,重新命名為opencv
這裡寫圖片描述
接著在該opencv目錄下建立一個build.gradle,內容為

apply plugin: 'com.android.library'

buildscript {
    repositories {
        mavenCentral()
    }
dependencies { classpath 'com.android.tools.build:gradle:2.0.0' } } android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { minSdkVersion 21 targetSdkVersion 23 versionCode 2480 versionName "3.1.0" } sourceSets { main { manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src'] resources.srcDirs = ['src'] res.srcDirs = ['res'] aidl.srcDirs = ['src'] }
} }

需要依照需求修改對應的sdk版本

然後在修改下專案的settings.gradle ,新增一行

include ':libraries:opencv'

要選擇Sync Now

然後右鍵專案名,選擇Open Module Settings,選擇app然後點Dependencies,再點選加號,選第三個,把opencv新增進去
新增好後如圖:
這裡寫圖片描述

接著在/app/src/main/下建立一個資料夾叫jniLibs
這裡寫圖片描述
把上圖目錄下的所有資料夾都複製到jniLibs中去。
到這就算是配置完全了。
接下來就是使用。

一定要先新增static{ System.loadLibrary(“opencv_java3”); }

我測試的程式碼:(介面有一個ImageView和一個Button)

package com.example.chengk.opencvexamples;

import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

import org.opencv.android.Utils;
import org.opencv.core.Mat;
import org.opencv.imgproc.Imgproc;

public class MainActivity extends AppCompatActivity {
    static{ System.loadLibrary("opencv_java3"); }
    int i=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ImageView imageView = (ImageView)findViewById(R.id.imageView);
        final Bitmap bitmap = ((BitmapDrawable) getResources().getDrawable(R.drawable.aa1)).getBitmap();
        imageView.setImageBitmap(bitmap);


        final Button button2 = (Button)findViewById(R.id.button);
        button2.setText("轉換");
        button2.setOnClickListener(new Button.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                i++;
                Mat rgbMat = new Mat();
                Mat grayMat = new Mat();
                //獲取lena彩色影象所對應的畫素資料
                Utils.bitmapToMat(bitmap, rgbMat);
                //將彩色影象資料轉換為灰度影象資料並存儲到grayMat中
                Imgproc.cvtColor(rgbMat, grayMat, Imgproc.COLOR_RGB2GRAY);
                //建立一個灰度影象
                 Bitmap grayBmp = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.RGB_565);
                //將矩陣grayMat轉換為灰度影象
                Utils.matToBitmap(grayMat, grayBmp);
                ImageView imageView = (ImageView)findViewById(R.id.imageView);
                if(i%2==1)
                    imageView.setImageBitmap(grayBmp);
                else
                    imageView.setImageBitmap(bitmap);
            }

        });
    }
}

執行效果圖:
點選按鈕前
這裡寫圖片描述
點選按鈕後
這裡寫圖片描述

這麼做確實是可行的,但空間佔用太大,我這個程式佔用空間將近50M,還在尋找其他更好的辦法,找到了繼續更新。

相關推薦

Android Studio配置使用OpenCV3.x依靠Manager

我所使用的opencv版本為3.1,Android Studio版本為2.0 先從opencv官網下載對應的版本的安卓的opencv的sdk 解壓出來路徑不要有中文 然後在Android Studio裡建立一個安卓專案,在根目錄建立一個資料夾,命名為libr

新增靜態路由使主機可以同時訪問外網不同網段

現在我們有兩張網絡卡,一張有線網絡卡,一張無線網絡卡,閘道器分別為: 有線網絡卡為192.168.1.254 無線網絡卡為192.168.3.1 我們可以新增兩條靜態路由來同時訪問兩個網段: route -p add 0.0.0.0 mask 0.0.0.0 192.168.3

Android Studio 接入 訊飛 語音合成文字轉語音

1.下載相應的SDK(參考我上一篇文章:https://mp.csdn.net/postedit/83743563) 2.佈置資源 . 3.新增許可權 :在Application的根目錄下,為了可以訪問手機的一些功能 <!--連線網路許可權,用於執行雲端語音能力 -->

RabbitMQ 安裝、配置使用者管理CentOS、SUSE

安裝步驟(rpm包安裝): 下載rpm並安裝: CentOs: wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.1/rabbitmq-server-3.6.1-1.noarch.rpm rpm --

Android Studio如何更改SDK的版本針對非gradle

最近事情太多了,也有一小段時間沒更新了,本來原來還有個寫哪些的計劃的,也打亂了,我就想到什麼寫什麼吧。 最近很多人在問Android Studio如何更改SDK版本,這邊說的事不使用gradle來編譯的情況下。什麼時候會出現這個場景呢,比如你直接從server check工

Android studio 點選按鈕開啟介面 跳轉介面

1,建立layout(activity_test.xml)在src/main/res/layout滑鼠右鍵new->LayoutResource File然後輸入一個file name,比如:activity_test點ok鍵完成建立2,建立activity(TestA

Android 仿微信錄製短視訊使用 FFmpeg

轉載請標明出處與作者:https://www.jianshu.com/p/2cb7b0110fde 專案中原本就有錄製短視訊的功能,使用的是 # qdrzwd/VideoRecorder 這個專案,但是該專案不支援 targetSdkVersion 22以上的版本,而現在各大

webService總結——使用CXF釋出呼叫webService使用Spring

 CXF和Axis2是兩個比較流行的webService框架,接下來我會寫幾篇部落格簡單介紹如何使用這兩種框架。首先,先簡單介紹一下CXF的使用。 CXF釋出webService有多種方法,這裡我介

安卓學習筆記 -- 安裝環境 Android Studio安裝配置、環境搭建詳細步驟及基本使用 Android StudioSDK官方開發工具下載 Android Studio教程從入門到精通 Android開發-之第一個程式:HelloWorld!

1、下載Android Studio安裝配置、環境搭建詳細步驟及基本使用    https://www.cnblogs.com/yanglh6-jyx/p/Android_AS_Configuration.html https://blog.csdn.net/k491022087/ar

Android Studio 一個完整的APP例項附原始碼資料庫

前言: 這是我獨立做的第一個APP,是一個記賬本APP。 This is the first APP, I've ever done on my own. It's a accountbook APP.   原始碼: https://github.com/AnneHan/accoun

Android Studio靈活配置debugrelease模式下的APPKEY

我們一般要在AndroidManifest.xml檔案中定義三方平臺的appkey,appid等屬性值,類似下面的程式碼 <meta-data android:name="UMENG_APPKEY" android:value="

Android Studio3---Android Studio配置

Android Studio配置 Android Studio 提供諸多向導和模板,可用於驗證系統要求(例如 Java 開發工具包 (JDK) 和可用記憶體)和配置預設設定(例如優化的預設 Android Virtual Device (AVD) 模擬和更新的系統映像)。本

Android---安裝 Android第一天——安裝Android Studio 3.0第一個Hello World程式

原 Android第一天——安裝Android Studio 3.0和第一個Hello World程式(一) 2018年03月09日 11:26:38 閱讀數:9423

Android ——安裝Android Studio 3.0第一個Hello World程式

Android第一天——安裝Android Studio 3.0和第一個Hello World程式(一) 轉自:https://blog.csdn.net/tangjie134/article/details/79495204​​​​​​​ 1.Android Studio 3.0和SDK獲

Android Studio SVN配置忽略檔案

Android Studio SVN配置忽略檔案 1.用Android Studio建立一個專案,會在根目錄和Module目錄下自動生成.gitignore檔案,貌似是Git的配置檔案,和SVN沒有關係。 2.開啟Setting-Version Control-Ign

Android Studio安裝配置詳細步驟圖文

下載 到 https://developer.android.com/sdk/index.html (需翻牆)或者通過其他途徑下載安裝包。我下載的是android-studio-bundle-145.3537739-windows.exe 為完整安裝包,其中包

JetBrains公司系列IDE開發工具通用初始配置推薦Android Studio、InterlliJ、PHPStorm、CLion、Webstorm等

JetBrains是捷克一家公司,Interllij IDEA、PHPStorm、CLion、Webstorm等神級IDE(整合開發環境)就出自其手。AndroidStudio就改自InterlliJ。可以說,該系列IDE核心是全世界最耍帥的IDE,沒有之一,二

自定義android studio配置檔案目錄後,無法正常安裝解除安裝外掛的解決辦法。

Android Studio 的快取檔案預設安裝的在C:\Users\YourName\ .xxx 快取一些資料,有限的C盤空間很容易捉禁見肘。所以就需要修改配置檔案了,修改配置檔案的方法百度一下數量數不勝數,我這裡就不寫了。修改路徑後有一個奇葩問題:無法正常安裝和解除安裝外

Android Studio配置及使用OpenCV示例

Android Studio配置及使用OpenCV前言:最近在做專案移植,專案較大,在Eclipse中配置的Jni及OpenCV環境沒任何問題,但是遷移到Studio中就問題一大堆,網上也找了一些資料參考及學習,很感謝前人留下的總結及經驗。關於在AS中使用jni及配置Open

Android Studio中GitGitHub使用詳解上篇

一、Git和GitHub簡述 1.Git 分散式版本控制系統,最先使用於Linux社群,是一個開源免費的版本控制系統,功能類似於SVN和CVS。Git與其他版本管理工具最大的區別點和優點就是分散式; git是採用分散式版本庫機制,不需要每次都將檔案推送到版本控制伺服