3-4. 히스토그램 분석
히스토그램 (Histogram)
관심 영역에 어떠한 값이 얼마나 분포되어 있는지 확인 할 수 있는 막대 그래프
예) 그레이 스케일 영상의 0부터 255 각 픽셀 값이 영상 안에 얼마나 분포되어 있는 지를 막대 그래프의 형태로 표현
해당되는 픽셀 개수를 그대로 표현 할 수도 있지만 전체 값으로 나누어 확률로 나타낼 수도 있다. (Normalization)

히스토그램 구하기: cv2.calcHist(images, channels, mask, histSize, ranges, hist, accumulate) -> hist
images는 입력 영상 리스트
channels는 히스토크램을 구할 채널 리스트
mask는 마스크 영상으로 입력 영상의 부분적 히스토그램을 구할 때 사용하며 영상 전체를 사용할 경우 None으로 지정
histSize는 히스토그램 각 차원의 크기(빈(bin)의 개수)를 나타내는 리스트
ranges는 히스토그램 각 차원의 최소값과 최대값 리스트
hist는 numpy.ndarray 구조의 계산된 히스토그램, accumulate는 기존의 hist에 누적하고 싶은 경우 True
강의 자료에서는 그레이스케일과 컬러 영역의 lenna 영상을 히스토그램으로 분석하는 방식을 알려주셨다.

3-5. 영상의 명암비 조절
명암비(Contrast)
대비로도 불리며 밝은 곳과 어두운 곳 사이에 드러나는 밝기 정도의 차이
명암비가 낮을 경우 전체적인 색 톤이 흐릿해지는 느낌이 들며, 명암비가 높아지면 색의 밝기에 따라 극명한 대비를 보여준다.

명암비 조절하는데 있어 두 가지 방식을 고려할 수 있다.
1) 명암비 조절 함수: dst(x,y) = saturate(src(x,y) + (src(x,y) - 128) * alpha)
영상 합성 때는 덧셈 연산을 사용했다면 명암비는 변위차를 주는 offset과 곱셈 연산을 사용해서 기울기를 조절한다.
입력 영상에 따라 기준점이 되는 128을 조절해서 수식을 적용해야한다.
numpy의 clip 함수와 타입 변환 함수를 사용하여 구현할 수 있다.

2) 히스토그램 스트레칭 (Histogram stretching)
영상의 히스토그램이 그레이스케일 전 구간에서 걸쳐 나타나도록 변경하는 선형 변환 기법으로 정규화 함수를 사용한다.
정규화 함수: cv2.normalize(src, dst, alpha, beta, norm_type, dtype, mask) -> dst
src는 입력 영상, dst는 결과 영상
alpha는 normalized historgram일 경우 목표 normalization 값
원소 값 그대로 사용한 히스토그램일 경우 alpha가 최소값 beta가 최대값
norm_type은 정규화 타입 (NORM_INF, NORM_L1, NORM_L2, NORM_MINMAX)
dtype은 결과 영상의 타입, mask는 마스크 영상
변환 함수의 방정식의 경우 스트레칭 되는 최소/최대값 기준 선형 직선의 방적식으로 구하면 된다.


인증 타임
출장 와서 쉬는 타임에 수업을 빠르게 들으려다 하다 보니 오늘 배운 모든 개념에 대하여 완전히 이해하지는 못한 기분이 든다. 히스토그램도 옛날에 matlab으로 영상 분석의 방식의 하나로 구현하는 법을 배웠던거 같은데 python-openCV를 이용하여 구현하는 걸 보니 훨씬 편리한 느낌이다. 세상에 똑똑한 사람들은 많고 편리함을 제공해주어서 다행이다. 이번 챕터 실전 코딩이 크로마키 사진 편집인데 오늘 배운 개념들이 어떻게 빌드업이 되는건지 궁금해진다.


#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #OpenCV를 활용한 컴퓨터비전과 딥러닝 올인원 패키지 Online
패스트캠퍼스(FastCampus) 강의 둘러보러 가기
↓ ↓ ↓
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'남돈내배 > 2022_FastCampus_환급이벤트' 카테고리의 다른 글
| 패스트캠퍼스 챌린지 20일차 - Ch3. 기본적인 영상 처리 기법 (0) | 2022.02.12 |
|---|---|
| 패스트캠퍼스 챌린지 19일차 - Ch3. 기본적인 영상 처리 기법 (0) | 2022.02.11 |
| 패스트캠퍼스 챌린지 17일차 - Ch3. 기본적인 영상 처리 기법 (0) | 2022.02.09 |
| 패스트캠퍼스 챌린지 16일차 - Ch3. 기본적인 영상 처리 기법 (0) | 2022.02.08 |
| 패스트캠퍼스 챌린지 15일차 - Ch3. 기본적인 영상 처리 기법 (0) | 2022.02.07 |