이 글은 영상처리 강의를 들은 내용을 정리하려는 목적으로 쓰여진 글이기 때문에 정확하지 않을 수 있습니다.

수정할 점이 있다면 알려주시면 감사하겠습니다.

 

Image display : 눈으로 무언가를 인지 -> 뇌속에서 프로세싱

 

Image quality

1. 공간 해상도(spatial resolution) : pixel이 많을 수록 선명하고 디바이스, 사람마다 보이는 것이 다름 - 똑같은 그림을 몇 pixel로 보느냐에 따라 다르게 보임

 

2. 양자화(Quantization) : 촘촘하게 할 수록 선명하게 보임

 

imshow를 사용한 영상 출력

 

만약 data type이 double이라면

uint8타입의 사진을 double형으로 바꾼 후 display를 해보면 모두 하얀색으로 나오게 됨

 

 

이유 : double형은 0~1사이에서만 표현하지만 uint8은 0~255의 정수로 표현하기 때문에 0보다 큰 숫자들은 모두 1로 표현되기 때문

 

uint8형인 c를 제대로 보기 위해서는 imshow(cd/255); 해주면 됨

512로 나누거나 128로 나누게 되면 좀 더 어둡고 밝은 이미지로 나타남

 

im2double(c)라는 함수를 사용해도 됨 -> 반대로 im2uint함수도 존재

 

Bit Planes : 0~255의 8bit로 표현되는 이미지를 128로 나누거나 64, 32 등 으로 나누어 1bit, 2bit, 3bit로 표현

0또는 1의 black and white, 2bit의 4가지 색, 3bit -> 8가지로 점점 많아짐

LSB와 MSB : LSB는 가장 최하위 비트를 MSB는 가장 최상위 비트를 의미

LSB쪽의 수가 변하더라도 그림에는 별 차이가 느껴지지 않지만 MSB의 수가 변하면 많은 차이가 느껴짐

 

※ floor, mode : floor는 버림 연산, mod는 나머지 값만 출력

 

128로 나눈게 잘 보임

 

Quantization : Dithering

imresize : 크기를 늘리거나 줄임 -> 공간 해상도 변화

imresize(x, 1/2); -> 1/2배로 down sampling

imresize(x, 2); -> 2배로 up sampling

-> 화면의 크기는 동일하기 때문에 변화가 눈에 띄게 잘 보임

-> 줄일 때 어떤 픽셀을 선택하고 어떤 픽셀을 지울것인지 늘릴때는 어떤 필셀을 복사할 것인지 선택하는 알고리즘도 중요

4 - level

 

 

 

Halftoning : random matrix기반 구현

랜덤한 Threshold Matrix를 정해서 이미지 파일과 비교하여 Tone > Th 면 1을 출력, 반대면 0을 출력함

 

Dithering : 위 Halftoning에서 사용된 랜덤한 Threshold 대신에 정해진 공식의 dither matrix를 사용

 

 

ex) D1은 8bit 이미지에서 k=1, 2^(8-2) = 64이므로

 

D2는 D1에 위 공식을 계산하여 더함

 

 

디더링 매트릭스의 사용

Uniform matrix로 만든 후 dithering해줌

 

4-level로 나누려면 4-1의 3등분을 해줌 -> 85로 나눔

이 후 위 사진처럼 P(i,j)는 양자화 한 값에 다시 85를 곱한 값을 원래 사진값에서 빼고 뺀 값이 dithering matrix보다 크면 1, 작으면 0을 해준 후 이 값을 다시 양자화 한 값에 더해줌

-> 여기서 3등분 한 이유가 나오는데 1을 더하는 경우가 생기기 때문 - 결국 4-level로 표현됨

 

 

 

 

'영상처리' 카테고리의 다른 글

[9월27일]chapter4 - POINT PROCESSING 2  (0) 2018.09.29
[9월20일]chapter4 - POINT PROCESSING 1  (0) 2018.09.25
[9월11일]chapter2 - Images File and File Types  (0) 2018.09.25
[9월11일]Introduction-2  (0) 2018.09.14
[9월6일]Introduction-1  (0) 2018.09.08

+ Recent posts