1. 히스토그램 평활화
히스토그램 평활화란?
- 영상의 밝기를 조절하여 명암비를 바꾸는 것
- 밝기값만 equalziation을 진행해야 색변질을 피할 수 있다.
잘못된 예시
int main() {
Mat src = imread("lenna.bmp");
vector<Mat> bgr;
split(src, bgr);
equalizeHist(bgr[0], bgr[0]);
equalizeHist(bgr[1], bgr[1]);
equalizeHist(bgr[2], bgr[2]);
Mat dst;
merge(bgr, dst);
imshow("src", src);
imshow("dst", dst);
}
수정된 예시
int main() {
Mat src = imread("lenna.bmp");
Mat src_ycrcb;
cvtColor(src, src_ycrcb, COLOR_BGR2YCrCb);
vector<Mat> planes;
split(src_ycrcb, planes);
equalizeHist(planes[0], planes[0]);
Mat dst_ycrcb;
Mat dst;
merge(planes, dst_ycrcb);
cvtColor(dst_ycrcb, dst, COLOR_YCrCb2BGR);
imshow("src", src);
imshow("dst", dst);
waitKey();
}
- 명암비만 바꾸려고 했지만 BGR 각각의 색상에 영향을 미쳐 전체적인 색감이 변함.
결과영상