2011-06-13 11 views
7

MATLAB에서 3D 등가물 imfilter을 사용할 수 있습니까? 3D 히스토그램에 가우스 필터링을 적용하고 싶습니다. 나는 (3D) Gaussian 필터를 생성 한 다음, 히스토그램의 각 요소를 반복하고 해당 데이터 항목을 합산하여 직접 구현하려고했습니다.MATLAB의 3D 가우시안 필터

그러나 이미 저기에 뭔가가 있거나 더 복잡한 방법을 사용하면 느리고 비효율적 인 방법으로 직접 구현하고 싶지 않았습니다. 효율적인 방법으로 필터링을하기 위해이 문제를 해결하는 방법은 두 가지가 있습니다

+0

가우시안 필터를 분리 할 수 ​​있다고 가정하면 2D 필터와 1D 필터를 적용 할 수 있습니까? –

답변

5

:

(1) 세 1D 가우시안하여 데이터를 필터링 할 CONVN 세 번 사용은, 하나의 X-별 1 별 -1, 1-by-y-by-1, 1-by-1-z 중 하나입니다.

(2) 신호 처리 도구 상자가있는 경우 FFTFILT을 사용하여 역 공간에서 필터링을 수행하거나 파일 교환에 fft- 컨볼 루션 알고리즘 중 하나를 사용하십시오.

[(3) 나에게 이메일을 보내 당신에게 3D 가우스 필터링을 수행 내 fftFilterImage를 보내드립니다.]

4

있는 IMFilter는 3D 필터링을 이미 수만큼 데이터 매트릭스 당신이주는 필터로 그것은 3D입니다. the imfilter page을 참조하십시오.

1

이 작업은 새로운 (R2015a 기준) imgaussfilt3 기능으로 처리 할 수 ​​있습니다.

B = imgaussfilt3(A,sigma) 

name-value pair arguments의 숫자도 있습니다 : 다음과 같이

기본 구문은

  • 'FilterSize' : 가우시안 필터의 크기, 크기 2*ceil(2*sigma)+1의 큐브에 디폴트.
  • 'Padding' : 패딩 유형 ('replicate' (기본값) | 'circular' | 'symmetric').
  • 'FilterDomain' : 도메인 : 'frequency' 또는 'spatial' (기본 자동)에서 회선을 수행합니다.