Main Content

공간 영역에서의 영상 필터링이란?

필터링은 영상을 수정하거나 향상시키기 위한 기법입니다. 예를 들어, 영상을 필터링하여 특정 특징을 강조하거나 다른 특징을 제거할 수 있습니다. 필터링으로 구현되는 영상 처리 연산에는 평활화, 선명화, 경계 향상이 포함됩니다.

필터링은 이웃 연산입니다. 이웃 연산에서는 출력 영상의 한 픽셀 값이 그에 대응하는 입력 픽셀의 이웃 픽셀들의 값에 모종의 알고리즘을 적용하여 결정됩니다. 픽셀의 이웃은 일부 픽셀 세트를 가리키며, 해당 픽셀과의 상대적 위치로 정의됩니다. (이웃 연산에 대한 일반적인 설명은 Neighborhood or Block Processing: An Overview 항목을 참조하십시오.) 선형 필터링이란 출력 픽셀의 값이 입력 픽셀의 이웃 픽셀들의 값의 선형 결합이 되는 필터링입니다.

컨벌루션

영상의 선형 필터링은 컨벌루션이라 불리는 연산을 통해 수행됩니다. 컨벌루션은 이웃 입력 픽셀들에 가중치를 적용한 합이 출력 픽셀이 되는 이웃 연산입니다. 가중치로 구성된 행렬을 컨벌루션 커널 또는 필터라고 합니다. 컨벌루션 커널은 180도 회전된 상관 커널입니다.

예를 들어, 영상이 다음과 같다고 가정하겠습니다.

A = [17  24   1   8  15
     23   5   7  14  16
      4   6  13  20  22
     10  12  19  21   3
     11  18  25   2   9]

상관 커널은 다음과 같다고 가정하겠습니다.

h = [8   1   6
     3   5   7
     4   9   2]

이 경우 위치 (2, 4)에서의 출력 픽셀을 계산하려면 다음 단계를 사용합니다.

  1. 상관 커널을 중앙 요소를 중심으로 180도 회전하여 컨벌루션 커널을 만듭니다.

  2. 컨벌루션 커널의 중앙 요소가 A의 (2, 4) 요소 위에 오도록 밉니다.

  3. 회전된 컨벌루션 커널의 각 가중치를 아래에 있는 A의 픽셀과 곱합니다.

  4. 3단계에서 계산한 각 곱의 합을 구합니다.

따라서 (2, 4) 출력 픽셀은 다음과 같습니다.

다음 그림에서 계산 결과를 볼 수 있습니다.

컨벌루션의 (2, 4) 출력값 계산하기

A grid of pixels displaying the pixel values. The 3-by-3 pixel neighborhood around the (2, 4) element is highlighted in gray, indicating the position of the convolution kernel. For pixels in the neighborhood, the grid also displays the weights of the convolution kernel, which is equal to the rotated matrix h.

상관

상관이라는 연산은 컨벌루션과 밀접한 관련이 있습니다. 상관에서도 출력 픽셀의 값은 이웃 픽셀들에 가중치를 적용한 합으로 계산됩니다. 차이점은 이 경우 가중치로 구성된 행렬(상관 커널)이 연산 중에 회전되지 않는다는 것입니다. Image Processing Toolbox™ 필터 설계 함수가 상관 커널을 반환합니다.

다음 그림은 h를 컨벌루션 커널이 아닌 상관 커널로 간주하고, 다음과 같은 단계를 사용하여 A의 상관의 (2, 4) 출력 픽셀을 계산하는 방법을 보여줍니다.

  1. 상관 커널의 중앙 요소가 A의 (2, 4) 요소 위에 오도록 밉니다.

  2. 상관 커널의 각 가중치를 아래에 있는 A의 픽셀과 곱합니다.

  3. 각 곱의 합을 구합니다.

상관의 (2, 4) 출력 픽셀은 다음과 같습니다.

상관의 (2, 4) 출력값 계산

A grid of pixels displaying the pixel values. The 3-by-3 pixel neighborhood around the (2, 4) element is highlighted in gray, indicating the position of the convolution kernel. For pixels in the neighborhood, the grid also displays the weights of the convolution kernel, which is equal to the matrix h defined above.

참고 항목

| |

관련 항목