Histogram Equalization(히스토그램 평활화) - preprocessing(전처리)

David8·2022년 9월 14일
0

컴퓨터비전

목록 보기
5/17

정의

  1. 히스토그램: 도수 분포도
  2. bin: 히스토그램 한 구간
    1. bin의 개수 적절하게 정해야함
    2. bin의 개수 많음 --> 대부분이 bin이 유사한 값 가짐
    3. bin 개수 적음 --> 영상의 특성 반영x

Histogram normalization(히스토그램 정규화)

  1. 각 구성요소를 총 픽셀 수로 나눔, 즉 각 bin에 해당하는 값을 전체 픽셀 값으로 나누어줌
    1. 모든 데이터의 단위를 0~1사이로 옮겨지게 해줌 --> 여러 데이터의 특성들이 평등한 위치에 놓임
    2. 영상 내에 특정한 값을 가진 픽셀이 존재할 확률 --> 히스토그램으로 표현

Histogram equalization

가장 오른쪽 사진이 히스토그램이 균일하게 분포되어 대비가 가장 높음

  1. 이미지의 대비(contrast)를 조정
    1. 대비: 개체를 구별할 수 있는 밝기 or 색상 차이
      1. 대비 클수록 -> 이미지 선명
  2. 과정
    1. 히스토그램 계산(cumulative historgram으로 수정)
    2. mapping function 찾음 --> 픽셀이 균일하게 분포되어 질 수 있는 함수
    3. input image 함수 적용
int main() {
  Mat image;
  Mat hist_equalized_image;
  
  image = imread("lena.png", 0);
  if (!image.data) exit(1); //Check image
  
  equalizeHist(image, hist_equalized_image); //histogram equalization
  imshow("Input Image", image);
  imshow("Hist Equalized Image", hist_equalized_image);
  
  waitKey(0);
  return 0; 
}
  1. 단점
    1. 특정 데이터 값이 지배적인 경우 이미지가 흐려짐

0개의 댓글