본문 바로가기
혤로그 이전의 기록/프로젝트 일지

[MATLAB/영상처리] 양자화와 디더링 (Dithering)

by hyelllllog 2020. 10. 1.

양자화 

: 영상의 밝기값을 표현하기 위해 사용하는 밝기 값의 수 ( 밝기를 몇 단계로 쪼갤 것인가? )

-> 보통 256개 !! 상황에 따라 256개 보다 적은 수의 밝기값으로 양자화할 필요가 있음

(굳이 고 해상도 디스플레이가 필요하지 않은 경우)


- 균일 양자화 

  : 밝기값의 범위를 균등하게 나눔

세종대학교 서재규교수님 수업 자료

 

 1. floor (소수점 버림) 함수 사용 

    f = uint8 ( floor( double(x) / (256/N) ) * (256/N)) --> ※연산할 때, 꼭 double 형으로 변환※

 

 2. grayslice(x,N) 함수 사용

   : 0 ~ N의 밝기 값을 갖는 uint8 형 산출 --> ※디스플레이를 할 경우, gray(N) 컬러맵 사용※

 

!! 거짓 윤곽이 생길 수 있음 !!

디더링(Dithering)

:제한된 컬러 수만 표한할 경우, 최대한 거짓 윤곽을 해결하기 위한 패턴 처리

 영역의 밝기에 따라 흑과 백의 비율을 조절


처리 과정 

세종대학교 서재규교수님 수업자료

1. 디더링 매트릭스 만들기

2. 디더링 매트릭스를 이어붙여서 원래 영상과 같은 크기로 만듦

3. 원래 영상의 밝기 값과 비교하여 halftoning 수행 

 

ex> 2개 이상의 출력을 갖는 경우

엉...저기 84/3 = 28 ...  8빠졌따...
디더링 명령어

--> 균일 양자화 영상 보다 디더링된 영상의 품질이 우수함