How to install opencv in flutter for android(플러터 opencv 설치 방법 Android)
회사 프로젝트 진행중 특이한 기능을 추가 하기로 했어요.
사진을 찍어서 특정 영역을 크롭 하는 기능을 추가 하는 것인데,
현재 진행중인 프로젝트는 Flutter 로 만들고 있었는데
Flutter 라이브러리를 아무리 뒤져봐도 최신 업데이트를 주기적으로 하는
Flutter 라이브러리가 보이지 않아 직접 native에 라이브러리를 추가 하여 Flutter로 읽어 오려 해요.
해당 문서는 Flutter 프로젝트에서 Android native 에 opencv 를 설치 하기 위한 문서에요
이제 시작 할게요.
1. 먼저 opencv를 다운 받아야 해요
아래 Github 에서 최신 releases 버전을 다운 받아 주세요.
저는 안드로이드 native에서 사용할 것이기 때문에
opencv-4.7.0-android-sdk.zip 를 다운 받았어요.
https://github.com/opencv/opencv/releases
Releases · opencv/opencv
Open Source Computer Vision Library. Contribute to opencv/opencv development by creating an account on GitHub.
github.com
2. Android에 모듈을 안정적으로 추가하기위해 Android Studio에서 Android 프로젝트를 실행을 시켜줘요.
안드로이드 프로젝트에서 우측 클릭을 하고 Flutter -> Open Android module in Android Studio 를 클릭하면
새로운 탭에서 안드로이드 프로젝트가 열려요.
3. module을 추가해 보아요
a. 상단 메뉴에서 File -> New -> import Module을 클릭해
b. Source directory 에 폴더 모양 아이콘을 선택해요
C. 1. 번 에서 다운 받은 Opencv 파일 압출을 푼 상태에서 SDK 폴더를 선택해서 열어줘요.
D. Module name은 원하는 이름으로 변경하고 Finish 를 누르면 모듈 추가는 끝이나요.
E. 이제 안드로이드 프로젝트 Gradle 파일에도 추가한 모듈을 의존성 추가를 해줘요.
그림 3에서 설정한 Module name 과 동일한 이름으로 path 이름을 맞춰준후 sync gradle을 해줘요
implementation project(path: ':sdk이름')
F. Android 프로젝트의 MainActivity 파일 수정이 필요해요
메인 화면에서 Opencv 로딩을 할수 있도록 추가를 해줘요.
class MainActivity: FlutterActivity() {
init {
System.loadLibrary("opencv_java4")
}
private val mLoaderCallback: BaseLoaderCallback = object : BaseLoaderCallback(this) {
override fun onManagerConnected(status: Int) {
when (status) {
SUCCESS -> {
Log.e("mylog", "OpenCV onManagerConnected SUCCESS")
}
else -> {
super.onManagerConnected(status)
}
}
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
flutterEngine?.run {
GeneratedPluginRegistrant.registerWith(this)
}
}
override fun onResume() {
super.onResume()
if (!OpenCVLoader.initDebug()) {
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION, this, mLoaderCallback)
} else {
mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS)
}
}
}
자 이제 opencv 로 마음껏 프로젝트를 진행해 보세요!