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

QT와 OpenCV 같이 사용시 pro 파일 설정 방법  (0) 2023.10.08
리눅스 프레임버퍼 예제 1  (0) 2015.01.27
atan2 함수  (0) 2010.06.29
Bitmap file 분석  (0) 2009.08.14

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


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

+ Recent posts