Android 程式設計(7)
講師:王瑋毅
概要
• opencvlibs處理器架構不同處理方式
• NDK Opencv讀圖實作
• Java 導入 OpenCV
• NDK Opencv相機實作
opevcvlibs處理器架構不同處理方式
• armeabi: ARM v5架構和
ARM v6架構
• armeabi-v7a: ARM v7架構
• x86: Intel x86 CPUs架構
NDK Opencv讀圖實作(1/8)
• 新增一個 imgCanny.cpp,函式名稱為
getCannyImg
NDK Opencv讀圖
實作(2/8)
• 實作 getCannyImg函式
NDK Opencv讀圖實作(3/8)
• 開啟MainActivity.java 加入imgCanny和opencv_java3
NDK Opencv讀圖實作(4/8)
• 開啟CmakeLists.txt 加入imgCanny,注意target_link_libraries 順序
NDK Opencv讀圖實作(5/8)
• 開啟activity_main.xml,新增Button和ImageView
NDK Opencv讀圖實作(6/8)
• 找一張圖片命名test.jpg,新增到drawable
資料夾
NDK Opencv讀圖實作(7/8)
• 開啟Activity.java 實作Button和ImageView事件
NDK Opencv
讀圖實作(8/8)
• 執行結果
Java 導入 OpenCV(1/9)
• 建立新專案,下載Android for OpenCV 3.3.0
• 點擊File -> New -> Import Module,將要加入OpenCV
Java 導入 OpenCV(2/9)
• 選擇路徑OpenCV-android-sdk/sdk/java 加入
Java 導入 OpenCV(3/9)
• 點擊File -> Project Structure,選擇app,分頁選Dependencies
Java 導入 OpenCV(4/9)
• 點擊+號,選擇Module dependency,在選擇opencvlib
Java 導入 OpenCV(5/9)
• 新增JNI資料夾,資料夾名稱為jniLibs
Java 導入 OpenCV(6/9)
• 先在MainActivity.java 實作
Java 導入 OpenCV(7/9)
• 打開gradle.properties檔案,加入設定NDK指令
Java 導入 OpenCV(8/9)
• Run程式,看OpenCV是否設定好
• 如出現以下錯誤
Java 導入 OpenCV(9/9)
• 處理錯誤,設定OpenCV的Compile Sdk 版本和Build Tools 版本
• 設定完後,Run程式,成功會出現OpenCV load success
NDK Opencv相機實作(1/14)
• 在xml 加入相機畫面
NDK Opencv相機實作(2/14)
• 在Activity加入JavaCameraView
NDK Opencv相機實作(3/14)
• 加入onPause、onDestroy 和 onResume,並將static清掉
NDK Opencv相機實作(4/14)
• 加入BaseLoaderCallback
NDK Opencv相機實作(5/14)
• 在onResume 加入BaseLoaderCallback的應用
NDK Opencv相機實作(6/14)
• 實作CvCameraViewListener2,並宣告Mat
NDK Opencv相機實作(7/14)
• 設定mRgba類型、釋放、取得
NDK Opencv相機實作(8/14)
• 加入相機權限,開啟AndroidManifest.xml
NDK Opencv相機實作(9/14)
• 執行程式,會出現以下訊息視窗
• 到應用程式找到此程式,將相機權限打開
NDK Opencv相機實作(10/14)
• 比較好的做法,可以向使用者要求是否給權限,作法如下
NDK Opencv相機實作(11/14)
• 執行
NDK Opencv相機實作(12/14)
• 建立convertGray.cpp, 實作
灰階
NDK Opencv相機實作(13/14)
• 在MainActivity.jav 加入
convertGray,並改成顯示灰階
NDK Opencv相機實作(14/14)
• 執行結果
原始碼
• NDK Opencv讀圖實作:
https://github.com/royshow0316/OpenCVTest
• NDK OpenCV相機實作:
https://github.com/royshow0316/OpenCVCameraTest
• NDK OpenCV相機實作(灰階):
https://github.com/royshow0316/OpenCVCameraGrayTest
謝謝大家

More Related Content

PDF
容器式軟體開發介紹
PDF
企業導入容器經驗分享與開源技能培養
PPTX
Angular 开发技巧 (2018 ngChina 开发者大会)
PDF
容器式基礎架構介紹
PDF
Azure Container Service 使用 DC / OS 管理 docker 容器
PDF
Docker home ted
PPTX
K8s removes dockershime
容器式軟體開發介紹
企業導入容器經驗分享與開源技能培養
Angular 开发技巧 (2018 ngChina 开发者大会)
容器式基礎架構介紹
Azure Container Service 使用 DC / OS 管理 docker 容器
Docker home ted
K8s removes dockershime

What's hot (20)

PDF
微服務自己動手做
PPTX
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
PPTX
快速上手 Windows Containers 容器技術 (Docker Taipei)
PPTX
Node.js中间件 connect模块深入浅出
PDF
Docker 最佳实践
PDF
Docker容器微服務 x WorkShop
PPTX
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
PPTX
cec-hello-docker
PDF
NodeJS基礎教學&簡介
PPTX
Nodejs introduce - using Socket.io
PPTX
快快樂樂學 Angular 2 開發框架
PPTX
All about NodeJS
PDF
從軟體開發角度
談 Docker 的應用
PPTX
開發人員不可不知的 Windows Container 容器技術預覽
PPTX
Visual Studio 2017 新功能探索 (Study4.TW)
PDF
容器與 Gitlab CI 應用
PDF
Docker Build
PPTX
SQL Server 資料庫版本控管
PPTX
3 introduction to kubernetes
PDF
Docker + CI pipeline 的高效率 ChatBot 開發方法
微服務自己動手做
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
快速上手 Windows Containers 容器技術 (Docker Taipei)
Node.js中间件 connect模块深入浅出
Docker 最佳实践
Docker容器微服務 x WorkShop
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
cec-hello-docker
NodeJS基礎教學&簡介
Nodejs introduce - using Socket.io
快快樂樂學 Angular 2 開發框架
All about NodeJS
從軟體開發角度
談 Docker 的應用
開發人員不可不知的 Windows Container 容器技術預覽
Visual Studio 2017 新功能探索 (Study4.TW)
容器與 Gitlab CI 應用
Docker Build
SQL Server 資料庫版本控管
3 introduction to kubernetes
Docker + CI pipeline 的高效率 ChatBot 開發方法
Ad

More from Roy Wang (11)

PPTX
Android程式設計(6)
PPTX
Android 程式設計(5)
PPTX
Android 程式設計(4)
PPTX
Android 程式設計(3)
PPTX
Android 程式設計(2)
PPTX
Android 程式設計(1)
PDF
App inventor 5
PDF
App inventor 4
PDF
App inventor 3
PDF
App inventor 2
PDF
App inventor 1
Android程式設計(6)
Android 程式設計(5)
Android 程式設計(4)
Android 程式設計(3)
Android 程式設計(2)
Android 程式設計(1)
App inventor 5
App inventor 4
App inventor 3
App inventor 2
App inventor 1
Ad

Android程式設計(7)