
회사 프로젝트 진행중 특이한 기능을 추가 하기로 했어요.
사진을 찍어서 특정 영역을 크롭 하는 기능을 추가 하는 것인데,
현재 진행중인 프로젝트는 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 로 마음껏 프로젝트를 진행해 보세요!
'공부방 > Flutter' 카테고리의 다른 글
행복한 코딩을 위하여!
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!
 
                  