Advertisement
Guest User

Untitled

a guest
Jun 3rd, 2010
392
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. subroutine dilation(x,y,n,m)
  2.   implicit none
  3.   integer :: i,j,n,m
  4.   integer x(n,m)
  5.   integer y(n,m)
  6. !f2py intent(out) y
  7. !f2py intent(in) x
  8.  
  9.   y=x
  10.   do j=2,m-1
  11.     do i=2,n-1
  12.       y(i,j)=maxval(x(i-1:i+1,j-1:j+1))
  13.     end do
  14.   end do
  15. end subroutine dilation
  16.  
  17. subroutine erosion(x,y,n,m)
  18.   implicit none
  19.   integer :: i,j,n,m
  20.   integer x(n,m)
  21.   integer y(n,m)
  22. !f2py intent(out) y
  23. !f2py intent(in) x
  24.  
  25.   y=x
  26.   do j=2,m-1
  27.     do i=2,n-1
  28.       y(i,j)=minval(x(i-1:i+1,j-1:j+1))
  29.     end do
  30.   end do
  31. end subroutine erosion
  32.  
  33. subroutine sort(a,n) !GnomeSort
  34.   implicit none
  35.   integer :: n,i,temp
  36.   integer :: a(n)
  37.  
  38.   i=1
  39.   temp=1
  40.  
  41.   do while (i<n)
  42.     if (a(i)>a(i+1)) then
  43.       temp=a(i)
  44.       a(i)=a(i+1)
  45.       a(i+1)=temp
  46.       if (i>1) then
  47.         i=i-1
  48.       else
  49.         i=i+1
  50.       end if
  51.     else
  52.       i=i+1
  53.     end if
  54.   end do
  55.  
  56. end subroutine sort
  57.  
  58. subroutine median(x,y,m,n) ! 3x3 Medianfilter
  59.   implicit none
  60.   integer :: i,j,n,m
  61.   integer x(n,m)
  62.   integer y(n,m)
  63.   integer z(9)
  64.   logical mask(3,3)
  65.   mask=.true.
  66.  
  67. !f2py intent(out) y
  68. !f2py intent(in) x
  69.  
  70.   y=x
  71.   do j=2,m-1
  72.     do i=2,n-1
  73.       z=pack(x(i-1:i+1,j-1:j+1),mask)
  74.       call sort(z,9)
  75.       y(i,j)=z(5)
  76.     end do
  77.   end do
  78.  
  79. end subroutine median
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement