[Android]OpenCV와 안드로이드 스튜디오

2024. 1. 17. 10:07모바일프로그래밍/안드로이드

728x90

OpenCV를 안드로이드 환경에서 사용 할 수 있는 방법에 대해서 알아보려고 합니다.

 

1. 설치 준비물 및 설치

설치를 시작하기 전에 다음 툴을 준비 하도록 합니다.

 

▶ JDK - 11

오라클 사이트에서 설치 해 줍니다.

▶ Android Studio

https://developer.android.com/studio

 

Android 스튜디오 및 앱 도구 다운로드 - Android 개발자  |  Android Developers

Android 스튜디오는 Android 앱에 최적화된 통합 개발 환경(IDE)을 앱 빌더에게 제공합니다. 지금 Android 스튜디오를 다운로드하세요.

developer.android.com

 

안드로이드 스투디오 사이트에서 설치 해 줍니다.

※ 스투디오 버전: Android Studio 2020.3.1

 

최종로그

쓸데는 그닥없어 보이나, 나중에 비교해 보려고 저장 해 둡니다.

 

Preparing "Install Android SDK Platform-Tools (revision: 31.0.3)".
Downloading https://dl.google.com/android/repository/platform-tools_r31.0.3-windows.zip
"Install Android SDK Platform-Tools (revision: 31.0.3)" ready.
Installing Android SDK Platform-Tools in C:\DEV\SDK\Android\platform-tools
"Install Android SDK Platform-Tools (revision: 31.0.3)" complete.
"Install Android SDK Platform-Tools (revision: 31.0.3)" finished.
Preparing "Install Android Emulator (revision: 30.8.4)".
Downloading https://dl.google.com/android/repository/emulator-windows_x64-7600983.zip
"Install Android Emulator (revision: 30.8.4)" ready.
Installing Android Emulator in C:\DEV\SDK\Android\emulator
"Install Android Emulator (revision: 30.8.4)" complete.
"Install Android Emulator (revision: 30.8.4)" finished.
Preparing "Install SDK Patch Applier v4 (revision: 1)".
Downloading https://dl.google.com/android/repository/3534162-studio.sdk-patcher.zip
"Install SDK Patch Applier v4 (revision: 1)" ready.
Installing SDK Patch Applier v4 in C:\DEV\SDK\Android\patcher\v4
"Install SDK Patch Applier v4 (revision: 1)" complete.
"Install SDK Patch Applier v4 (revision: 1)" finished.
Preparing "Install Android SDK Tools (revision: 26.1.1)".
Downloading https://dl.google.com/android/repository/sdk-tools-windows-4333796.zip
"Install Android SDK Tools (revision: 26.1.1)" ready.
Installing Android SDK Tools in C:\DEV\SDK\Android\tools
"Install Android SDK Tools (revision: 26.1.1)" complete.
"Install Android SDK Tools (revision: 26.1.1)" finished.
Preparing "Install Intel x86 Emulator Accelerator (HAXM installer) (revision: 7.6.5)".
Downloading https://dl.google.com/android/repository/extras/intel/haxm-windows_v7_6_5.zip
"Install Intel x86 Emulator Accelerator (HAXM installer) (revision: 7.6.5)" ready.
Installing Intel x86 Emulator Accelerator (HAXM installer) in C:\DEV\SDK\Android\extras\intel\Hardware_Accelerated_Execution_Manager
"Install Intel x86 Emulator Accelerator (HAXM installer) (revision: 7.6.5)" complete.
"Install Intel x86 Emulator Accelerator (HAXM installer) (revision: 7.6.5)" finished.
Preparing "Install Android SDK Build-Tools 31 (revision: 31.0.0)".
Downloading https://dl.google.com/android/repository/09489e417c0a266f2862ddd82b4ac29a1b7af55e.build-tools_r31-windows.zip
"Install Android SDK Build-Tools 31 (revision: 31.0.0)" ready.
Installing Android SDK Build-Tools 31 in C:\DEV\SDK\Android\build-tools\31.0.0
"Install Android SDK Build-Tools 31 (revision: 31.0.0)" complete.
"Install Android SDK Build-Tools 31 (revision: 31.0.0)" finished.
Preparing "Install Android SDK Platform 31 (revision: 1)".
Downloading https://dl.google.com/android/repository/platform-31_r01.zip
"Install Android SDK Platform 31 (revision: 1)" ready.
Installing Android SDK Platform 31 in C:\DEV\SDK\Android\platforms\android-31
"Install Android SDK Platform 31 (revision: 1)" complete.
"Install Android SDK Platform 31 (revision: 1)" finished.
Parsing C:\DEV\SDK\Android\build-tools\31.0.0\package.xml
Parsing C:\DEV\SDK\Android\emulator\package.xml
Parsing C:\DEV\SDK\Android\extras\intel\Hardware_Accelerated_Execution_Manager\package.xml
Parsing C:\DEV\SDK\Android\patcher\v4\package.xml
Parsing C:\DEV\SDK\Android\platform-tools\package.xml
Parsing C:\DEV\SDK\Android\platforms\android-31\package.xml
Parsing C:\DEV\SDK\Android\tools\package.xml
Android SDK is up to date.
Running Intel® HAXM installer
Intel HAXM installation failed!
For more details, please check the installation log: 
C:\Users\User\AppData\Local\Temp\haxm_install-20210824_2149.log
Intel® HAXM installation failed. To install Intel® HAXM follow the instructions found at: 
https://github.com/intel/haxm/wiki/Installation-Instructions-on-Windows
 

마지막 오류 메시지는 있었으나, 그냥 건너 뛰는 것으로...

 

▶NDK, CMake 설치

최종 설치 화면 확인

아래와 같이 설치 되었다면, 샘플 빌드 준비가 끝났습니다.

▶ OpenCV 4.5.3

위 사이트에서 다운 받아 설치 하여 줍니다. 버전은 최신 버전을 받아도 되지만, 현재 샘플을 돌려 본 버전을 명시 하였습니다. 최신 버전의 경우에는 약간의 삽질이나 혹은 더 잘 될 수 있을 것입니다(^^)

그리고 자신이 가지고 있는 폰이 더 좋다면 금상첨화 입니다~

 

2. OpenCV 샘플 환경 설정 및 빌드

 

2.1 샘플 폴더 선택

'1. 설치 준비' 에서 준비 한 파일들을 설치 혹은 풀어 줍니다.

그런 다음 최최 설치 후 실행 하면 다음 그림 처럼 UI가 나타 납니다.

OpenCV SDK 설치 위치에서 샘플 프로젝트 samples 폴더를 선택 해 주고 나서,

해당 폴더 내에 local.properties 를 다음과 같이 변경 해 주었습니다. 디렉토리 위치는 자신이 가지고 있는 설치 툴의 위치로 알아서 변경 해 줍니다.

## This file must *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.
#
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
#Tue Aug 24 17:12:39 KST 2021
#opencv.dir=D\:\\DEV\\SDK\\OpenCV-android-sdk\\sdk\\native\\jni
sdk.dir=C\:\\DEV\\SDK\\Android
ndk.dir=C\:\\DEV\\SDK\\Android\\ndk\\23.0.7599858
 

위 설정은 사람마다 틀리니, 현재 설치 된 위치를 확인하여 적절하게 바꿔 주면 됩니다.

 

2.2 Android Gradle plugin version과 Gradle version 설정

다음 그림 처럼 설정 해 줍니다.

 

3 그 외 참고 사항

 

3.1 플러그 인 버전과 gradle 버전의 호환성

플러그 인 버전과 gradle 버전의 호환성을 확인 해 줍니다.

3.2 gradle 버전과 자바 버전 호환성

gradle 버전과 자바 버전의 호환성이 맞는 지 확인 해 줍니다.

 

 

Compatibility Matrix

The sections below describe Gradle’s compatibility with several integrations. Versions not listed here may or may not work.

docs.gradle.org

이렇게 하는 이유는 어디까지나 추측이기는 하지만, 초장기에 ant 빌드 시에는 자바 버전에 그닥 큰 영향이 없었지만 gradle 을 빌드 표준으로 가져 가면서 스크립트 언어스러운 gradle api 들이 자바의 영향을 많이 받기 시작 한게 아닌가 하는 것입니다. 따라서 gradle 버전과 자바 버전과의 호환성을 맞춰 주는 것이 중요하다는 것이 저의 생각입니다.

 

3.3. 성공 메시지 확인

다음과 같은 안드로이드 스투디오에서 성공 메시지를 확인 합니다.

> Configure project :15-puzzle
Override build ABIs for the project 15-puzzle
Override lintOptions for the project 15-puzzle
Override doNotStrip-debug for the project 15-puzzle

> Configure project :camera-calibration
Override build ABIs for the project camera-calibration
Override lintOptions for the project camera-calibration
Override doNotStrip-debug for the project camera-calibration

> Configure project :color-blob-detection
Override build ABIs for the project color-blob-detection
Override lintOptions for the project color-blob-detection
Override doNotStrip-debug for the project color-blob-detection

> Configure project :face-detection
Override build ABIs for the project face-detection
Override lintOptions for the project face-detection
Override doNotStrip-debug for the project face-detection

> Configure project :image-manipulations
Override build ABIs for the project image-manipulations
Override lintOptions for the project image-manipulations
Override doNotStrip-debug for the project image-manipulations

> Configure project :opencv
OpenCV: 4.5.3 C:\DEV\SDK\OpenCV-android-sdk\sdk\build.gradle
Override build ABIs for the project opencv
Override lintOptions for the project opencv
Override doNotStrip-debug for the project opencv

> Configure project :tutorial-1-camerapreview
Override build ABIs for the project tutorial-1-camerapreview
Override lintOptions for the project tutorial-1-camerapreview
Override doNotStrip-debug for the project tutorial-1-camerapreview

> Configure project :tutorial-2-mixedprocessing
Override build ABIs for the project tutorial-2-mixedprocessing
Override lintOptions for the project tutorial-2-mixedprocessing
Override doNotStrip-debug for the project tutorial-2-mixedprocessing

> Configure project :tutorial-3-cameracontrol
Override build ABIs for the project tutorial-3-cameracontrol
Override lintOptions for the project tutorial-3-cameracontrol
Override doNotStrip-debug for the project tutorial-3-cameracontrol

BUILD SUCCESSFUL in 1s
 

4. 실행

그럼 자신의 스마트 폰을 PC에다 꽃고 나서, 스마트 폰에 USB 디버깅을 활성화 한 다음 진행 하시면 될 것 같네요...

위 처럼 자신 폰의 이름이 제대로 떠 있다면 실행 버튼을 눌러서 기다리고 있으면 됩니다.

 

조금 기다리다 보면 연결해 놓은 폰에 다음과 같은 권한을 묻는 실행 화면 창이 나타날 것입니다.

폰에 아래 처럼 앱으로 표시 되어 있는 여러가지 샘플 화면이 활성화 되는 것을 확인 할 수 있습니다.

 

이상.

 

Trouble-Shooting 1. The SDK directory '~\Android\android-sdk' does not exist.

https://cishome.tistory.com/163

 

[안드로이드] The SDK directory '/Users/cis/Documents/KotlinforNetwork/Chapter03/D:\Android\android-sdk' does not exist.

The SDK directory '/Users/cis/Documents/KotlinforNetwork/Chapter03/D:\Android\android-sdk' does not exist. 외부에서 만들어진 소스 코드를 open 으로 읽어왔는데 위와같은 에러가 나타났습니다. local.properties 에 /Users/cis/Lib

cishome.tistory.com

 

Trouble-Shooting 2.

Trouble-Shooting 3. Camera-calibration 샘플 오류

 

CalibrationFrameRender.java 파일에 일단 다음 방어코드를 넣어 놓습니다.

아무래도 스마트 폰을 바꿔야 하나 하는 생각이 들긴 하지만 정확히 문제를 들여다 보지 않아서 여기까지만 정리 하는 것으로 하겠습니다.

@Override
public Mat render(CvCameraViewFrame inputFrame) {
	Mat rgbaFrame = inputFrame.rgba();
	Mat grayFrame = inputFrame.gray();

	if(!grayFrame.empty()) return rgbaFrame; //<==

	mCalibrator.processFrame(grayFrame, rgbaFrame);

	return rgbaFrame;
}
 

이상.

728x90