Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- subroutine dilation(x,y,n,m)
- implicit none
- integer :: i,j,n,m
- integer x(n,m)
- integer y(n,m)
- !f2py intent(out) y
- !f2py intent(in) x
- y=x
- do j=2,m-1
- do i=2,n-1
- y(i,j)=maxval(x(i-1:i+1,j-1:j+1))
- end do
- end do
- end subroutine dilation
- subroutine erosion(x,y,n,m)
- implicit none
- integer :: i,j,n,m
- integer x(n,m)
- integer y(n,m)
- !f2py intent(out) y
- !f2py intent(in) x
- y=x
- do j=2,m-1
- do i=2,n-1
- y(i,j)=minval(x(i-1:i+1,j-1:j+1))
- end do
- end do
- end subroutine erosion
- subroutine sort(a,n) !GnomeSort
- implicit none
- integer :: n,i,temp
- integer :: a(n)
- i=1
- temp=1
- do while (i<n)
- if (a(i)>a(i+1)) then
- temp=a(i)
- a(i)=a(i+1)
- a(i+1)=temp
- if (i>1) then
- i=i-1
- else
- i=i+1
- end if
- else
- i=i+1
- end if
- end do
- end subroutine sort
- subroutine median(x,y,m,n) ! 3x3 Medianfilter
- implicit none
- integer :: i,j,n,m
- integer x(n,m)
- integer y(n,m)
- integer z(9)
- logical mask(3,3)
- mask=.true.
- !f2py intent(out) y
- !f2py intent(in) x
- y=x
- do j=2,m-1
- do i=2,n-1
- z=pack(x(i-1:i+1,j-1:j+1),mask)
- call sort(z,9)
- y(i,j)=z(5)
- end do
- end do
- end subroutine median
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement