2013-05-26 2 views
1

우리는 Apache Hadoop에서 이미지 처리를 수행 할 프로젝트를 진행하고 있습니다. 이미지를 작은 부분 (이미지가 매우 큼)으로 분할하고 각 부분의 푸리에 도메인에 필터를 적용한 다음 모든 부분을 병합하기 전에 공간 도메인으로 다시 변환하여 계산 속도를 높이고 싶습니다. 우리는 (마스크 크기에 따라) 이웃으로부터의 픽셀로 각 부분을 패딩함으로써 공간 영역에서 필터링하는 방법을 안다. 필터링이 주파수 도메인에서 수행되는 경우에도 적용됩니까?푸리에 도메인의 병렬 이미지 필터링

수학적으로, 우리는 더 낮은 주파수의 일부를 잃을 것이라고 생각하지만, 모든 영역을 독립적으로 흐리게하는 대신 이미지를 흐리게하는 것이 그렇게 많이 다르지는 않습니까?

답변

1

예, 동일한 원칙이 적용됩니다. 프로세스는 : ​​

  1. 는 (필터 길이와 동일한 각 방향에서 오버랩 량 - 1) 중첩 타일로 이미지를 분해.
  2. 각 타일의 제로 패드 (circular convolution을 피하기 위해).
  3. 각 타일의 FFT를 가져옵니다.
  4. 결과에 필터의 FFT를 곱하십시오.
  5. 역 FFT.
  6. 오버랩 영역에서 합계를 확인하면서 결과를 다시 스티칭합니다.
1

나는 당신이 생각하기에 (불가능하지는 않지만) 분할하여 이미지를 단편적으로 필터링하는 것이 더 어렵다고 생각합니다. 드문 방식은 아니지만 - 타일의 교차점을 처리해야하기 때문에 분할 된 이미지.

질문에 말했듯이, 대부분의 공간 필터 (즉, 일부 커널과의 컨볼 루션을 기반으로 한 필터)는 커널이 이미지의 "외부"와 겹치는 이미지 가장자리에서 발견 적 접근 방식을 채택합니다 경계. 알 수없는 픽셀 값은 무시되거나, 0으로 가정되거나, 이미지에서 반사되어 되돌아 올 수 있습니다.이 경우 효과는 의 이미지 타일 사이의 분할에서 실제로 "누락"픽셀을 갖습니다. 필터를 적용 할 때 각 타일이 이웃 픽셀을 포함 할 수 있도록 타일이 서로 겹치지 않도록함으로써이를 극복 할 수 있습니다. Fourier 도메인에도 똑같이 적용됩니다. 또한 타일을 유지하려는 모든 주파수를 포함 할 수있을만큼 큰 타일인지 확인해야합니다.

두 번째 포인트 - 당신은 을 흐리게하기위한 "수학적으로, 나는 우리가 낮은 주파수의 일부를 잃을 것이라고 생각"이라고 -하지만 실제로는 낮은 주파수를 유지하고,에, 즉 높은 주파수를 잃을 푸리에 도메인 블러 링은 저역 통과 필터입니다.

충분히 작은 타일로 분할하는 경우 대부분의 필터링 작업이 공간 영역에 머무르는 것이 더 빠를 것입니다. FFT의 비용은 멀티 스레딩에서 얻을 수있는 절약 효과를 없애줍니다. 물론, 데코 볼 루션과 같은 일부 푸리에 필터링의 경우 전체 이미지를 사용해야합니다.