공부2019. 10. 16. 00:59

https://blog.naver.com/ledzefflin/220503000189 참고했습니다.

 

OpenCV 강의 07-03 Histogram Equalization of Grayscale or Color Image(번역본)

Histogram Equalization of Grayscale or Color Image Histogram 히스토그램은 이미지의 강도 분포이...

blog.naver.com

https://myoa-engineering.com/techlog/archives/481 참고했습니다.

 

[OpenCV] Image Histogram Equalization (Color) – 2 - Myoa Engineering Techlog

  [OpenCV] Image Histogram Equalization (B&W) – 1 바로 이전 글에서 쓰다 만 느낌으로 B&W 영상의 Histogram Equalization을 수행하였다. 그렇다면 Color 영상은 어떤 이유로 바로 적용할 수 없는 것인지 생각할 필요가 있다.   Color Channel 더보기…

myoa-engineering.com

https://webnautes.tistory.com/1043 참고했습니다.

 

영상처리 강좌 2 - 히스토그램 평활화( Histogram Equalization )

히스토그램 평활화는 히스토그램을 이용하여 이미지의 명암 대비를 개선시키는 방법입니다. 그레이스케일 영상의 경우 픽셀이 가질 수 있는 값의 범위는 0 ~ 255 사이의 값입니다. 이미지 상에서 픽셀값이 0인 갯..

webnautes.tistory.com

 

opencv 라이브러리를 사용하여 Histogram equlization을 구현했습니다.

히스토그램 평활화는 화소값의 분포를 나타내는 히스토그램을 균일하게 되도록 변환하는 처리입니다.

히스토그램 평활화를 사용하면 이미지의 픽셀값이 골고루 분산되어 이미지의 명암대비가 좋아지게 됩니다.

 

방법은 1. 영상의 누적 히스토그램을 구한 뒤 2. 그 값을 0.0과 1.0 사이로 정규화 하고서 3. 이것을 테이블로 이용하여 화소값을 변환합니다.

 

해당 코드는 흑백 이미지에만 적용되는 코드입니다. 컬러 이미지같은 경우는 R G B 의 히스토그램 분포가 다르기 때문에 각각의 채널에 평활화를 진행하면 원하지 않는 사진이 나오게 됩니다. 따라서 HSV 나 YCbCr 로 이미지 형태를 바꿔서 색의 비율을 건들이지 않고 휘도나 명도 채널에 대해서 히스토그램 평활화를 진행하면 됩니다.

 

픽셀을 히스토그램으로 만드는 과정은 버킷 정렬 알고리즘과 유사합니다.

 

코드 입니다.

결과 사진입니다.

좀 더 이미지의 명암대비가 뚜렷해진것을 알 수 있습니다.

Posted by richcherry