[R] Asking Favor For the Script of Median Filter

chuan_zl chuan_zl at hotmail.com
Sun Mar 27 16:56:11 CEST 2011


Hello,everybody. My name is Chuan Zun Liang. I come from Malaysia. I am just
a beginner for R. Kindly to ask favor about median filter. The problem I
facing as below:


> x<-matrix(sample(1:30,25),5,5)
> x
     [,1] [,2] [,3] [,4] [,5]
[1,]    7    8   30   29   13
[2,]    4    6   12    5    9
[3,]   25    3   22   14   24
[4,]    2   15   26   23   19
[5,]   28   18   10   11   20

This is example original matrices of an image. I want apply with median
filter with window size 3X# to remove salt and pepper noise in my matric.
Here are the script I attend to writing.The script and output shown as
below:

> MedFilter<-function(mat,sz)
+ {out<-matrix(0,nrow(mat),ncol(mat))
+  for(p in 1:(nrow(mat)-(sz-1)))
+ {for(q in 1:(ncol(mat)-(sz-1)))
+ {outrow<-median(as.vector(mat[p:(p+(sz-1)),q:(q+(sz-1))]))
+ out[(p+p+(sz-1))/2,(q+q+(sz-1))/2]<-outrow}}
+ out}

> MedFilter(x,3)
     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    0    0
[2,]    0    8   12   14    0
[3,]    0   12   14   19    0
[4,]    0   18   15   20    0
[5,]    0    0    0    0    0

Example to getting value 8 and 12 as below:

 7  8 30                         8 30 29
 4  6 12 (median=8)         6 12   5 (median=12)
25 3 22                         3 22 14

Even the script can give output. However, it is too slow. My image size is
364*364. It is time consumption. Is it get other ways to improving it?

Best Wishes
Chuan

--
View this message in context: http://r.789695.n4.nabble.com/Asking-Favor-For-the-Script-of-Median-Filter-tp3409462p3409462.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list