영상의 명암비조절

전종원·2022년 10월 18일
0

1. 영상의 명암비 조절

명암비란?

  • 영상의 밝은 곳과 어두운 곳 사이에 드러나는 밝기 정도의 차이
  • contrast, 대비 라고도 한다.

간단한 명암비 조절 방법

  • src 영상에 특정 scale factor를 곱한다.

  • 밝기값이 0~128 구간에는 명암비가 높아졌지만 128~255에서는 saturate_cast로 인해 차이가 없어짐. -> 수정필요.

효과적인 명암비 조절 방법

  • 직선이 (128,128)이 지나도록 한다.
  • a값을 통한 기울기를 조절로 명암비 정도를 정한다.

실습코드

int main(int argc, char* argv[])
{
	Mat src;
	src = imread("lenna.bmp", IMREAD_GRAYSCALE);

	if (src.empty()) {
		cerr << "Image load failed!" << endl;
		return -1;
	}

	float alpha = 1.0f;
	Mat dst = src + (src - 128) * alpha;

	imshow("src", src);
	imshow("dst", dst);

	waitKey();
}

결과이미지

2. 평균밝기를 고려한 명암비 조절

  • 영상의 평균밝기 m을 구하여 위 수식에서의 직선이 (m,m)을 지나도록 한다.

실습코드

int main(int argc, char* argv[])
{
	Mat src;
	src = imread("lenna.bmp", IMREAD_GRAYSCALE);

	if (src.empty()) {
		cerr << "Image load failed!" << endl;
		return -1;
	}
	
    int m = mean(src)[0];
    
	float alpha = 1.0f;
    
    Mat dst1 = src + (src - 128) * alpha;
	Mat dst2 = src + (src - m) * alpha;

	imshow("src", src);
	imshow("dst1", dst1);
    imshow("dst2", dst2);


	waitKey();
}

결과이미지

0개의 댓글