개발일지/코틀린(Kotlin)

코틀린 - 카메라 필터 앱 만들기 - 4 (IntelliJ + OpenCV)

이건나이스가아니야 2024. 4. 15. 21:22

앞서 말한 것과 같이 일단 openCV가 정상적으로 동작할 수 있는 펑션들을 찾고 적용해보고 진행해기로 했다.

 

또 환경세팅하는 것 때문에 머리깨질뻔했다. 그래도 근 며칠간 안드로이드때문에 깨진시간보다는 빠르게 진행되었다.

역시 삽질은 레전드다..

 

일단 나는 아래와 같이 프로젝트를 생성했다.

 

인텔리제이랑 안드로이드 스튜디오 왔다갔다해보니 똑같은것 같아서 편했다. 적응이 좀빠름. ㅋ 

 

여튼 저렇게 환경세팅했고, 빌드 시스템이 세종류였는데 Gradle로 하는사람도있을 수 있었다. 근데 뭐 나는 펑션 연습만 하는 것이기 때문에 그대로 진행했다. (사실 왔다갔다 다해봤고 결론지었음)

 

그렇게 시작하고 이번에는 import module이 아닌, project structure로 들어간다.

그리고 modules 에 들어가고 +눌러주고 JAR 어쩌고 첫번째 누름

 

이후 jar 찾아서 추가해준다.

 

여기서 끝이아님.

기능 사용에는 지장이 없는데, 찾아보니.. systemcall을 사용해야하는 것 같다. 

수많은 착오 끝에 절대경로 넣고 추가하고 하다보니 해냄 ㅎㅎ

 

import org.opencv.core.Core
import org.opencv.core.Mat
import org.opencv.highgui.HighGui.imshow
import org.opencv.highgui.HighGui.waitKey
import org.opencv.imgcodecs.Imgcodecs


fun opencvTest(){
    val img_src = Imgcodecs.imread("D:\\Develop\\IntelliJ\\Img\\NoNice.jpg")
    //var img_dst :Mat=Mat()
    //Canny(img_src,img_dst,10.0,100.0)
    //Imgcodecs.imwrite("./result.jpg",img_dst)
    imshow("Canny",img_src)
    waitKey(0); // Wait for a keystroke in the window
}

fun main(args: Array<String>) {
    //println("Hello World!")

    //System.setProperty("java.library.path", "D:/lib/opencv_3_4_16/build/java")
    println(Core.NATIVE_LIBRARY_NAME)
    //System.loadLibrary( Core.NATIVE_LIBRARY_NAME )
    //val javaPathStr="D:/lib/opencv_3_4_16/build/java/"
    val javaPathStr="D:/lib/opencv_3_4_16/build/java/x64/"
    System.load(javaPathStr+Core.NATIVE_LIBRARY_NAME+".dll");
    //System.load(javaPathStr+"/opencv.dll");
    opencvTest()
}

 

 

진호씨 ㅎㅇ

이미지 로드 성공. 캐니 적용.

 

성공 ㅎㅎ 이제 다시 안드로이드로 넘어간다