서적에 관한 질문 및 오류 등을 문의 할 수 있으며, 저자로부터 직접 답변을 받을 수 있습니다.
큰 어려움을 통과하고 나니 자꾸 욕심이 드네요.. --;;;
오늘 질문만 세개째입니다...
너무 많이 질문드려 죄송한 마음 금할 길이 없습니다.....
다름이 아니오라 NDK를 이용하여 camera 제어를 해 보고 싶어 여기저기 자료를 찾고 있는 중인데
적절한 예제를 찾지 못하였습니다..
제가 작년 중반기에 카메라 관련하여 새로운 영상처리 알고리즘을 하나 개발하였는데 이를 안드로이드에 넣어 보고 싶습니다.
카메라로부터 흘러 나오는 프래임 데이터(bayer 든 YUV, bitmap 데이터건 상관 없습니다.)를 직접
받아서 처리해 보고 싶은데 안드로이드 자바의 SurfaceView 클래스 예제들에서는 이런 기능을 하는 예제가 보이지 않습니다.
따라서 혹시 NDK를 이용하여 camera 제어를 해 보신 분이나 예제를 가지고 계신 분이 있으시면
염치없습니다만, 공유해 주실 수 있는 지요?
염치없는 제 글 끝까지 읽어 주셔서 감사합니다.
즐거운 저녁 보내십시오.
답변 감사합니다. 전호철님, 고도리님, 파란새님.
첫번째로 전호철님 말씀대로 JAVA에서 camera를 구동시켜 얻은 화상데이터를 NDK로 처리하는 것을
시도해 보아야겠습니다.
그런데 전호철님께서 말씀하신 JAVA에서 camera를 구동시켜 화상데이터를 얻어 영상처리하고 다시 이를 실시간 디스플래이하는 예제가 잘 않보입니다.. ^^;;;
어떤 키워드로 찾아 보아야 합니까?
알려주시면 감사하겠습니다.
도와주십시오.
두번째로 제 주종목이 영상 디바이스의 pre-processing(3A, IPC)을 하는 모듈을 설계 및 컨설팅하는 것입니다.
제 전 직장이 디지털 카메라를 만드는 부서여서 제가 맡은 분야가 카메라의 pre-processing(3A, IPC) 였습니다.
지금도 현 직장에서 영상 디바이스의 pre-processing(3A, IPC)을 수행하고 있습니다.
따라서 현재 제가 안드로이드 NDK를 배우는 이유는 여러 다른 이유가 있습니다만,
주로 실시간 및 대용량 영상 데이터 처리에 한계점을 가진 자바 계열 언어를 가지고 개발하다 포기했던, C/C++로 구현된 제 영상처리 모듈을 JNI를 통해 안드로이드 시스템에 발현하는 것과
카메라 디바이스 드라이버(책에 보면 GPIO 컨트롤부분을 감명깊게 읽었습니다. ^^)를 제어해 보고 싶은 것 때문이었습니다.
그리고 안드로이드로 카메라 디바이스 드라이버를 제어만 할 수 있다면,
제가 몸담고 있는 분야 (영상처리 분야. 특히, 3A[AE/AWB/AF])에서 큰 이슈가 될 것이고 많은 일거리가 창출될 것으로 사료됩니다.
고도리님 말씀대로 제 스스로 CameraSource.cpp를 공부해 볼 필요가 있겠습니다.
고도리님께서 간략하게 파일 패스를 말씀해 주셨는데 CameraSource.cpp의 풀 파일 패스를 알고 싶습니다.
세번째로 파란새님께서 말씀하신 ICS 라 하심은 안드로이드의 IceCreamSandwich를 말씀하시는 겁니까?
그것이 맞다면 안드로이드 4.0 소스의 어느 부분을 살펴 보면 되는지요?
답변 감사합니다. 파란새님.
말씀해 주신 부분 살펴보도록 하겠습니다.
알려주셔서 감사합니다.
그리고 첫번째로 전호철님이 조언해 주신 방법을 해보려고 여기저기 인터넷 문서를 찾아 보니
OpenCV에 nativePreviwer라는 클래스가 있습니다.
이것이 제가 첫번째로 시도해 해보려고 하는 기능인 것같아 보입니다.
그런데 제가 원하는 기능은 카메라로부터 프래임 버퍼 얻어와서
데이터 처리 후 (이부분은 제가 하면 됩니다.)
다시 프리뷰로 반환해 주는 기능만 있으면 되는데
OpenCV가 영상처리하는 라이브러리라 저에게는 쓸데 없는 기능이 많이
들어 있어 많이 복잡해 보이네요.. ^^;;;
소스만 보고 다시 리빌딩(grab preview frame data -> process grabbed frame data -> preview processed data)하는데 시간이 제법 많이 걸릴 것 같습니다.
혹시 OpenCV의 camera 핸들링하는 것에 대한 좋은 문서를 가지고 계시거나
OpenCV보다 간단하게 카메라의 프래임 버퍼만를 얻어서 데이터처리하고
이를 다시 프리뷰로 돌려 놓는 방법을 아시는 분이 계시면 알려 주시면 너무 감사하겠습니다.
예제가 아니더라도 방법만이라도 알려 주십시오.
제가 grab preview frame data & preview processed data 하는 기능을 완료하면
간단한 예제 소스는 공개하도록 하겠습니다.. ^^
도와 주십시오.
즐거운 하루 보내십시오.
감사합니다.
문의 드린 내용을 stack overlow에서 OpenCV의 nativePreviwer 보다 간단한
예제를 찾기는 하였습니다.
그런데 화면 drawing 모듈이 비트맵으로 되어 있어서 실시간 디스플래이가 되는 지 궁금합니다..--;;
다음주까지 테스트해 보고 유용하면 예제 소스를 이곳에 올려 놓겠습니다.
혹시라도 문의 드린 내용 grab preview frame data & preview processed data에 대해 좋은 조언이나
방법이 있으시면 계속적인 조언 부탁 드리겠습니다.
제가 계속 모니터링하겠습니다.
즐거운 주말 보내십시오.
감사합니다.
가장 심플하게 접근하는 방법은
JAVA에서 camera를 구동시켜 얻은 화상데이터를 NDK로 처리하는 것 같습니다.
카메라 데이터 얻는 방법은 인터넷에 많이 있습니다. 바코드스캐너라던지.... 훨씬 더 간단한 샘플도 많이 있을겁니다.
native에서 camera 에 직접 접근하는것은....가능하긴 한데 좀 복잡스러워서....