그림 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    }

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