카메라 버퍼에 접근해서 Y,Cb,Cr값을 나누고 이진화와 원하는 곳에 선긋기를 해보았다.
포맷이 YUYV일 때, Y,Cb,Cr값은 아래 표와 같이 저장된다.
Y1 |
Cb1 |
Y2 |
Cr1 |
Y3 |
Cb2 |
Y4 |
Cr2 |
· · · |
Y,Cb,Cr각각의 배열을 버퍼크기만큼 만들어서 버퍼에 있는 값을 차례대로 담으면 된다. 나중에 하나로 만들때도 똑같이 하면 된다.
이진화작업은 Y값만 살리고 Cb,Cr값은 128로 만들어 버리면 된다. Y값은 명도를 나타내는 값이라서 흑백만 남게된다.
아래 사진처럼 원하는 곳에 선을 긋고 싶으면 for문을 이용하여 원하는 경로를 지나는 Y,Cb,Cr값을 변경해주면 된다.
초록색으로 표시하고 싶으면 Cb,Cr값을 0으로 바꿔준다.
빨간색에 해당하는 Y,Cb,Cr값은 대략 80, 90, 240 이다.
YCbCr에서 원하는 색을 알아내고 싶으면 변환공식을 이용해서 RGB나 다른 포맷으로 알아내면 된다.
'Embedded System > Video4Linux2' 카테고리의 다른 글
[V4L2] Memory Mapping (0) | 2017.04.02 |
---|---|
[V4L2] Data Formats (3) | 2017.04.02 |
[V4L2] Querying Capabilities (0) | 2017.04.02 |
[V4L2] Opening and Closing Devices (0) | 2017.04.02 |
V4L2 API를 이용하여 영상획득 성공!! (0) | 2017.04.02 |