Программа 1. Фильтр Собеля c. 51
> | restart;t1:=time():with(ImageTools):# Фильтр Собеля |
> | with(LinearAlgebra): |
> | MPEI:=Read("C:\\MPEI.jpg"):# можно и так: "C:/MPEI.jpg" |
> | img0:= RGBtoGray(MPEI): |
> | View(MPEI); |
Initializing Java runtime environment.
> | Фильтр:=proc(z,im) |
> | local IMG,s,G1,G2,i,j,A,X,Y,w,h: |
> | global img; |
> | w:=Width(im): h:=Height(im): |
> | img:=Create(h,w): |
> | IMG:=convert(im,Matrix): |
> | s:=[z/2,z,z/2]: |
> | G1:=Matrix([s,[0,0,0],-s]); |
> | G2:=Transpose(G1): |
> | for i from 2 to h-1 do |
> | for j from 2 to w-1 do |
> | A:=SubMatrix(IMG,[i-1,i,i+1],[j-1,j,j+1]): |
> | X:=add(add(A[k,m]*G1[k,m],k=1..3),m=1..3); |
> | Y:=add(add(A[k,m]*G2[k,m],k=1..3),m=1..3); |
> | img[i,j]:=sqrt(X^2+Y^2): |
> | od: |
> | od: |
> | img: |
> | end proc: |
> | Фильтр(1,img0):img1:=1-img: View(img0,img1): time()-t1; |
9.848
> | View(img0,img1): |
> | Write("C:\\MPEI2.jpg",img1); |
10929