[Android_Opencv]
1. 안드로이드 스튜디오 설치 및 세팅
1.1 안드로이드 스튜디오(android) 다운로드.
Download Android Studio and SDK tools | Android Developers
developer.android.com
1.2 Configure -> SDK manager.

Configure -> SDK manager. -> SDK Platforms
-필요한 SDK 설치 . (최신 version )

1.3 SDK Tool 설치
- Configure -> SDK manager. -> SDK Tools
- 필요한 tool 설치
- OPENCV 세팅을 위한 필요 TOOL :: CMAKE , LLDB, NDK.
2. 안드로이드 프로젝트 생성.
2.1 새로운 프로젝트 생성.

Empty Activity 프로젝트를 생성해도 되지만, 비교적 간단하게 opencv 사용할 수 있도록 Native C++ (JNI Empty Activity) 프로젝트 생성.

2.2 프로젝트 Configure
이름, 패키지 이름, 저장 위치, 최소 API, language 알아서 선택

문제가 없을 시 CPP 폴더 내에 native-lib.cpp 파일이 있음을 확인할 수 있다.

3. OPENCV(ANDROID VERSION)설치
3.1 OPENCV DOWNLOAD
다운로드 주소 : https://github.com/opencv/opencv/releases
opencv/opencv
Open Source Computer Vision Library. Contribute to opencv/opencv development by creating an account on GitHub.
github.com
opencv-4.1.1-android-sdk.zip 다운로드.
지정된 위치에 압축풀기 – 계속 쓸 라이브러리 이므로 적당히 좋은 위치(?)에 위치시켜 둔다.
3.2 OPENCV 라이브러리 Import
안드로이드 Studio 프로젝트에서 Opencv 라이브러리를 사용하기 위해서 import 가 필요.
File > New > Import Module

소스 경로는 opencv 경로를 넣어준다.
- Android 설치 폴더 > sdk
- Module name : “:opencv”

Oppcv 모듈 Dependencies 설정.
File > Project Structure >Dependencies

Modules 에서 app 선택 후 Dependencies 에서 plus 를 클릭하여 module Dependecy 추가.

만일 다음과 같은 에러가 뜬다면 프로젝트 최소 sdk 버전을 올려준다.
File > Project Structure > Modules

Min SDK Version 탭에서 최소 SDK 버전 변경.
5. 프로젝트 테스트_Hello Android_OPENCV
세팅한 Android 에서 Opencv 실제 TEST
5.1 Permsssion 설정.
5.1.1 AndroidManifest.xml에서 외부 파일 읽기를 허용.
추가 :
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
5.1.2 MainActivity.java 에서 사용할 함수 추가.
추가 :
public native void helloworldImage(long input, long output);
( Native-lib.cpp 에서 실제 실행되는 함수 추가.(MainActivity 에 사용할 함수를 추가한 후 전구 모양을 클릭하면 자동으로 함수를 생성할 수 있음)
5.1.3 Native-lib.cpp 함수 추가
extern "C"
JNIEXPORT void JNICALL
Java_com_example_eyetracker_MainActivity_helloworldImage(JNIEnv *env, jobject instance, jlong input,
jlong output) {
// TODO
}
//TODO 부분에 실제 내용을 적어준다. ( 여기서부터는 OPENCV CPP 사용하는 것처럼 사용하면 된다.)
putText(outputMat, "HelloAndroidOpencv", Point(10,10), 2,2,Scalar(255,0,0));
(입력 받은 그림에서 “HelloAndroidopencv” 글자 삽입하여 출력.)
Mat *inMat = *(Mat *) input;
Mat *resultMat = *(Mat *) output;
cvtColor(inMat, resultMat, COLOR_RGB2GRAY);
그리고 OPENCV 헤더를 추가
#include <opencv2/opencv.hpp>
5.1.4 cmake 수정
set(pathPROJECT C:/EXT/EyeTracker_mobile)
set(pathOPENCV ${pathPROJECT}/opencv)
set(pathLIBOPENCV_JAVA ${pathOPENCV}/native/libs/${ANDROID_ABI}/libopencv_java4.so)
> pathPROJECT : 현재 프로젝트 경로 설정.
> pathOPENCV : 프로젝트 내부 import OPENCV 모듈 경로.
> pathLIBOPENCV_JAVA: pathOPENCV 내 native/lib 경로.
set(CMAKE_VERBOSE_MAKEFILE on)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -STD=gnu++11")
target_link_libraries 에 lib_opencv 추가.
target_link_libraries( # Specifies the target library.
native-lib
lib_opencv
# Links the target library to the log library
# included in the NDK.
${log-lib})
결과 :: 카메라 영상이 흑백 영상으로 보여짐.

'프로그래밍 > OPENCV' 카테고리의 다른 글
[OPENCV]OPENCV 4.0 설치 ( Visual Studio 2015, Extra module 포함) (0) | 2019.12.01 |
---|---|
[OPENCV]이미지 비트연산_bitwise_and, bitwise_or, add (0) | 2019.11.27 |