Histogram Stretching은
- 이미지의 contrast(명암대비) 를 개선하기 위해 : Image Enhancement
- 히스토그램을 확장(=stretching)하는 기법임.
이 기법은
- 이미지의 밝기값(=intensity)이 전체 범위에 걸쳐 고르게 분포되지 않고, 특정 범위에 집중된 경우(low contrast)에 적용됨.
- 이를 통해 이미지의 밝기 범위를 넓혀 contrast(명암대비)를 강화하고, 보다 선명한 이미지를 얻을 수 있음.
이상적인 contrast의 이미지는
- histogram이 균일하게 분포함.← High contrast
- pixel의 intensity (혹은 density)가 histogram의 전 범위에 균일하게 분포.
관련 gist
https://gist.github.com/dsaint31x/678fc3c3d2d633a80056d71366209469
dip_histogram_stratching.ipynb의 사본
dip_histogram_stratching.ipynb의 사본. GitHub Gist: instantly share code, notes, and snippets.
gist.github.com
1. 원리
Histogram Stretching은
- 이미지의 최소 밝기 값과 최대 밝기 값을 기준으로
- 히스토그램을 재조정하는 방식임.
즉, 이미지의 현재 밝기 값이 전체 범위(예: 0~255)에 걸쳐 있지 않으면, 그 범위를 늘려 모든 밝기 값이 최대한 넓은 영역에 걸쳐 분포되도록 조정함.
이를 통해 더 큰 명암 대비를 가지는 이미지로 변환됨.
기본 원리는 다음과 같음:
- 이미지에서 가장 어두운 픽셀 값 $I_{\text{min}}$과 가장 밝은 픽셀 값 $I_{\text{max}}$을 찾음.
- 각 픽셀 값 $I(x,y)$에 대해 아래 공식을 사용하여 새로운 픽셀 값 $I' (x, y)$를 계산함:
$$I'(x, y) = \frac{I(x, y) - I_{\text{min}}}{I_{\text{max}} - I_{\text{min}}} \times (I_{\text{new_max}} - I_{\text{new_min}}) + I_{\text{new_min}}$$
where:
- $I_{\text{new_min}}$은 새로운 최소 밝기 값 (보통 0),
- $I_{\text{new_max}}$은 새로운 최대 밝기 값 (보통 255)임.
일종의 min-max normalization임.
2. 효과
Histogram Stretching은 이미지의 밝기 범위를 전체적으로 넓히기 때문에, 어두운 부분과 밝은 부분 간의 대비가 증가함.
이로 인해 이미지의 디테일이 더 뚜렷하게 보이게 됨. 특히, 전체적으로 어둡거나 밝은 이미지를 조정할 때 효과적임.
3. 적용 사례
Histogram Stretching은 다음과 같은 상황에서 주로 사용됨:
- 저대비 이미지: 이미지의 히스토그램이 특정 영역에 집중되어 있어 전체적으로 어둡거나 밝은 경우.
- 의료 영상: MRI, X-ray 등에서 이미지의 세부 사항을 더 잘 볼 수 있도록 대비를 조정할 때.
- 위성 영상: 대규모 지역의 명암 대비를 조정하여 중요한 지형적 특징을 더 잘 식별할 수 있게 할 때.
4. 장점과 한계
- 장점:
- 이 기법은 매우 간단하고 빠르며,
- 전체적인 이미지 명암 대비를 개선하는 데 효과적임.
- 한계:
- Histogram Stretching은 단순히 밝기 값의 범위를 확장하는 기법이기 때문에,
- 이미지의 히스토그램이 전반적으로 왜곡되거나 잡음이 증폭될 수 있음.
- 이로 인해 일부 세부 정보가 손실되거나, 원치 않는 아티팩트가 발생할 수 있음.
- 같은 간격으로 확장하기 때문에 향상의 한계가 존재함.
5. 결론
Histogram Stretching은
- 이미지의 밝기 범위를 확장하여 contrast(명암대비)를 개선하는 매우 유용한 기법임.
- 특히 저대비(low contrast) 이미지를 처리하는 데 효과적이며,
- 이미지의 시각적 품질을 향상(Image Enhancement)시키는 데 도움을 줌.
- 다만, 잡음이 있는 이미지에서는 주의가 필요함.
같이보면 좋은 자료들
https://dsaint31.me/mkdocs_site/DIP/cv2/ch02/dip_histogram/
BME228
Histogram Histogram은 image의 intensity (or pixel이 가지는 값)들의 분포를 보여줌. chart로 표현하기도 하지만 image에 대한 feature에 해당하는 내부적 데이터로 사용하기도함. image에서 histogram으로 변환은 비
dsaint31.me
https://dsaint31.tistory.com/837
[DIP] (Global) Histogram Equalization
Histogram Equalization에 대한 설명히스토그램 평활화(Histogram Equalization)는 이미지의 contrast(명암대비)를 개선하기 위한 기법 중 하나임: Image Enhancement일반적으로 이미지의 히스토그램이 특정 영역에
dsaint31.tistory.com
https://dsaint31.tistory.com/836
[DIP] Contrast Limited Adaptive Histogram Equalization (CLAHE)
Global Histogram Equalization의 단점.Illumination이 불균일한 경우, 이미지에서 특정 부분은 밝고 특정 부분은 어두움.이 경우, Global Processing 기반의 Histogram Equalization은 효과가 좋지 못함. 아래 그림에서
dsaint31.tistory.com
'Programming > DIP' 카테고리의 다른 글
[CV] 공간해상도 관련 단위: SD, HD, MP, VGA 등등 (2) | 2024.10.09 |
---|---|
[CV] Median Sensor Resolution in Consumer Cameras (0) | 2024.10.09 |
[DIP] (Global) Histogram Equalization (0) | 2024.10.07 |
[DIP] Contrast Limited Adaptive Histogram Equalization (CLAHE) (0) | 2024.10.07 |
[DIP] Histogram Matching: Image Enhancement (1) | 2024.10.07 |