이산 푸리에 변환의 중심 주파수 0


11

이산 푸리에 변환을 사용하여 블러 링 / 샤프닝을 구현하는 이미지 처리 응용 프로그램을 만들고 있습니다. 응용 프로그램이 다소 작동하지만 역학에 대한 내용이 여전히 혼란 스럽습니다.

특히, 제로 주파수를 중심으로하는 프로세스가 수행되는 방식입니다.

내가 본 예제는 입력 이미지와 입력 크기와 동일한 크기의 행렬을 곱하여 입력 이미지 (회색조 강도)를 전처리합니다. 여기서 값은 . 여기서 는 행이고 는 열, 따라서 패턴이 과 번갈아 가며(1)x+yxy11

참고 사항에 따르면 이것은 및 축을 뒤집어 매트릭스의 사분면을 바꾸는 것과 같습니다 .xy

왜 이것이 완료되었는지 이해하고 코드 / 푸리에 물건이 작동한다는 것을 이해하고 싶습니다. 입력 매트릭스에 1 / -1을 곱하는 것이 왜 제로 주파수 성분을 0으로 중심에 두는지를 이해하지 못합니다.

감사


또한 Gonzalez의 4 장, 4.6- 디지털 이미지 처리에서 구현 (제 2 판 있음)에서 일부 참조를 찾을 수 있습니다. 도움이 되길 바랍니다.
hakunami

답변:


18

오! 정말 멋진 트릭입니다! 컨볼 루션 정리 때문에 작동합니다 (즉, 공간 / 시간 도메인에서의 곱셈은 주파수 도메인에서의 컨볼 루션과 동일합니다).

및 축을 뒤집지 않고 푸리에 변환의 이미지를 회전시킵니다 (실린더의 반쯤 이동하는 것을 고려하십시오). 여기서 중요한 것은 공간 영역에서 교대 -1,1이 가장 높은 주파수의 신호라는 것입니다. 따라서 해당 이미지의 푸리에 변환은 주파수 영역에서 단일 지점입니다. 단일 포인트로 회전하는 것은 0 주파수에서 포인트의 오프셋만큼 이미지를 이동 (회전)하는 것과 같습니다.xy

테스트 이미지는 다음과 같습니다 테스트 이미지.. 푸리에 변환은 다음과 같습니다.테스트 이미지의 푸리에 변환

교체 이미지 ( 바둑판 이미지) 의 푸리에 변환을 수행하면 푸리에 변환의 중심에 단일 점이 생깁니다 여기에 이미지 설명을 입력하십시오. (우리는 아직 회전을 수행하지 않았으므로 푸리에 변환의 중심은 고주파수이고 저주파수는 여전히 구석에 있습니다.) 그러나 이것이 "회전 커널"입니다. 이 회전 커널을 사용하면 모든 것이 아래로 이동하고 오른쪽으로 이동하지만 오른쪽 아래에서 떨어지는 것은 왼쪽 상단으로 회전합니다.

(이미지 영역에서의) 회전 커널 원본 이미지를 컨볼 루션 당신을 제공합니다 복잡한 이미지, 푸리에 (주파수 영역에서) 회전 커널 이미지를 변환 컨볼 루션 동안을 제공합니다 회전 푸리에 변환.

그리고 이미지 영역의 바둑판에 테스트 이미지를 곱하면 다음과 곱셈 이미지같은 푸리에 변환이 제공 다시 회전 된 푸리에 변환됩니다.


혼란 스러워요. 이것은 convolution을 사용하여 fftshift비슷한 기능 을 구현하고 있습니까? 4 사분면을 직접 재배 열하는 것이 계산적으로 저렴하지 않습니까?
endolith

2
여기에는 직접적인 컨볼 루션이 없습니다. 이것은 푸리에 도메인에서 컨벌루션을 얻기 위해 이미지 도메인에서 픽셀 단위 곱셈을 사용합니다. 예, fftshift비싸지는 않지만이 트릭은 더 나은 캐시 동작을 가질 수 있습니다. 픽셀 단위 곱셈은 실제로 다른 모든 픽셀의 부호를 뒤집는 것입니다. 따라서 벡터화하기 쉬운 읽기-수정-쓰기의 쓰기는 보장 된 캐시 적중이며 프로세서가 읽기를 프리 페치하기가 쉽습니다.
방황 논리

아 맞다, 그것은 실제 곱셈이 아니라 부호 뒤집기이다.
endolith

테스트 이미지 (두 번째 이미지)의 푸리에 변환이 왜 그렇게 보입니까? 나는 실제로 두 개의 이미지, 하나는 다른 이미지를 봅니다.
hakunami 2011

10

방황 논리의 대답은 정확하고 상세합니다. 그림 대신 수학을 원한다고 생각했습니다.

는 1D의 경우를 살펴보면 의해 입력 승산된다 주파수 여기서 우연히 . 즉, 곱셈은 신호의 스펙트럼을 샘플링 주파수의 절반만큼 이동시킵니다.(1)k=ejωω2π(k/2)

그 결과 인덱스 0 이전의 0 빈도는 이제 이미지 너비 (열 또는 행을 곱하는지 여부에 따라 높이)의 절반이됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.