반응형
버전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)




반응형

해보고 확인한 것을 문서화하여 기록합니다.


부족함이 있지만 도움이 되었으면 합니다.
잘못된 부분이나 개선점을 알려주시면 감사하겠습니다.



포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
문제가 생기면 포스트와 바뀐 환경이 있나 먼저 확인해보세요.

질문을 남겨주면 가능한 빨리 답변드립니다.


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

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기

댓글을 달아 주세요

">