URI랑 URL 차이점이 뭔데?

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

글쓴이 Charlezz,

ROI와 마스크

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

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

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

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번타입 더보기…

글쓴이 Charlezz,

onLayout() 호출 시 PhotoView의 Matrix 상태가 보존 되지 않는 문제 해결

PhotoView의 문제점 PhotoView 라이브러리를 사용하다보니 레이아웃 변경시 매트릭스 상태가 보존되지 않는 버그가 있었다. 대안으로 SubsamplingScaleImageView 라이브러리는 레이아웃 변경시에도 상태가 유지되는 것을 확인했다.  하지만 난 PhotoView를 쓰고싶다. 문제되는 상황을 살펴보자. 위와 같은 화면을 만들고 있다. 화면을 클릭하면 window의 decorView에 접근하여 System 더보기…

글쓴이 Charlezz,

Groupie로 RecyclerView를 쉽게 만들어보자!

Groupie로 RecyclerView를 쉽게 만들어보자! RecyclerView는 목록으로 구성된 화면을 만들 때 사용하는 아주 유용하고 강력한 위젯이다. RecyclerView는 거의 모든 앱에서 필수로 사용되며, 이를 구현하기 위해 어댑터, 뷰홀더 등과 같은 것들을 구현해야한다. 여러 화면에서 RecyclerView를 사용하는 경우가 많다. 이로 인해 보일러플레이트 코드가 더보기…