2010-05-05 6 views
11

노이즈가 많은 이미지가있는 m x n 개의 요소 배열에 대해 Gaussian smoothing을 수행하려고합니다. MATLAB에서 어떻게 할 수 있습니까?MATLAB에서 가우시안 평활화

저는 수학을 읽으면서 어느 정도 규모의 커널을 사용하여 모든 것을 다듬을 수 있었지만, MATLAB에서 어떻게하는지 잘 모릅니다.

+0

문제가 해결되었다고 생각되면 꼭 대답해야합니다 (확실한 경우 인 것 같습니다). 이를 수행하려면 답 옆에있는 체크 표시를 클릭하십시오. 커뮤니티에 오신 것을 환영합니다 :) –

답변

27

이미지 처리 도구 상자가 있어야합니다. 그렇다면, 당신은 너무 같은 fspecial function와 가우시안 필터를 만들 수 있습니다 경우 : 여기 수평 크기 ([3 세])와 시그마 (0.5)에 대한 기본값을 사용했다

myfilter = fspecial('gaussian',[3 3], 0.5); 

,하지만 당신은 연주 할 수 있습니다 그들과 함께. hsize는 필터의 크기이며,이 경우 3x3 행렬입니다. 시그마는 가우스 함수의 시그마입니다 (fspecial 함수 페이지의 하단 참조).

지금 당신은 당신의 이미지를 필터링 할 imfilter을 사용할 수 있습니다 : 나는 단순히 unfilteredimage, 필터, 필터가 경계를 처리하는 방법을 말한다 매개 변수에 전달했다

여기
myfilteredimage = imfilter(unfilteredimage, myfilter, 'replicate'); 

. 이 경우 배열의 경계 밖에서 입력 배열 값을 가장 가까운 배열 테두리 값으로 설정하는 replicate를 선택했지만 다른 값을 시도하거나 해당 옵션을 사용하지 않으면 이미지 값 외부에있는 모든 값을 0으로 설정할 수 있습니다.