Kotlin opencv 6

코틀린 - 카메라 필터 앱 만들기 - 8 (UI 디자인)

UI 디자인을 해야하는데, 막상 일일히 그리려하니 초라해서 검색해봤다. figma 라는 디자인 프로그램이 유명하다더라.. 그래서 회원가입하고 Free로 project 만들고 Android UI를 가져왔다. 오 좀 이쁜데? 하고 쓸려고했더니 쓰는법을 모르겠는거임.. 그래서 찾아봄. 찾아보니 figma 내부에 plugin으로 안드로이드 vector drawable 이라는 친구를 추가하라는거임 그래서 추가하고 각 객체들을 일일히 따왔다.. 굉장히 많아졌고 현재 디자인중인데 이거 색깔이 왜이러지 ㅋㅋ 그래서 또 검색했고 해결함 ㅎㅎ 이제 좀 카메라 앱 같다 ㅇㅈ? 이후 OpenCV 적용하고 버튼에 click 이벤트 적용했다. 카메라 전환이랑 CannyFilter만 넣었음. 촬영사진은 작게 나온다. 화면또한 작다..

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

CameraX 때문에 진짜 개고생을 많이 했다.. 알려진 자료도 별로 없는 건 기본이었지만. 데이터 처리 후 데이터를 가공한다는 점 때문에 알아할게 너무 많았다.. (이정도로 팔줄은 몰랐음.) 그래서 opencv에 있는 기능을 이용하려 한다. 찾으니 바로나왔다. (링크) 적용하니 바로 잘됨 ㅡㅡ;; 그리고 두번째 난관이 찾아왔다. 90도 꺾인 상태와 전체화면이 아니게 출력되었다. 그래서 열심히 검색했다. 결과적으로 풀스크린해결방안은 landscape로 고정하는수 밖에 없었고 회전문제는 기본적으로 생각했던 방법으로 처리를 해야만했다. 솔루션은 놀랍게도 원본 라이브러리 수정을 해서 현재 상태를 전달받는 방식으로 진행하더라.. 아무튼 ㅋ 실시간 카메라에 canny 적용 완료. 근데 저거 이용할거면 걍 코틀린 ..

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

이후 일단 kotlin에서 동영상에 대해 Canny 처리를 할 수 있도록 만들어봤다. 첨알았는데 mp4 읽을려면 ffmpeg dll이 필요해서 그것까지 load했음..(코덱 깔려있으면 당연히 알아서 될줄알았지..) 자 그럼 다시 생각해보자. 이제 뭘해야할까? 위에서 본것처럼 영상 처리과정은 다음과 같다 ViewFinder에 전달할 중간계층이 필요했었다. ㅋㅋ 깃허브에 올라와있는 내용은 원본영상 위에 face를 추적하고, 그위에 덮는 느낌이지만, 나는 원본영상을 수정해야했다. 즉 필터 적용한 영상을 보여줘야한다.. adapter같은 역할을 해야하는... ㅋㅋ 아 생각이 많아진다고.. 방법은 두개인것같다. 1. 처음부터 출력될 이미지데이터가 레퍼런스(참조)라면 그대로 변환하면서 자동으로 전달되게한다. - 그..

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

앞서 말한 것과 같이 일단 openCV가 정상적으로 동작할 수 있는 펑션들을 찾고 적용해보고 진행해기로 했다. 또 환경세팅하는 것 때문에 머리깨질뻔했다. 그래도 근 며칠간 안드로이드때문에 깨진시간보다는 빠르게 진행되었다. 역시 삽질은 레전드다.. 일단 나는 아래와 같이 프로젝트를 생성했다. 인텔리제이랑 안드로이드 스튜디오 왔다갔다해보니 똑같은것 같아서 편했다. 적응이 좀빠름. ㅋ 여튼 저렇게 환경세팅했고, 빌드 시스템이 세종류였는데 Gradle로 하는사람도있을 수 있었다. 근데 뭐 나는 펑션 연습만 하는 것이기 때문에 그대로 진행했다. (사실 왔다갔다 다해봤고 결론지었음) 그렇게 시작하고 이번에는 import module이 아닌, project structure로 들어간다. 그리고 modules 에 들어..

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

3. 카메라 필터(OpenCV) 추가 1,2번 과정을 거치면서 CameraX와 OpenCV라이브러리를 추가하는 방법을 알아봤다. 두 사례를 모두 적용한다. 아. 참고로 안드로이드 스튜디오 22.01 버젼에서 CameraX적용은 쉬우니까 지금까지 잘 해왔다면 문제없이 적용할 것임. 이제 실시간 필터기능을 추가하기 위해 우리는 실시간 촬영데이터의 근원이 어디서 일어나는지 알아야한다. 코드를 한번살펴보자. 아마 이 부분에서 카메라를 송출을 세팅해주는 부분이 있을 것인데. 일단 나는 전면 카메라 사용을 위해 DEFAULT_FRONT_CAMERA로 변경했다. 최종적인 카메라 어플을 만들기 위해서는 버튼으로 만들어야할 것임 ㅇㅇ private fun startCamera() { val cameraProviderFu..

코틀린 - 카메라 필터 앱 만들기 - 2 (OpenCV 세팅)

2. 코틀린 안드로이드 OpenCV 적용해보기 문제가 엄청 많은 OpenCV 세팅이다.. Android studio는 android-studio-2023.2.1.23-windows을 다운받아사용했고 AGP 버젼 8.4에 Gradle은 8.3을 사용하고 있었다. 그런데 난관이 너무나도 많았다. 1. OpenCV Module 추가 - import module으로 추가하여 사용하면됨 2. import module시 에러가뜬다. - 미해결이고 - 그래도 배운게 많았다. AGP 버젼수정은 project내의 build.gradle을 통해 수정할 수 있다. - 문제점이 너무나도 많았고, 검색하여 참고할 수 있는 내용들은 대부분 과거의 버전이기때문에 다운그레이드하기로 결정했다. - 근데 문제는 또 ... 다운그레이드하..