본문 바로가기

[JAVA CV] JavaCV를 활용해 웹캠 제어하기 JavaCV는 java로 OpenCv의 기능을 직접 활용할 수 있는 라이브러리라고 소개되고 있다. 어찌되었건 javaCV로 웹캡을 제어하는 예제들이 상당했기 때문에 써보기로 했다. OpenCV 라이브러리 세팅을 이클립스에 마치고, javaCV의 라이브러리도 build path에 추가해주어야만 해당 코드들이 활용 가능하다. 여러 페이지를 참조해가며 JavaCV를 적용하다보니 한 페이지의 인스트럭션을 온전히 따르지 않은 감도 있는데, 내가 수행한 순서들만 나열하면 (선행조건 : OpenCV 라이브러리 추가를 마친 이클립스에서 아래 과정을 진행한다) 1. VisualC++ redistributable package 설치 For 32 bit: http://www.microsoft.com/download/en/d..
[OPEN CV] 이클립스 OpenCV 환경 구축하기 (Windows) 기존 맥 OS에서 안드로이드 프로젝트 개발을 해오다가, 요구사항들이 많아지면서 pc기반 어플리케이션을 개발하는 것으로 방향이 잡혔다. 자바를 사용해 카메라를 제어하고자 했는데, OpenCV나 javaCV 등의 라이브러리가 필요했고 이것들이 맥에서는 윈도우보다 세팅하기가 좀 더 복잡한 감이 있었다. 그런 조건하에 윈도우에서 프로젝트 개발을 하는게 낫겠다는 판단을 했고, 개인 노트북에서 프로젝트 개발을 시작해보기로 했다. 우선 윈도우에서 OpenCV 라이브러리 셋업을 하기위해 최신 버전의 이클립스 java IDE와 OpenCV 3.42 버전을 다운로드했다. https://docs.opencv.org/3.4/d1/d0a/tutorial_java_eclipse.html 윗부분의 OpenCV 공식사이트에선 공개 ..
[OPENGL ES] OpenGL ES 1.0, Batchinig으로 프레임 속도 압도적으로 개선하기 그동안 안드로이드에서 OpenGL ES 1.0 기반의 그래픽을 최적화하고, 프레임 속도를 개선하기 위해 참 다양한 작업들을 적용해 왔는데, 이번에 가장 월등한 해결책을 찾을 수 있었다. 여기까지 오기 위해 다양한 자료들을 참조하던 중에 통상적으로 쓰이는 그래픽 기술로 크게 Batching과 Culling이 있었다. (참조 : http://egloos.zum.com/littles/v/3440645 ) Batching은 쉽게 말해 픽셀을 모아찍는 것이고 Culling은 필요한 부분만을 드로잉하는 것이다. Culling의 경우에는 개념으로 따졌을때나 실질적으로 활용할때나 사용하던 기술로 어느정도 한계점에 다다른 상황이었고 Batching의 경우에는 아직 사용하지 못한 영역이었다. 주안점은 이것이다. Draw ..
[안드로이드] 소숫점 조정된 double 변수로 ValueAnimator 사용하기 숫자가 변화하는 ValueAnimator를 기존에는 Int 변수에 사용하고 있었는데 이를 double 변수에도 사용할 일이 생겼다. 사용할 일이 생겼다기보단 사용하고 싶은 욕구가 생겼다. 어쨌거나 ValueAnimator를 사용하기 위해서 아래와 같은 코드, 그리고 과정을 거쳤다. 1. 먼저 ValueAnimator 객체를 생성한다. 2. setObjectValues(시작값, 완료값) 을 설정한다. 3. addUpdateListener를 달아준다. 여기에서 textView를 참조해 textView가 표시하는 숫자를 다이나믹하게 변화시킬 수 있게 한다. 4. setEvaluator를 달아준다. setEvaluator를 스튜디오의 권유에 따라 자동으로 생성하고 나면 기본 evaluator의 return 값과..
[안드로이드] Fatal signal 11 (SIGSEGV) at 0x00000008 (code=1) 관련 오류는 Lolipop에서는 아예 일어나지 않는 오류정도 였는데, 요즘 테스트 기기가 킷캣으로 제한되다 보니 멈췄다 하면 로그를 봤을때 다반수가 SIGSEGV 오류인 걸 볼 수 있었다. 골치아픈건 이게 네이티브 레벨에서 일어나는(메모리단에서?) 오류라 코드로 일어나는 부분을 확인하기가 어렵다는 점이다. 덕분인지 원인도, 해결방안도 가지각색으로 나오는 걸 서치해보면 확인할 수 있다. 그중에 분명한건 어느 시점에서 오류가 발생하는 게 느껴질 정도로 빈도가 잦은 구간이 딱 있어서 해당 액티비티 안의 코드를 중점으로 이것저것 작업을 해보고 있다. 관련해서 테스트를 하면서 오류가 발생하는 대로 계속 상처를 덧대듯이 보완사항을 적용해보고, 또 게시글에 업데이트 할 예정이다. 그동안 적용한 해결책은 아래와 같다...
[안드로이드] Custom animation 정의를 통한 액티비티 전환 애니메이션 적용하기, static 클래스 내부에서 overridePendingTransition 사용하기 overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); 기존에는 위와 같은 간단한 안드로이드 기본 애니메이션을 활용해서 액티비티 전환 애니메이션을 사용했는데, 단순한 Fade in, fade out을 떠나 슬라이드 쇼처럼 위 혹은 옆에서 액티비티 화면이 들어올 수 있도록 하고 싶었고, 서치를 통해 아주 유용한 페이지를 찾았다. http://wimir-dev.tistory.com/23 참조한 페이지를 통해 프로젝트의 res 폴더에 anim 리소스 폴더를 만들고, slide_up.xml, slide_down.xml 을 생성 이를 아래와 같이 적용해 응용하였다. overridePendingTransition(R.anim.slide..
[안드로이드] PorterDuff.Mode로 적용 가능한 다양한 옵션을 활용하자 progress.getIndeterminateDrawable().setColorFilter(Color.rgb(60, 179, 113), android.graphics.PorterDuff.Mode.SRC_IN); 프로그레스 바의 커스텀 색을 입히기 위해 활용했던 android.graphics.PorterDuff.Mode 를 새로 적용한 프로그레스 바의 테마에는 잘 어울리지 않아 다른 모드들이 있는지 찾아보게 되었고 관련되어 정리가 잘 되있는 안드로이드 developer 페이지를 찾았다. 기존에 적용해주던 옵션은 android.graphics.PorterDuff.Mode.MULTIPLY 였는데 하나의 원만 도는 기존 프로그레스 바와 달리 겹쳐서 두 개의 프로그레스 바가 돌아가는 듯한 현상이 생겨 하나의 dr..
[안드로이드] 레이아웃에 동적으로 이미지뷰 추가하기 (ScalableLayout을 활용한 경우) 이미 명시된 이미지뷰의 위치를 애니메이트 하거나 이동시키는 건 어느정도 익숙했지만 동적으로 xml파일로 명시되지 않은 이미지뷰를 원하는 크기와 위치에 추가하는 건 해보지 않은 일이었다. 여러 자료들을 참조했고, 다음과 같은 큰 단계들을 따라 목표를 달성할 수 있었다. 1. 추가하고자 하는 속성의 뷰를 선언하고, 속성을 지정한다. setLayoutParams에서는 뷰의 필수값인 layout_width, layout_height을 아래와 같이 지정해주게 된다. ScalableLayout이 아닌 기타 width, height 값을 정해 만들고자 한다면 WRAP_CONTENT로 넘겨주고 있는 부분을 조정해주면 된다. ( 이 경우에는 다음 페이지를 참조할 것 : https://stackoverflow.com/qu..