1. 程式人生 > >android studio 使用 jni 編譯 opencv 完整例項 之 影象邊緣檢測!從此在andrid中自由使用 影象匹配、識別、檢測

android studio 使用 jni 編譯 opencv 完整例項 之 影象邊緣檢測!從此在andrid中自由使用 影象匹配、識別、檢測

 1 package io.github.froger.jni;
 2 
 3 import android.app.Activity;
 4 import android.graphics.Bitmap;
 5 import android.graphics.drawable.BitmapDrawable;
 6 import android.os.Bundle;
 7 import android.view.View;
 8 import android.widget.Button;
 9 import android.widget.ImageView;
10 
11 public
class MyActivity extends Activity { 12 /** Called when the activity is first created. */ 13 ImageView imgView; 14 Button btnNDK, btnRestore; 15 public static native int[] ImgFun(int[] buf, int w, int h); 16 static { 17 System.loadLibrary("ImgFun"); 18 } 19 @Override
20 public void onCreate(Bundle savedInstanceState) { 21 super.onCreate(savedInstanceState); 22 setContentView(R.layout.activity_my); 23 24 this.setTitle("使用NDK轉換灰度圖"); 25 btnRestore = (Button) this.findViewById(R.id.btnRestore); 26 //btnRestore.setText(ImgFun());
27 btnRestore.setOnClickListener(new ClickEvent()); 28 btnNDK = (Button) this.findViewById(R.id.btnNDK); 29 btnNDK.setOnClickListener(new ClickEvent()); 30 imgView = (ImageView) this.findViewById(R.id.ImageView01); 31 Bitmap img = ((BitmapDrawable) getResources().getDrawable( 32 R.drawable.ic_launcher)).getBitmap(); 33 imgView.setImageBitmap(img); 34 } 35 36 class ClickEvent implements View.OnClickListener { 37 public void onClick(View v) { 38 //btnRestore.setText(ImgFun()); 39 if (v == btnNDK) { 40 long current = System.currentTimeMillis(); 41 Bitmap img1 = ((BitmapDrawable) getResources().getDrawable( 42 R.drawable.ic_launcher)).getBitmap(); 43 int w = img1.getWidth(), h = img1.getHeight(); 44 int[] pix = new int[w * h]; 45 img1.getPixels(pix, 0, w, 0, 0, w, h); 46 int[] resultInt = ImgFun(pix, w, h); 47 Bitmap resultImg = Bitmap.createBitmap(w, h, Bitmap.Config.RGB_565); 48 resultImg.setPixels(resultInt, 0, w, 0, 0, w, h); 49 long performance = System.currentTimeMillis() - current; 50 imgView.setImageBitmap(resultImg); 51 } else if (v == btnRestore) { 52 Bitmap img2 = ((BitmapDrawable) getResources().getDrawable( 53 R.drawable.ic_launcher)).getBitmap(); 54 imgView.setImageBitmap(img2); 55 } 56 } 57 } 58 59 60 }

相關推薦

android studio 使用 jni 編譯 opencv 完整例項 影象邊緣檢測從此andrid自由使用 影象匹配識別檢測

1 package io.github.froger.jni; 2 3 import android.app.Activity; 4 import android.graphics.Bitmap; 5 import android.graphics.drawable.BitmapDra

Android開發學習路--Android Studio cmake編譯ffmpeg

  最新的android studio2.2引入了cmake可以很好地實現ndk的編寫。這裡使用最新的方式,對於以前的android下的ndk編譯什麼的可以參考之前的文章:Android開發學習之路–NDK、JNI之初體驗。 1.ffmpeg編譯  

王學崗NDK系列(七)OpenCV概述及android studio下ndk OpenCV環境搭建+簡單例項

一:OpenCV概述 1.opencv相關概念 影象處理 利用計算機對影象進行分析處理,達到所需結果的技術,一般指的是數字影象處理,通過數碼裝置得到的數字影象是一個很大的二維陣列,陣列的元素叫畫素,畫素的值叫灰度值。主要的處理方法有去噪,增強,復原,分割,提

第一個Android studio JNI程序

say debug native mil 教程 lib 國內 generate mea 現在網上有很多實用JNI的教程,本文主要用於記錄自己實現的方法和遇到的坑。 第一步,下載NDK. NDK可以去谷歌Android developer上下載。國內也有些中國版

Android Studio 導入OpenCV 並調試運行face-detection例子

pac oot tools property boolean adl cond dto rgb p { margin-bottom: 0.1in; direction: ltr; color: rgb(0, 0, 10); line-height: 120%; text-a

Android Studio JNI 多坑總結

1.什麼是 JNI JNI——(Java Native Interface),他是java平臺的特性,不是安卓系統提供的。他定義了一些JNI函式,來讓開發者可以通過呼叫這些函式來實現java程式碼呼叫C/C++程式碼。 2.如何使用 JNI 我們先將寫好的C/C++程式碼編譯成對應平臺的

Android Studio 3.0踩坑篇自定義apk名稱

報錯日誌 Cannot set the value of read-only property ‘outputFile’ Android Studio3.0之前用法如下 applicationVariants.all { variant ->

Android Studio JNI (影象變灰過程)使用cmake (1)

Android Studio JNI (影象變灰過程)使用cmake (1) 1.開始建立第一個AS 工程; 2.選擇完畢後下一步 3.再下一步後直接點選完成,然後我們開始執行一下,即可看到Hello from JNI 4.下面我們看下CMakeLists.txt檔案 CMak

Android Studio使用Google Flutter完整教程 【0】

轉載自:https://blog.csdn.net/gfg156196/article/details/81118368   一套程式碼 iOS、Android 兩端執行,Google Flutter 實在太強大。。 “Flutter 可幫助你更容易、更快速的開發介面美觀的移動

ndk-build配置Android Studio jni的配置以及jni常見問題的解決

           最近專案用到了jni比較頻繁,android studio 配置jni也是必須的。但不知道是不是運氣問題,我在自己電腦使用jni一點問題都沒有,可以說是無障礙。 但是,一

Android Studio上搭建OpenCV 開發環境

        這裡預設你已經成功安裝了Android Studio IDE;我這裡使用的AS版本是3.0.1;截止目前,AS穩定版本已經升級至3.2.1,至於版本間的區別,這裡不多做區分和說明。如果對於AS的下載和安裝有問題也可以參加我的關於AS介紹的部落格

Android Studio Gradle編譯 引數配置

你是否在使用AS進行開發時遇到編譯出現了錯誤,但是Build輸出了只是簡單的Task任務出錯之類的資訊,完全看不出哪裡出現了問題。 其實只需要設定一下Gradle Command-line Options就可以了。 如下圖: 新增option --full-stacktr

超級簡單的Android Studio jni 實現(無需命令列)

1.配置Anroid Studio(這步是關鍵) 使用[command+,] 開啟Preferences,選擇External Tools,點選加號框如下圖:   Paste_Image.png 點選+號之後,開啟Macros 配置巨集命令介面,如下圖: P

Android studio連線夜神模擬器(二)

用過夜神模擬器的小夥伴可能都有一個困擾,就是Android studio每次連線夜神模擬器的時候都要開啟cmd,然後輸入命令連線,很麻煩。 在這裡給大家提供一個簡單的連線夜神模擬器的方法:執行.bat檔

android studio 3.1.3爬坑

出錯資訊:The SourceSet 'instrumentTest' is not recognized by the Android Gradle Plugin. Perhaps you misspelled something? 翻譯:“SourceSet” 的

如何在android studio上加入OpenCV

在網上找了很久,找到的關於在android studio中加入OpenCV 庫的相關資料很少,而且解釋的不是很清楚,配置的時候做了十幾遍才成功。 將上述資料綜合一下,並加入了一些注意事項記錄下來。新手可以參考下。介紹瞭如何在android studio 中加入ope

Android Studio 新建編譯 Java 工程

1、新建New Module 2、選擇java Library 3、編輯lib name 、class name 4、新增Main函式入口 5、選擇Run -->Edit Configurations 6、選擇+-->Application 7、選

Android Studio JNI開發,Java+C++

前提:Mac平臺,windows平臺僅供參考。 1,準備工作。 1.1,檢視你的jdk是否有javah編譯功能:終端-》whereis javah 如果沒有找到這條指令,請檢視你是否安裝的是JDK較高版本,如果是jdk10,恭喜你這裡邊沒有javah的命令了,你需要更換你的jdk為

Delphi xe7 FireMonkey / Mobile (Android, iOS)生成 QR Code完整例項

這個例項在windows、OS X、IOS和Android等平臺執行正常。本文參考這個網站提供的方法:http://zarko-gajic.iz.hr/firemonkey-mobile-android-ios-qr-code-generation-using-delphi-xe-5-delphizxingq

Android Studio安裝教程-win10-完整最新版

Android studio安裝教程,教程比較多,說下注意點。 1、安裝JDK 注意: 1、C盤足夠用,可以直接預設安裝,一定記住jdk和jre的安裝路徑; 2、win10的環境變數介面 對於環境變數的修改並