컬러영상처리

전종원·2022년 11월 2일
0

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]); //밝기성분(y)만 조절
	
    Mat dst_ycrcb;
    Mat dst;
    
    merge(planes, dst_ycrcb);
    cvtColor(dst_ycrcb, dst, COLOR_YCrCb2BGR);
    
    imshow("src", src);
    imshow("dst", dst);
    waitKey();
}

  • 명암비만 바꾸려고 했지만 BGR 각각의 색상에 영향을 미쳐 전체적인 색감이 변함.

결과영상

0개의 댓글