정수배의 확대
- 가장 간단한 방법
- 정해진 배율만큼 화소를 반복적으로 복사
- 화질이 좋지 않음
정수배의 역수만큼 축소
- 정해진 배율만큼 건너뛰면서 화소 선택
- 예를 들어 2분의 1로 축소하는 경우 모든 짝수번째 행과 짝수번째 열의 모든 픽셀을 출력 영상에 복사
- 영상의 세밀한 정보 (특히 문서의 경우)가 소실될 수 있다
사상 (Mapping)
주어진 조건에 따라 한 좌표가 다른 좌표로 대응
전방향 매핑 (Forward Mapping)
- 입력 영상의 좌표값을 출력 영상의 좌표값으로 변환
- 홀과 오버랩 문제가 발생 가능
- **홀** : 출력영상으로 매핑되는 입력화소가 없는 경우
- **오버랩** : 두 입력화소가 같은 출력화소에 매핑되는 경우
- 위의 그림의 경우 아래 두 화소는 정상적으로 하나씩 매핑이 되었으나
출력영상의 첫째 픽셀에 두개의 화소가 매핑되어 오버랩이 발생하고
두번째 픽셀에는 아무 픽셀도 매핑되지 않아 홀이 발생한 모습
전방향 매핑의 문제점
- 크기가 5인 1차원 배열 소스를 1.4배 확대한다고 가정한다면..
destination (pixel) index = source index * 1.4
인데…- 인덱스값은 정수가 되어야 하므로 반올림해줘야 한다.
- 즉 소스가 0, 1, 2, 3, 4 일 경우 destination은 0, 1, 3, 4, 6이 되는데 이러면 2, 5가 빠져버리는 홀이 발생하게 된다.
- 그래서
source index = destination index / 1.4
이렇게 역으로 취해줘서 (역방향 매핑) 각 destination 픽셀에 맞는 정수 인덱스에 대응하는 소스 픽셀값을 가져오면 된다.
- 크기가 7인 1차원 배열 소스를 1.4배 축소한다고 하면…
destination index = source index / 1.4
소스={0,1,2,3,4}
일 경우{0,1,1,2,3}
으로 중복으로 매핑되어버리는 오버랩이 발생.- 해결책은 역시
source index = destination index * 1.4
로 역방향 매핑해주어 destination index를 하나하나 차근차근 대입하여 소스 픽셀값을 가져오는 것
역방향 매핑 (Reverse Mapping) - 확대
- 출력 영상의 좌표값을 입력 영상의 좌표값으로 변환
- 출력영상의 픽셀 좌표들을 줄이면 그게 매핑되야할 입력 영상의 좌표들이다.
역방향 매핑 (Reverse Mapping) - 축소
- 역시 출력영상을 늘리면 그게 매핑되어야 할 입력 영상의 좌표들이 된다.
보간법
- 영상의 크기가 너무 작아서 확대해야 하거나 크기가 너무 커서 적당한 크기로 축소해야 하는 경우 등에서 영상을 보간해야 할 필요가 있을 수 있다
- 영상의 화질이 좋기 위해서는 처리량(수행시간)이 늘어나야 함
최근접 이웃 보간법
- 생성된 주소에 가장 가까운 화소를 출력 화소로 결정
- 위의 예에서는 (실수값으로 온) T가 A에 제일 가까우므로 A로 결정
- 처리속도가 빠름
- 화질이 좋지못함
양선형 보간법
- 생성된 주소에 가장 가까운 네 화소들의 가중 합으로 출력 화소 결정
- 각 가중치는 각 화소로부터의 거리에 반비례
- 형광칠한 부분이 그거 의미. 위 그림 보면서 이해하면 매우 쉬움.
- 최근접 이웃 보간법보다 화질 좋으나, 더 많은 계산 소요