Video for Linux Two & YUV422 to BGR888OpenCV/미분류2010. 8. 24. 08:21
Table of Contents
반응형
버전1에 비해 방대해진 양에 질려서 예제 코드를 보며 공부하기 시작했다.
Cb, Cr 영상을 얻으려면..
0 1 2 3
이것도 만만치 않음....
웹캠에서 YUV 데이터를 얻게되는데 어떻게 제대로 나오는지 확인할까 고민하다가
Y의 이미지 크기는 웸캠에서 얻는 영상의 크기와 동일하다는 생각이 들어서
opencv로 출력하도록 했다.
컬러로 바꾸는 것은 API 스펙에 나온 내용과 http://v4l2spec.bytesex.org/spec/r4339.htm
YUV2BGR 변환식만 있으면 만들 수 있을듯 싶음.http://www.fourcc.org/fccyvrgb.php
V4L2_PIX_FMT_YUYV ('YUYV')
Description
In this format each four bytes is two pixels. Each four bytes is two Y's, a Cb and a Cr. Each Y goes to one of the pixels, and the Cb and Cr belong to both pixels. As you can see, the Cr and Cb components have half the horizontal resolution of the Y component.V4L2_PIX_FMT_YUYV
is known in the Windows environment as YUY2.
Example 2-1. V4L2_PIX_FMT_YUYV
4 × 4 pixel image
Byte Order. Each cell is one byte.
Color Sample Location.
인접 두 바이트의 Y성분이 Cb, Cr을 공유해서 사용하는 개념인데..다시말하면 변환 공식에 집어넣을때 아래 한 블럭으로 BGR 두 개의 필셀이 결정된다.
Y'00 | Cb00 Cr00 |
Y'01 |
풀어 적으면
Y'00 , Cb00, Cr00 -> R0, G0, B0
Y'01 , Cb00, Cr00 -> R1, G1, B1
좀 더 이해하기 쉬운 그림 http://daigouji-gai.tripod.com/documents/document07.html
Cb, Cr 영상을 얻으려면..
0 | Cb00 Cr00 |
Cb00 Cr00 |
Cb01 Cr01 |
Cb01 Cr01 |
||||||
1 | Cb10 Cr10 |
Cb10 Cr10 |
|
|
||||||
2 | Cb20 Cr20 |
Cb20 Cr20 |
|
|
||||||
3 | Cb30 Cr30 |
Cb30 Cr30 |
|
|
YUV to RGB Conversion
B = 1.164(Y - 16) + 2.018(U - 128) G = 1.164(Y - 16) - 0.813(V - 128) - 0.391(U - 128) R = 1.164(Y - 16) + 1.596(V - 128)
반응형
'OpenCV > 미분류' 카테고리의 다른 글
QT와 OpenCV 같이 사용시 pro 파일 설정 방법 (0) | 2023.10.08 |
---|---|
리눅스 프레임버퍼 예제 1 (0) | 2015.01.27 |
atan2 함수 (0) | 2010.06.29 |
Bitmap file 분석 (0) | 2009.08.14 |