2010-05-06 3 views
4

MATLAB에서 3 개의 피크가있는 노이즈가있는 데이터 세트가 있으며이 이미지에서 일부 이미지 처리를 수행하려고합니다. 봉우리는 밑면에서 약 5 ~ 9 픽셀 폭, 50 x 50 배열입니다. 어떻게 피크를 찾을 수 있습니까? MATLAB은 나에게 매우 새로운 것입니다. 저는 여기의이 array를 호출하자, 내 원래 이미지MATLAB을 사용하여 많은 노이즈가있는 데이터의 최대 값 찾기

... 지금까지 무엇을, 나는

J = fspecial('gaussian',[5 5], 1.5); 
C = imfilter(array, J) 
peaks = imregionalmax(C); 

을 시도하지만 난 그만 둘 그래서 피크 사이의 기준에 따라 약간의 잡음이 여전히 존재 정말로 최대의 소음 값 인 1 톤의 지역 최대 값. (I 필터의 크기와 함께 연주했는데, 그 도움이되지 않았다.) 나는 또한 임계 값 ... 작동하지만 그것을 할 수있는 좋은 방법은 확실히 아니다 시각적으로 결정되었다

peaks = imextendedmax(C,threshold); 

시도 그것은 분명 강력하지 않기 때문입니다.

그렇다면 이러한 봉우리는 어떻게 확고하게 찾을 수 있습니까?

답변

2

빠른 제안 : MATLAB medfilt2의 중간 필터 작업

시도, 그것은 가우스 필터보다 노이즈를 제거에서 더 효율적입니다. Gauss conovlution filter는 미세한 노이즈로 더 잘 작동하고 이미지를 더 많이 보존합니다.

다음으로 피크를 추출한 후에도 여전히 분류되지는 않으므로 각 피크를 분류하여 노이즈인지 피크인지를 결정해야합니다. 난 당신이 함수의 binary image 클래스를 조사하는 것이 좋습니다. 특히 bwconncomp을보십시오.

관련 문제