더북(TheBook)

그림 10-8의 컬러 히스토그램 평활화 방법을 실제 영상에 적용한 예제 코드를 코드 10-4에 나타냈습니다. 코드 10-4에 나타난 coloreq 예제 프로그램은 pepper.bmp 영상에 대하여 컬러 히스토그램 평활화를 수행하고 그 결과를 화면에 나타냅니다. 코드 10-4에 나타난 소스 코드 파일과 사용된 영상 파일은 내려받은 예제 파일 중 ch10/coloreq 프로젝트에서 확인할 수 있습니다.

코드 10-4 컬러 영상의 히스토그램 평활화 예제 [ch10/coloreq]

01    #include "opencv2/opencv.hpp"
02    #include <iostream>
03     
04    using namespace cv;
05    using namespace std;
06     
07    int main(void)
08    {
09        Mat src = imread("pepper.bmp", IMREAD_COLOR);
10     
11        if (src.empty()) {
12            cerr << "Image load failed!" << endl;
13            return -1;
14        }
15     
16        Mat src_ycrcb;
17        cvtColor(src, src_ycrcb, COLOR_BGR2YCrCb);
18     
19        vector<Mat> ycrcb_planes;
20        split(src_ycrcb, ycrcb_planes);
21     
22        equalizeHist(ycrcb_planes[0], ycrcb_planes[0]); // Y channel
23     
24        Mat dst_ycrcb;
25        merge(ycrcb_planes, dst_ycrcb);
26     
27        Mat dst;
28        cvtColor(dst_ycrcb, dst, COLOR_YCrCb2BGR);
29     
30        imshow("src", src);
31        imshow("dst", dst);
32     
33        waitKey(0);
34        return 0;
35    }

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.