수정할 점이 있다면 알려주시면 감사하겠습니다.
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 |