서적에 관한 질문 및 오류 등을 문의 할 수 있으며, 저자로부터 직접 답변을 받을 수 있습니다.

큰 어려움을 통과하고 나니 자꾸 욕심이 드네요.. --;;;

 

오늘 질문만 세개째입니다...

 

너무 많이 질문드려 죄송한 마음 금할 길이 없습니다.....

 

다름이 아니오라 NDK를 이용하여 camera 제어를 해 보고 싶어 여기저기 자료를 찾고 있는 중인데 

 

적절한 예제를 찾지 못하였습니다..

 

제가 작년 중반기에 카메라 관련하여 새로운 영상처리 알고리즘을 하나 개발하였는데 이를 안드로이드에 넣어 보고 싶습니다.

 

카메라로부터 흘러 나오는 프래임 데이터(bayer 든 YUV, bitmap 데이터건 상관 없습니다.)를 직접

 

받아서 처리해 보고 싶은데 안드로이드 자바의 SurfaceView 클래스 예제들에서는 이런 기능을 하는 예제가 보이지 않습니다.

 

따라서 혹시 NDK를 이용하여 camera 제어를 해 보신 분이나 예제를 가지고 계신 분이 있으시면

 

염치없습니다만, 공유해 주실 수 있는 지요?

 

염치없는 제 글 끝까지 읽어 주셔서 감사합니다.

 

즐거운 저녁 보내십시오.


전호철

2013.01.11 07:12:34
*.35.2.206

가장 심플하게 접근하는 방법은

JAVA에서 camera를 구동시켜 얻은 화상데이터를 NDK로 처리하는 것 같습니다.

카메라 데이터 얻는 방법은 인터넷에 많이 있습니다. 바코드스캐너라던지.... 훨씬 더 간단한 샘플도 많이 있을겁니다.


native에서 camera 에 직접 접근하는것은....가능하긴 한데 좀 복잡스러워서....

고도리

2013.01.11 08:42:42
*.111.12.170

음......전호철님 말대로 복잡스럽습니다.


왜냐하면 커널 내에 있는 데이터 형태로 넘어오기 때문에 부가적으로 해야할 일이 많을 수 있습니다.

즉, 데이터를 얻어오는 것도 힘들 수 있다는 얘기입니다.


일단 소스를 보시는데 큰 문제가 없다면.......libstagefright/CameraSource.cpp 를 참고하시는게 가장 좋을겁니다.


저도 근래 프로젝트를 저 소스를 가지고 진행하려고 하고 있습니다.

파란새

2013.01.11 11:09:12
*.178.131.160

삼성에서 NDA 를 통해 제공하는 ICS 소스를 찬찬히 살펴 보시면

카메라에서 YUV 형태로 입력영상을 읽어들이는 부분이 있었던걸로 기억 합니다 ...

카메라 입력영상을 사용해서 코덱구동 부분까지 제공했던것으로 파악하고 있읍니다 ...

 

카메라 HAL 쪽 관련부분에 개발자가 응용 가능하도록 이미 관련소스를 삼성에서 제공했던것으로 기억합니다 ....

 

ICS 소스를 세밀히 살펴 보시기를 ....

 

 

죽유

2013.01.11 18:00:27
*.95.154.133

답변 감사합니다. 전호철님, 고도리님, 파란새님.

 

첫번째로 전호철님 말씀대로 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 소스의 어느 부분을 살펴 보면 되는지요?

파란새

2013.01.11 18:38:31
*.178.131.160

ICS 소스의 device 디렉토리를 살펴 보세요

 

 

죽유

2013.01.11 21:23:26
*.95.154.133

답변 감사합니다. 파란새님.

 

말씀해 주신 부분 살펴보도록 하겠습니다.

 

알려주셔서 감사합니다.

 

그리고 첫번째로 전호철님이 조언해 주신 방법을 해보려고 여기저기 인터넷 문서를 찾아 보니

 

OpenCV에 nativePreviwer라는 클래스가 있습니다.

 

이것이 제가 첫번째로 시도해 해보려고 하는 기능인 것같아 보입니다.

 

그런데 제가 원하는 기능은 카메라로부터 프래임 버퍼 얻어와서

 

데이터 처리 후 (이부분은 제가 하면 됩니다.)

 

다시 프리뷰로 반환해 주는 기능만  있으면 되는데 

 

OpenCV가 영상처리하는 라이브러리라 저에게는 쓸데 없는 기능이 많이

 

들어 있어 많이 복잡해 보이네요.. ^^;;;

 

소스만 보고 다시 리빌딩(grab preview frame data -> process grabbed frame data -> preview processed data)하는데 시간이 제법 많이 걸릴 것 같습니다.

 

혹시 OpenCV의 camera 핸들링하는 것에 대한 좋은 문서를 가지고 계시거나

 

OpenCV보다 간단하게 카메라의 프래임 버퍼만를 얻어서 데이터처리하고 

 

이를 다시 프리뷰로 돌려 놓는 방법을 아시는 분이 계시면 알려 주시면 너무 감사하겠습니다.

 

예제가 아니더라도 방법만이라도 알려 주십시오.

 

제가 grab preview frame data & preview processed data 하는 기능을 완료하면

 

간단한 예제 소스는 공개하도록 하겠습니다.. ^^

 

도와 주십시오.

 

즐거운 하루 보내십시오.

 

감사합니다.

죽유

2013.01.11 23:32:30
*.95.154.133

문의 드린 내용을 stack overlow에서 OpenCV의 nativePreviwer 보다 간단한

 

예제를 찾기는 하였습니다.

 

그런데 화면 drawing 모듈이 비트맵으로 되어 있어서 실시간 디스플래이가 되는 지 궁금합니다..--;;

 

다음주까지 테스트해 보고 유용하면 예제 소스를 이곳에 올려 놓겠습니다.

 

혹시라도 문의 드린 내용 grab preview frame data & preview processed data에 대해 좋은 조언이나

 

방법이 있으시면 계속적인 조언 부탁 드리겠습니다.

 

제가 계속 모니터링하겠습니다.

 

즐거운 주말 보내십시오.

 

감사합니다.

 

 

 

List of Articles
번호 제목 글쓴이 날짜 조회 수sort

gpio 컨트롤관련하여 ledservice 가 바로 죽어 버리는현상이 나오는... [2]

  • biokk
  • 2015-01-17
  • 조회 수 224

ndk onTransact 함수에 대한 질문인데요 [1]

  • ice179
  • 2015-02-07
  • 조회 수 247

android binder 의 onTransact(uint32_t code, ...)의 code값은 ... [1]

  • ice179
  • 2015-01-29
  • 조회 수 290

ledservice , 라이브러리 추가 관련한 질문입니다 [3]

  • ice179
  • 2015-02-04
  • 조회 수 341

ndk 함수에서 c언어 동작은 onTransact 에서만 동작하나요? [3]

  • ice179
  • 2015-02-03
  • 조회 수 362

안드로이드 ndk gpio컨트롤 하기 질문입니다. [2]

  • ice179
  • 2015-01-16
  • 조회 수 433

3장 계산기 에러 file [2]

gpio 컨트롤 예제질문입니다. [3]

  • biokk
  • 2015-01-21
  • 조회 수 647

ndk 라이브러리추가 하는 질문입니다 [8]

  • ice179
  • 2015-02-11
  • 조회 수 820

ndk를 이용하여 일반 안드로이드 어플을 만들수가 있나요? [3]

  • biokk
  • 2015-07-25
  • 조회 수 1024

pluscalc 질문입니다. [1]

[예제17.ffmpeg를 활용한 player] ffmpeg를 활용한 player file

ffmpeg 예제에 대해 문의 드립니다. [1]

ics에서 OpenSL의 Playback Rate 안됨 [1]

NDK 에서 BYTE 나 BOOL 등은 사용 못하는지요? [1]

[예제15.Native_Thread] Native Thread 예제 file

[예제07/08.MethodCall] Native에서 JAVA의 Method를 호출하는 예... file

[예제14.JNI_onLoad] JNI_OnLoad 예제 file

ffmpeg 빌드관련 질문드립니다 file [6]

[예제16.GPIO제어] App. 에서 H/W 제어하는 예제 (native bind... file

사용자 로그인