반응형

위와 같이 2x2 픽셀 영상의 크기를 3x3 으로 증가시켰을 경우를 생각해보자.

(0, 0) 픽셀은 그대로 (0, 0) 에,  (0, 1) 픽셀은 (0, 2) 픽셀에 대응되는 것을 확인할 수 있다.

 

하지만 확대영상의 (0, 1) 픽셀과 (1, 0) 픽셀, (1, 1) 픽셀 등에는 대응되는 원 영상의 픽셀값이

존재하지 않는다는 것을 볼 수 있는데 이렇게 영상을 확대하는 경우 홀이 발생하여 영상의

품질은 나빠지게 된다.  따라서 보간법을 이용하여 적절한 데이터값을 할당하여 주어야 한다.

 

 

1. 최근접 이웃 보간법 (CV_INTER_NN)

 

  최근접 이웃 보간법은 가장 간단한 보간법으로 목적 영상에서 픽셀값은 원 영상의 가장 가까운 픽셀의

  픽셀값으로 할당하는 방법이다.  즉 확대영상의 홀 부분에 근처 할당된 픽셀값을 넣어주는 것이다.

 

  역방향 사상에 의해 원 영상을 확대하여 영상을 얻는 경우 목적 영상의 픽셀에 해당되는 원 영상의

  픽셀좌표는 다음의 식을 통해 얻어진다. 

 

   

 

  여기서 Xsrc 와 Ysrc 는 원 영상의 x와 y 좌표이고  Xdst 와 Ydst  는 목적 영상의 x와 y좌표이다.

 

  최근접 이웃 보간법을 이용하여 영상을 확대하는 경우 우둘투둘한 계단 모양이 생기게 되는데

  이런 현상을 에일리어싱(aliasing) 이라 한다.

 

 

 

2. 양선형 보간법 (CV_INTER_LINEAR)

 

  가장 보편적으로 사용되는 보간법으로 원 영상을 확대하는 경우 목적 영상의 각 픽셀에 대해

  원 영상의 좌표가 실수값을 갖는 경우 주위에 있는 4개의 픽셀값을 가지고 보간한다.

 

  즉 주위의 4 지점에 대하여 떨어진 거리를 고려하여 x축으로 보간하고 y축으로 다시한번 보간하는

  방식이다.

 

  위의 그림과 같이 A, B, C, D 점의 픽셀값으로 고려하여 G위치의 픽셀값을 양선형 보간법을 사용하여 구해보자.

 

  우선 x축 방향으로 동일 선상에 위치하는 E점과 F점을 만들어준다.

 

  그럼

         E = (1-α)A + αB

         F = (1-α)C + αD

 

  가 된다.

 

  이번에는 y축 방향으로 E점와 F점의 위치를 고려하여

 

 

  이렇게 나타내어 줄 수 있고

 

      G = (1- β)E + βF 로 표시할 수 있다.

 

 

 

3. 큐빅 보간법 (CV_INTER_CUBIC)

 

  원 영상을 확대하는 경우 목적 영상의 각 픽셀에 대해 원 영상의 좌표가 실수 값을 갖는 경우

  주위에 있는 16개의 픽셀값을 가지고 보간한다.

  

  즉 위의 양선형 보간법의 경우 4개의 픽셀값을 고려하여 보간하였다면 큐빅 보간법은 16개의 픽셀값을

  고려하여 보간하는 방식이다.

 

  주황색 지점의 픽셀을 구하기 위해 근처 검은색 사각형의 픽셀값들을 고려하는 방식이다.

 

  우선 검은색 픽셀값들을 고려하여 행 방향에 따라 보간을 하여 아래와 같은 붉은 사각형의 값을 구한다.

 

 

  그리고 붉은 구해진 붉은 사각형들을 이용하여 중앙에 위치한 주황색 원의 픽셀값을 구할 수 있다.

 

 

4. 재표본 추출법 (CV_INTER_AREA)

 

  원 영상을 축소하게 될 때 픽셀의 갯수는 감소하게 되어 어느 부분의 픽셀을 가져올 것인지

  선택해 주어야 하는데 예를들어 크기를 1/2 배 축소하는 경우 원 영상에서 홀수인 픽셀들을

  사용하여 목적영상을 만드는 방식이다.

  영상을 확대하는 경우는 최근접 이웃 보간법과 비슷하다.

 

 

반응형

'OpenCV > 기하학적 변환을 통한 영상처리' 카테고리의 다른 글

회전영상  (0) 2019.08.13
사상(Mapping)  (0) 2019.08.12

+ Recent posts