함수 > 이미지 처리 > 변환 영역 > 예제: 푸리에 변환 영역의 필터링
  
예제: 푸리에 변환 영역의 필터링
funconv, matconv, funcdeconvmatdeconv 함수를 사용하여 공간 주파수(푸리에 변환 영역)에서 함수(f) 또는 마스크(E)와 이미지를 곱하여 이미지를 컨볼루션하거나 디컨볼루션합니다. 주파수 영역에서 필터링하면 선택한 함수나 마스크에 따라 다양한 평활, 윤곽선 검출, 주기적 노이즈 감소 연산 등의 결과를 얻을 수 있습니다. 또한 이미지 영역에서 컨볼루션을 사용하는 방법보다 변환 영역에서 필터링하는 것이 수학적으로 더 효율적이며 필터를 정의하는 것도 더 간편합니다.
이 예제를 사용하는 것에 대한 자세한 내용은 이미지 처리 예제 정보를 참조하십시오.
funconv
이 함수를 사용하면 이미지 M을 공간 주파수의 함수로 필터링할 수 있습니다. M과 동일한 크기의 마스크 N을 구성하는 데 실가 함수 f가 사용됩니다. M은 푸리에 변환된 다음, 항별로 마스크가 곱해집니다.
마스크는 M의 왼쪽 위 코너로부터의 정규화된 거리를 나타내는 인수를 f로 전달하여 구성됩니다. 이 프로세스는 마스크의 중심까지 계속 진행되다가 중심에서 마스크를 대칭적인 4개의 조각으로 복제합니다. 이 프로세스가 사용되는 이유는 왼쪽 위 코너가 DC(주파수 0)이기 때문입니다.
1. 이미지 행렬 M을 정의하여 마스크 구성을 시작합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
2. 이미지 행렬의 중심을 나타내는 픽셀을 찾습니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
3. 이미지의 왼쪽 위 코너에서 이미지 중심까지의 거리를 나타내는 새 범위 변수를 생성합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
4. 정의된 범위 변수와 마스킹 함수를 사용하여 마스크의 왼쪽 위 사분면을 생성합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
(0, 0) 엔트리는 f(0)이고 (r, c) 엔트리는 f(1)입니다.
마스크는 인수(M의 왼쪽 위 코너로부터의 정규화된 거리)를 f로 전달하여 구성합니다. 이 프로세스는 마스크의 중심까지 계속 진행되다가 중심에서 마스크를 대칭적인 4개의 조각으로 복제합니다. 이 프로세스가 사용되는 이유는 왼쪽 위 코너가 DC(주파수 0)이기 때문입니다.
5. funconv를 사용하여 나머지 마스크 행렬을 구성합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
컨볼루션이 이미지 배율을 확장하는 경우 출력 행렬을 [0, 255] 범위로 확장할 수 있습니다.
funcdeconv
이 디컨볼루션 함수는 주파수 영역 이미지와 주파수 영역 함수를 사용하여 디컨볼루션을 수행합니다.
funcdeconv의 마지막 인수 e는 루틴을 실행하는 동안 모든 식의 분모에 추가되는 작은 항입니다. 시작 위치로 e에 0 값을 입력합니다. 0으로 나누기 오류 메시지가 나타나면 e에 작은 값을 입력합니다.
1. funcdeconv 함수를 호출합니다.
이 식을 복사하려면 클릭
2. DE를 계산하여 funcdeconv의 결과를 표시하고 원래 행렬과 비교합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
matconv
matconv 함수는 funconv와 동일한 주파수-영역 곱 및 변환을 수행하지만 함수 대신 마스크를 입력으로 사용합니다. 마스크는 원래 이미지와 같은 크기여야 합니다. 마스크의 왼쪽 위 사분면만 제공합니다.
1. 표본 이미지를 읽습니다.
이 식을 복사하려면 클릭
2. 이미지 행렬의 행 및 열 수를 계산합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
3. 마스크 차원을 정의합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
4. 마스크 C를 정의합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
* 
C에 다음과 같은 고역 통과 필터를 적용할 수 있습니다.
이 식을 복사하려면 클릭
5. matconvRC에 적용합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
R
C
W
(times.bmp)
(matrix_ii_jj.bmp)
(times_mat.bmp)
matdeconv
matdeconv를 사용하면 원래 이미지를 복구할 수 있습니다. 디컨볼루션에서 광도가 0인 요소로 나누기가 시도될 수 있으므로 이 문제를 해결하기 위해 모든 나누기의 분모에 e를 더합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
(matdeconv.bmp)
다른 필터 함수를 시험해 볼 수 있습니다. 마스크의 왼쪽 위 코너가 낮은 주파수에 해당하고 오른쪽 아래 코너가 높은 주파수에 해당한다는 것을 기억하십시오. 다른 이미지도 시험해 보십시오.