반응형
버전1에 비해 방대해진 양에 질려서 예제 코드를 보며 공부하기 시작했다. 
이것도 만만치 않음....


웹캠에서 YUV  데이터를 얻게되는데 어떻게 제대로 나오는지 확인할까 고민하다가 
Y의 이미지 크기는 웸캠에서 얻는 영상의 크기와 동일하다는 생각이 들어서 
opencv로 출력하도록 했다. 

컬러로 바꾸는 것은 API 스펙에 나온 내용과  http://v4l2spec.bytesex.org/spec/r4339.htm
YUV2BGR 변환식만 있으면 만들 수 있을듯 싶음.http://www.fourcc.org/fccyvrgb.php

V4L2_PIX_FMT_YUYV ('YUYV')

Name

V4L2_PIX_FMT_YUYV -- Packed format with ½ horizontal chroma resolution, also known as YUV 4:2:2

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.

start + 0: Y'00 Cb00 Y'01 Cr00 Y'02 Cb01 Y'03 Cr01
start + 8: Y'10 Cb10 Y'11 Cr10 Y'12 Cb11 Y'13 Cr11
start + 16: Y'20 Cb20 Y'21 Cr20 Y'22 Cb21 Y'23 Cr21
start + 24: Y'30 Cb30 Y'31 Cr30 Y'32 Cb31 Y'33 Cr31

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        1       2         3

0 Cb00
Cr00


Cb00
Cr00

Cb01
Cr01
Cb01
Cr01

1 Cb10
Cr10

Cb10
Cr10

Cb11
Cr11

Cb11
Cr11


2 Cb20
Cr20

Cb20
Cr20

Cb21
Cr21

Cb21
Cr21


3    Cb30
Cr30

Cb30
Cr30

Cb31
Cr31

Cb31
Cr31

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 > 미분류' 카테고리의 다른 글

리눅스 프레임버퍼 예제 1  (0) 2015.01.27
Video for Linux Two & YUV422 to BGR888  (0) 2010.08.24
atan2 함수  (0) 2010.06.29
Bitmap file 분석  (0) 2009.08.14

포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
개선 사항을 댓글로 남겨주면 가능한 빨리 반영하도록 하겠습니다.

여러분의 응원으로 좋은 컨텐츠가 만들어집니다.
지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 ~~

유튜브 구독하기


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts