더북(TheBook)

코드 5-9 히스토그램 스트레칭 [ch05/histogram]

01    void histgoram_stretching()
02    {
03        Mat src = imread("hawkes.bmp", IMREAD_GRAYSCALE);
04     
05        if (src.empty()) {
06            cerr << "Image load failed!" << endl;
07            return;
08        }
09     
10        double gmin, gmax;
11        minMaxLoc(src, &gmin, &gmax);
12     
13        Mat dst = (src - gmin) * 255 / (gmax - gmin);
14     
15        imshow("src", src);
16        imshow("srcHist", getGrayHistImage(calcGrayHist(src)));
17     
18        imshow("dst", dst);
19        imshow("dstHist", getGrayHistImage(calcGrayHist(dst)));
20     
21        waitKey();
22        destroyAllWindows();
23    }

 

3행 hawkes.bmp 파일을 그레이스케일 형식으로 불러와서 src에 저장합니다.

10~11행 입력 영상 src에서 그레이스케일 최솟값과 최댓값을 구하여 gmingmax에 저장합니다.

13행 히스토그램 스트레칭 수식을 그대로 적용하여 결과 영상 dst를 생성합니다.

15~19행 입력 영상과 히스토그램 스트레칭 결과 영상, 그리고 각각의 히스토그램을 화면에 출력합니다.

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