안드로이드에 클린 아키텍처를 도입한다면 어떻게 될까?

안드로이드와 클린 아키텍처 안드로이드 앱 아키텍처에 관심을 갖게 되면 필히 접하는 키워드, 클린 아키텍처에 대해서 알아보려고 한다. 클린 아키텍처 “If you want to go fast, if you want to get done quickly, if you want your code to be easy to write, make it easy to read” “빠르고 신속하게 코드작성을 더보기…

[안드로이드로 배우는 OpenCV] 윤곽선 검출하기

윤곽선(Contour)이란? 객체의 경계를 따라 연속적으로 결합되는 픽셀들을 윤곽선이라고 할 수 있다. 윤곽선은 모양 분석과 물체 감지 및 인식에 유용하다. 윤곽선을 찾을때는 더 나은 검출 정확도를 위해 이진화된 이미지를 사용하며, 검정 배경에서 흰색 객체를 찾는 것임을 기억하자. 윤곽선 알고리즘 윤곽선을 찾는 알고리즘이나 관련논문은 다음과 같다. Square tracing Moore-neighbor tracing Radial sweep 더보기…

글쓴이 Charlezz,

[오픈채팅방 공지사항]

찰스의 안드로이드 오픈채팅방 규칙 상업성 광고는 허용하지 않습니다.  구인광고 및 개인 앱 홍보는 자유롭게 하실 수 있습니다. 안드로이드 개발을 비롯한 모든 주제에 대해 자유롭게 질문 하실 수 있습니다. 질문 잘하는 방법은 이전 게시물을 확인해 주세요. 찰스의 안드로이드 오픈채팅방의 역할 오픈채팅방은 안드로이드 앱 개발자간 정보 공유를 통해 통찰력을 얻고, 가지고 있는 더보기…

[안드로이드로 배우는 OpenCV] 모폴로지(Morphology)

모폴로지(Morphology) 모폴로지는 형태학적인 측면에서 이미지를 다루는 기법을 말한다. 다양한 영상 처리 시스템에서 전처리 (Pre-processing) 또는 후처리(Post-processing) 형태로 사용한다. 모폴로지 연산의 예를 들자면,이진화 된 이미지에서 노이즈를 제거하거나, 구멍을 채운다거나, 끊어진 선을 이어 붙일 때 등에 사용될 수 있다. 이 포스팅에서는 침식과 팽창 그리고 열기와 닫기 연산에 대해서 알아볼텐데, 이러한 연산들을 수행하기 더보기…

플레이 스토어 콘솔없이 DFM을 로컬에서 테스트하기

DFM이란? DFM(Dynamic Feature Module)은 기본 모듈 앱(APK)로 부터 특정 기능이나 리소스를 분리하여 추후에 Play Feature Delivery를 통해 다운로드하고 설치 할 수 있다. 일반적인 DFM의 다운로드 경로는 Play store console에 업로드한 aab 파일로 부터 생성 된 별도의 apk로 진행되기 때문에, 앱번들로 빌드한 aab 파일을 콘솔에 업로드해야 한다. 하지만 개발시에 다운로드, 진행율 더보기…

[안드로이드로 배우는 OpenCV] 레이블링(Labeling)

레이블링(Labeling) 레이블링이란 일반적으로 이진화 된 이미지에서 연속된 픽셀에  대해 고유한 번호를 매기는 작업을 의미 한다. 이진화에 대한 내용은 이전 포스팅에서 확인할 수 있다. 이미지의 이진화 자동 이진화 임계값 결정(Otsu) 지역 이진화 적응형 이진화 레이블링을 수행하면 객체 단위로 이미지를 분석할 수 있게 된다. 객체의 위치, 크기, ROI 추출, 모양 분석등이 가능해진다. 더보기…

[안드로이드로 배우는 OpenCV] 적응형 이진화(Adaptive Threshold)

적응형 이진화 지난 포스팅에서 Otsu 및 지역 이진화를 적용 했을 때 다음과 같은 결과물을 얻는 것을 확인했다. Otsu나 지역 이진화를 통한 방법은 모든 이미지에서, 특히 이미지가 서로 다른영역에서 다른 밝기값을 가질 때 잘 수행되지 않는다. 이러한 경우 적응형 이진화를 진행할 수 있다. 적응형 이진화란 이미지의 각 픽셀에 대해 개별적으로 임계값을 더보기…

[안드로이드로 배우는 OpenCV] 지역 이진화

지역 이진화 지난 포스팅에서 Otsu 함수를 통해 임계값을 자동으로 결정하고 이미지를 이진화하는 방법에 대해서 알아보았다. 단순히 Otsu를 적용하는 것으로 객체와 배경을 분리할 수 있으면 좋겠지만 현실은 그렇지 않다. 다음의 쌀알이 포함된 이미지를 살펴보자. 쌀알 이미지에 Otsu 함수를 적용하면 다음과 같은 이진화 된 이미지를 얻을 수 있다.   큰 문제는 없어보인다. 더보기…

안드로이드 프로젝트 import 시 구글 리포지토리에 연결되지 않을 때

IOException: https://dl.google.com/android/repository/addons_list-x.xml java.net.ConnectException: Connection refused (Connection refused) 안드로이드 스튜디오에서 위와 같은 메시지를 출력 할 때 조치해볼 수 있는 내용은 다음과 같다. 우선 안드로이드 스튜디오와 SDK 툴들을 최신 상태로 만든다.  AGP 7.0(Android Gradle Plug-in) 이후에는 Gradle JDK버전을 11 이상으로 설정해야 하니 유의하자. 그래도 엑세스가 안되면, 방화벽 문제일 수 있으므로 방화벽을 해제 더보기…

[안드로이드로 배우는 OpenCV] 이미지의 이진화 – Otsu(자동 임계값 설정)

이진화 임계값 결정 지난 포스팅에서 임계값을 통해 이미지를 이진화 하는 방법에 대해서 알아보았다. 이진화 된 이미지를 얻을 때 가장 중요한 점은 바로 임계값을 어떻게 또는 무엇으로 결정하냐는 것이다. 임계값을 조금씩 변경하면서 사람의 눈으로 확인하여 가장 좋은 결과값을 얻는 것도 하나의 방법이지만 이러한 반복적인 작업 없이도 자동으로 적절한 임계값을 한번에 찾을 더보기…