[안드로이드로 배우는 OpenCV] VideoCapture 클래스 사용하기

VideoCapture 사용하기 OpenCV에서는 카메라 영상 및 동영상 파일에서 프레임을 가져오는 작업을 VideoCapture 하나로 처리한다.   카메라 또는 비디오 열기 // 카메라 불러오기, 안드로이드는 적용되지 않음. val videoCapture = VideoCapture(index, apiPreferences) // 또는 val videoCapture = VideoCapture() camera.open(index, apiPreferences) // 비디오 불러오기 val videoCapture = VideoCapture(filePath, apiPreferences) // 또는 val videoCapture 더보기…

Jetpack Compose의 등장배경을 알아보자.

Jetpack Compose는 네이티브 Android UI를 빌드하기 위한 최신 선언형 UI 툴킷이다. Jetpack Compose는 적은 수의 코드, 강력한 도구 및 직관적인 Kotlin API로 Android에서의 UI 개발을 간소화하고 가속화한다. Declarative UI Programming? 선언형 UI프로그래밍(Declarative UI Programming)은 기존의 명령형 UI 프로그래밍과 달리 View의 상태(State)만 선언하고 자세한 구현은 프레임워크에게 맡기는 방법을 의미한다. 왜 Compose가 더보기…

글쓴이 Charlezz,

macOS의 애플리케이션에 하드웨어 접근 권한 부여하기

Big Sur+VSCode 환경에서 OpenCV의 VideoCapture 클래스를 사용하여 카메라에 접근하려고 하는데 권한이 없다고 나온다. 권한을 부여하기 위해 System Preferences > Security & Privacy > Privacy > Camera 탭 을 열어서 애플리케이션 목록을 확인해도 VS Code는 Camera 관련 앱이 아니기 때문에 목록에 나오지 않는 듯 하다. macOS에서 애플리케이션의 권한목록은 데이터베이스로 관리 되고 더보기…

[안드로이드로 배우는 OpenCV] 선, 사각형, 원 그리기

OpenCV에서는 몇가지 그리기 함수를 제공한다. 각 그리기 함수에 대해서 알아보고 안드로이드용 예제를 만들어본다. 직선 그리기 line(img, pt1, pt2, color, thickness, lineType, shift) img: 그림을 그릴 영상 pt1: 시작점 pt2: 끝점 color: 선 색상 (B,G,R)  thickness: 선 두께 lineType: 선 타입; LINE_8(기본값), LINE_4, LINE_AA shift: 그리기 좌표 값의 축소 비율. 기본값은 더보기…

URI랑 URL 차이점이 뭔데?

URI 그리고 URL을 혼용해서 사용하는 경우가 있다. 대부분의 경우 문제가 없지만 정확하게 이 둘의 차이점이 존재한다. 그러므로 각 용어의 정의와 용도에 대해서 알아본다. URI URI는 특정 리소스를 식별하는 통합 자원 식별자(Uniform Resource Identifier)를 의미한다. 웹 기술에서 사용하는 논리적 또는 물리적 리소스를 식별하는 고유한 문자열 시퀀스다. URL URL은 흔히 웹 주소라고도 더보기…

글쓴이 Charlezz,

안드로이드 개발자의 영어 단어 공부 – 4주차 —

Vocab next-door neighbor : 옆집 neighbor: 이웃 neighborhood:  동네  oyster: 굴 oyster farm : 굴 양식장 crypto-currentcy : 암호화폐 Graphic card price is rising continuously due to cryptocurrency 암호화폐 때문에 그래픽 카드 값이 계속 올라요. encrypted : 암호화 되어있는 Your account information is encrypted for privacy reasons 사생활 문제로 당신의 더보기…

글쓴이 Charlezz,

ROI와 마스크

관심영역(ROI;Region Of Interest) 이란?  관심 영역 (ROI)은 이미지 분석 위해 한 이미지 내에서 선택되어진 일부 영역을 말한다. 추가적인 이미지 처리가 필요할 때 이 영역에 집중할 수 있게 된다.  일상생활에서 예시를 찾아보자. 코로나로 인해 QR코드 스캐너를 어디에서나 볼 수 있다. 실제 카메라에 들어오는 영상이라는 것은 연속되는 정지된 이미지다. 하나의 이미지는 여러개의 더보기…

[안드로이드로 배우는 OpenCV] 안드로이드 스튜디오에 OpenCV 개발 환경 설정하기

OpenCV(Open Source Computer Vision)은 실시간 컴퓨터 비전을 목적으로 한 프로그래밍 라이브러리이다. Android 플랫폼에서 OpenCV를 활용한 개발 환경을 구축해보자.  (macOS 기준) OpenCV 설정하기 OpenCV 공식 홈페이지에서 Android용 SDK를 제공하기 때문에 OpenCV 소스코드를 안드로이드 환경에 맞춰 빌드 할 필요는 없다. 글을 작성하는 현 시점, OpenCV 4.5.1버전이 최신버전이다. SDK를 다운로드 하자. 다운로드 : opencv-4.5.1-android-sdk.zip 1.압축 더보기…

LeakCanary로 메모리 누수 잡기

LeakCanary란? LeakCanary는 안드로이드를 위한 메모리 누수 감지 라이브러리다. 안드로이드 프레임워크 내부 이해를 통해 메모리 누수의 원인을 줄이는 기능을 제공하여, 개발자가 OOM(Out Of Memory)에러로 인한 크래시를 줄일 수 있도록 도와준다. 메모리 누수란? 애플리케이션이 더 이상 필요하지 않은 객체에 대한 참조를 유지함으로써 결과적으로 해당 객체에 할당 된 메모리를 회수 할 수 없어 더보기…

글쓴이 Charlezz,

MediaStore에 이미지, 비디오 질의 시간 비교 테스트

배경 다양한 질의를 통해, 가장 빠른 응답시간을 보이는 방법을 알아본다. 테스트 환경 Galaxy S9, 이미지 80507개, 동영상 29개 쿼리 타입 1번타입 – 파일 콘텐츠 Uri  + 이미지 타입만 거르기 contentResolver.query( MediaStore.Files.getContentUri(“external”), null, MediaStore.Files.FileColumns.MEDIA_TYPE + ” = ?”, arrayOf(“${MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE}”), null) 2번타입 – 이미지 콘텐츠 Uri  contentResolver.query( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null, null, null 더보기…

글쓴이 Charlezz,