OpenCV 홈페이지를 가면 Android에서 사용가능하도록 설명이 되어 있습니다.
하지만 자료가 오래되고, Eclipse로 되어있어, Android Studio로 작업했습니다.
우선 이번 포스팅은 라이브러리 추가하여, 기본 예제를 실행하는 것 까지이며
최종목표는 얼굴을 인식하는 것입니다.
먼저 Android Studio를 이용하여 기본 프로젝트를 하나 만듭니다.
그리고 OpenCV홈페이지에서 SDK를 다운로드합니다.
현재기준 최신버전은 3.4.1이지만, 전 2.4.13버전을 다운받았습니다.
압축을 풀고 라이브러리를 추가해 줘야 합니다.
File-New-Import Module...을 선택합니다.
그리고 압축을 푼 SDK의 OpenCV-android-skdk\sdk\java폴더를 선택합니다.
OpenCV라이브러리가 정상적으로 추가되었습니다.
build.gradle(Module: app)을 클릭합니다.
그리고 dependencies에 밑줄부분을 추가합니다.
1 | compile project(path: ':openCVLibrary24136') | cs |
그리고 native library를 추가합니다.
프로젝트 탐색기에서 Project Files로 변경한 다음 app-src-main-JniLibs에 폴더를 만듭니다.
압축을 푼 OpenCV폴더로 가서
OpenCV-android-sdk\sdk\native\libs 안의 armeabi와 armeabi-v7a 폴더를
위 안드로이드 스튜디오의 JniLibs 폴더안에 복사합니다.
이제 sdk안의 예제소스인 tutorial1을 해보겠습니다.
OpenCV-android-sdk\samples\tutorial-1-camerapreview로 들어가
Java코드와 layout코드를 가져와 복사합니다.
복사한 후 activity명이 같도록 변경해 줍니다.
manifest에서는 카메라 permission을 추가해 줍니다.
1 | <uses-permission android:name="android.permission.CAMERA"/> | cs |
그리고 권한 물어보는 코드도 만들어 주셔야 합니다.
실행 화면입니다.
처음 실행하면 권한을 물어봅니다.
그리고 승인이 되면 카메라가 실행됩니다.
이 예제가 java카메라와 native카메라 2가지 보는 것인데,
native로 전환하면 오류가 발생하네요.
오른쪽의 메뉴버튼을 누르면 토글이 됩니다.
native Camera로 전환하면 지원이 되지 않는다면서 앱이 종료됩니다.
아직 해결은 하지 못하였습니다.
하지만 OpenCV 라이브러리를 추가해서 카메라 실행하는 것까지 성공하였습니다.
테스트 영상입니다.