본문 바로가기
Computer Vision

영상의 밝기와 명암비 조절 - 3. 히스토그램 분석

by ksb0511 2020. 2. 21.

1. 히스토그램 구하기

  • 히스토그램이란? 영상의 픽셀 값 분포를 그래프 형태로 표현한 것.
  • 히스토그램 h와 정규화 히스토그램

  • ex) 그레이스케일, 해당하는 픽셀의 갯수 구한 뒤 막대 그래프 형태로 표현

히스토그램 구하기 예시

  • 가로축 0-7까지 총 8개가 의미하는 것은 히스토그램의 빈.
  • 결론적으로 위의 예시는 여덟 개의 빈으로 구성된 히스토그램을 생성한 것.
  • 그레이스케일의 경우 256개의 빈을 갖는 히스토그램이 일반적.
  • 히스토그램의 빈 갯수와 픽셀 값 범위가 항상 같아야 하는 것은 아님.

  • 경우에 따라 빈 갯수를 픽셀 값 범위보다 작게 설정 가능. ex) 위의 예시에선 8개의 빈을 나타냈으나 4개만 나타내도 가능함. 이럴 경우 대략적인 분포만을 내타낼 수 있으므로 형태가 세밀하진 않음.

// 영상의 히스토그램을 구하는 함수
void calcHist(const Mat* images, int nimages,
	const int* channels, InputArray mask,
	OutputArray hist, int dims, const int* histSize,
	const float** ranges, bool uniform = true, bool accumulate = false);

 

  • 한 장의 영상뿐 아닌 여러 장의 영상에서도 사용 가능.
  • images : 입력 영상 배열 혹은 주소를 의미. / nimages : 입력 영상 갯수
  • channels : 히스토그램을 구할 채널을 나타내는 정수형 배열
  • mask : 마스크 영상, 입력 영상과 크기가 같은 8비트 배열이어야 함.
  • uniform, accumulate 인자는 기본값을 가지고 있음.

댓글