Ch 03. 기본적인 영상 처리 기법 - 04. 히스토그램 분석
Ch 03. 기본적인 영상 처리 기법 - 05. 영상의 명암비 조절
Ch 03. 기본적인 영상 처리 기법 - 06. 히스토그램 평활화
Ch 04. 필터링 - 01. 필터링 이해하기
오늘의 영상에서의 히스토그램이 어떻게 사용되는지 영상에서의 히스토그램 연산법으로
어떤 변화가 생기는 지에 대해 공부해 보았습니다.
>> 영상에서의 히스토그램
각각의 값에 해당하는 픽셀을 시각화 해서 표시해논 그래프
>> 정규화된 히스토그램
작은 크기의 영상과 큰 크기의 영상을 비교할 때 애매한 경우가 생김
이 히스토그램을 봤을 때 영상에서 어느 정도의 밝기로 구성이 되어있다는 것을 파악할 수 있다.
왼쪽에서부터 0으로 시작하여 가장 오른쪽의 값은 255이다. 그렇기 때문에 히스토그램이 왼쪽으로 뭉쳐있을 경우 어두운 영상이라고 볼 수 있고 반대로 오른쪽에 기운 히스토그램은 밝은 영상이라고 볼 수 있다.
그리고 히스토그램의 폭이 작을 경우 영상이 흐리거나 뿌옇다는 것을 알 수 있다.
>> 히스토그램 함수
cv2.calcHist(images, channels, mask, histSize, ranges, hist=None, accumulate=None)
channel: 히스토그램을 구할 채널을 나타내는 리스트 R값만 보고 싶은 경우 [0] 입력
mask: 특정 부위의 히스토그램을 구하고 싶은 경우 전체를 구하려면 None을 입력
명암비
밝은 곳과 어두운 곳 사이에 드러나는 발기 정도의 차이
컨트라스트, 대비
명암비를 적당히 올려서 조금 더 선명한 영상을 만들기도 한다.
명암비를 계산할 때는 주로 곱셈 연산을 사용함
히스토그램 스트레칭
영상의 히스토그램이 gray scale 전 구간에서 걸쳐 나타나도록 변경하는 선형 변환 기법
히스토그램을 양옆으로 쭉 늘린다고 생각하면 된다.
정규화 함수
cv2.normalize(src, dst, alpha=None, beta=None, norm_type=None, dtype=None, mask=None)
여기서 norm_type: NORM_MINMAX를 지정해주면 히스토그램 스트레칭이 일어난다.
히스토그램 평활화
히스토그램이 gray scale 전체 구간에서 균일한 분포로 나타나도록 변경하는 명암비 향상 기법
히스토그램 균등화, 균일화, 평탄화 라고도 불림
cv2.equalizeHist(src, dst=None)
히스토그램 스트레칭을 bin 사이를 균일하게 하여 펼치지만 평활화의 경우 픽셀 값의 빈도가 높은 수록 조금 더 넓게 펼친다.
컬러 영상에 적용법
각각 YCrCb로 나누어 평활화를 진행하고 다시 이것을 병합한다.
rgb로 할 경우 색이 바뀌는 경우가 생긴다.
>> 필터링
영상에서 필요한 정보만 통과시키고 원치 않는 정보는 걸러내는 작업
> 주파수 공간에서의 필터링
공간적 필터링 (주로 마스크 연산을 이용함)
마스크 연산:
1x3, 3x1, 3x3 등 다양한 형태의 행렬로 이루어진 마스크가 있지만 주로 3x3 행렬의 마스크를 사용한다.
마스크의 형태와 값에 따라 필터의 역할이 결정된다.
영상 부드럽게 만들기
영상 날카롭게 만들기
edge 검출하기
잡음 제거
강의 링크: bit.ly/2NTHHz7
'난 이 분야 전문가야! > OpenCV' 카테고리의 다른 글
컴퓨터비전인강 4주차 :: 영상의 변환 (2) | 2021.03.14 |
---|---|
컴퓨터비전인강 4주차 :: 영상에서 특정 색상 추출 (0) | 2021.03.12 |
컴퓨터비전인강 3주차 :: 영상에서의 산술과 다양한 색 공간 (0) | 2021.03.06 |
컴퓨터비전인강 2주차 :: 키보드, 마우스 이벤트 처리 및 트랙바 생성법 (0) | 2021.02.27 |
컴퓨터비전인강 2주차 :: openCV 웹캠, 비디오 재생 및 저장 (0) | 2021.02.24 |