Video For Linux 2 API에 나와있는 부록 예제에 대해 질문드립니다.
글쓴이: lovelyphy07 / 작성시간: 목, 2009/09/17 - 4:23오후
부록예제는 다음의 주소에 있습니다.
http://v4l2spec.bytesex.org/spec/capture-example.html
read_frame함수에서 이미지 그랩을하고 나서 process_image라는 함수로 보냅니다.
하지만 이 예제에서는 구체적으로 이 이미지 데이터를 어떻게 처리하는지는 나와있지 않았구요.
제가 알고 싶은것은..
1) 제가 리눅스 프로그래밍이 익숙치 않습니다. 정상적으로 이미지 그랩이 되었는지 확인하고 싶은데, 가장 쉬운 방법이 무엇인지요?
2) 이 예제에서 그랩된 이미지 데이터들이 어떤 포멧인지 알고 싶습니다.
제가 윈도우에서 다이렉트쇼를 이용해 BGR 포멧으로 입력받으면 BGR이 3바이트로 순차적으로 나열된 구조였죠. 비슷한가요?
Forums:
해결하였습니다.
1) 가장 쉬운 방법은 ppm 파일로 이미지를 출력하는 것입니다.
파일형식이 RGB24인 경우, 그냥 fwrite 함수로 덤핑하면 되거든요 ^-^
다음은 ppm 파일에 대한 설명입니다. 저의 경우는 P6 파일 포맷을 테스트에 사용하였지요.
http://netpbm.sourceforge.net/doc/ppm.html
2) 그랩된 이미지 포멧은 `fmt'로 검색하시면 V4L2_PIX_FMT_YUYV라는 매크로를 찾으실 수 있습니다.
YUYV 포맷는 YUV 4:2:2로도 불리우며, 한 픽셀을 나타내기위해 2바이트를 필요로 합니다.
여기서 Y는 흑백값을 나타내지요. 사용방법은 V4L2 API Specification에 포맷 설명이 자세히 나와있으니 참고하시기 바랍니다.
저의 경우 Logitech Quickcam을 사용했는데, V4L2_PIX_FMT_RGB24를 지원해주지 않더군요.
그래서 YUYV->RGB24 변환을 따로 해주었습니다.
댓글 달기