https://blog.naver.com/ledzefflin/220503000189 참고했습니다.
https://myoa-engineering.com/techlog/archives/481 참고했습니다.
https://webnautes.tistory.com/1043 참고했습니다.
opencv 라이브러리를 사용하여 Histogram equlization을 구현했습니다.
히스토그램 평활화는 화소값의 분포를 나타내는 히스토그램을 균일하게 되도록 변환하는 처리입니다.
히스토그램 평활화를 사용하면 이미지의 픽셀값이 골고루 분산되어 이미지의 명암대비가 좋아지게 됩니다.
방법은 1. 영상의 누적 히스토그램을 구한 뒤 2. 그 값을 0.0과 1.0 사이로 정규화 하고서 3. 이것을 테이블로 이용하여 화소값을 변환합니다.
해당 코드는 흑백 이미지에만 적용되는 코드입니다. 컬러 이미지같은 경우는 R G B 의 히스토그램 분포가 다르기 때문에 각각의 채널에 평활화를 진행하면 원하지 않는 사진이 나오게 됩니다. 따라서 HSV 나 YCbCr 로 이미지 형태를 바꿔서 색의 비율을 건들이지 않고 휘도나 명도 채널에 대해서 히스토그램 평활화를 진행하면 됩니다.
픽셀을 히스토그램으로 만드는 과정은 버킷 정렬 알고리즘과 유사합니다.
코드 입니다.
결과 사진입니다.
좀 더 이미지의 명암대비가 뚜렷해진것을 알 수 있습니다.
'공부' 카테고리의 다른 글
영상처리 opencv 단풍 물들이기 (2) | 2019.11.27 |
---|---|
영상처리 opencv hit-or-miss (2) | 2019.11.27 |
영상처리 opencv resize함수 Bilinear interpolation (0) | 2019.09.27 |
셀레니움 - 구글 번역기 사용하기 (0) | 2019.03.22 |
텐서플로우 사용한 2개의 층을 가진 CNN 입니다. (0) | 2019.01.15 |