코드 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에서 그레이스케일 최솟값과 최댓값을 구하여 gmin과 gmax에 저장합니다.
• 13행 히스토그램 스트레칭 수식을 그대로 적용하여 결과 영상 dst를 생성합니다.
• 15~19행 입력 영상과 히스토그램 스트레칭 결과 영상, 그리고 각각의 히스토그램을 화면에 출력합니다.