반응형
SMALL
YUV형식의 이미지를 채널별로 출력하기
YUV형식의 이미지는
3개의 채널, Y, U, V를 가지고 있지만
RGB와 달리
Y채널에는 영상의 밝기,
U, V채널에는 색차정보를 가지고 있다.
아래는 YUV 영상과 이를 각 채널별로 나누어 출력한 것이다.
원본영상
Y채널 영상 (밝기에 대한 정보를 가지고 있다.)
U채널 영상
V채널 영상
소스코드
다음 프로그램은 YUV형식을 가진
이미지를 Y, U, V 채널요소별로 분리하여 출력한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace std; int main(int argc, char** argv) { if (argc != 2) { cout << " Provide image name to read" << endl; return -1; } Mat inputImg; Mat yuvImg; inputImg = imread(argv[1], CV_LOAD_IMAGE_COLOR); cvtColor(inputImg, yuvImg, CV_BGR2YUV); vector<Mat> yuv_images(3); split(yuvImg, yuv_images); namedWindow("Original", CV_WINDOW_AUTOSIZE); namedWindow("Y", CV_WINDOW_AUTOSIZE); namedWindow("U", CV_WINDOW_AUTOSIZE); namedWindow("V", CV_WINDOW_AUTOSIZE); moveWindow("Original", 100, 100); moveWindow("Y", 120, 120); moveWindow("U", 140, 140); moveWindow("V", 160, 160); imshow("Original", inputImg); imshow("Y", yuv_images[0]); imshow("U", yuv_images[1]); imshow("V", yuv_images[2]); waitKey(0); return 0; } |
반응형
LIST
'Computer Vision by OpenCV' 카테고리의 다른 글
OpenCV 피부색 영역만 추출하기 (3) | 2016.03.24 |
---|---|
OpenCV HLS형식의 이미지 채널별 분리 (Split HLS-formated image) (0) | 2016.03.19 |
OpenCV 함수 at( )과 포인터 사용간의 시간 차이 (0) | 2016.03.19 |
컬러이미지를 색깔별로 구분하기 (Split color image into R, G, B images) (0) | 2016.03.19 |
이미지 반전하기 (Invert Color Image) (0) | 2016.03.18 |