본문 바로가기

Java

[AndroidM] 새로운 Permission 정책 적용하기 안드로이드 M(마시멜로, API 23) 부터는 앱 설치 시 퍼미션을 한번에 승인하는것이 아니라, 각각 개별 퍼미션에 대해서 사용자가 승인 또는 거부 여부를 설정할 수 있습니다. (앱 권한을 묻는 팝업, 사용자는 권한을 거부할 수 있으므로 이 부분에 주의하여야 합니다.) 따라서 앱이 사용하고자 하는 모든 퍼미션이 사용자의 거부에 의해 완벽하게 동작하지 않을 수 있으며, 이에 대한 처리가 수행되지 않았을 경우에는 비 정상적인 동작이 수행될 수 있습니다. 앱은 반드시 각각의 기능을 사용하기 전에 해당 퍼미션이 승인되었는지 여부를 검사하고,만약에 거부된 상태일 경우에 사용자로부터 이 퍼미션이 왜 필요한지 여부를 설명하고 퍼미션을 승인해 줄 것을 요청해야 하는 로직이 추가적으로 작성되어야 합니다. 아래의 예제는 .. 더보기
[CV] Android 명함 인식 명함 인식입니다. 만들어놓고 다양한 환경에 조정할 시간이 많지 않아서 인식률이 완벽하지는 않습니다. 다행히 영상에 찍힌 정도는 인식이 됩니다. OpenCV Android 로 제작, 대충 네모를 찾아서 인식한 후 투영 변환합니다. 키워드 : Imgproc.findContours, Imgproc.getPerspectiveTransform, Imgproc.warpPerspective, Imgproc.approxPolyDP, Imgproc.Canny 등등 더보기
[CV] 입력 영상을 RGB 3채널로 분리하기 [OpenCV - Android] 입력받은 영상의 각 색상 채널을 분리해서 싱글 채널로 만들어 작업하여야 할 때가 있다. Core.split 메소드를 이용해 RGBA로 분리하는 소스 List rgba = new ArrayList(); Core.split(in, rgba); Mat r = rgba.get(0); Mat g = rgba.get(1); Mat b = rgba.get(2); Mat a = rgba.get(3); // 입력이 A 채널도 포함할 경우 분리한걸 다시 합쳐서 4채널 매트릭스를 만드는 소스 List rgba = new ArrayList(); rgba.set(0, r); rgba.set(1, g); rgba.set(2, b); rgba.set(3, a); // A 채널도 합치고 싶을 경우 .. 더보기