Программа 1
| > | # Фильтр Собеля |
| > | restart; |
| > | with(ImageTools): # Специальный пакет для работы с изображениями |
| > | with(LinearAlgebra):# Лин.алгебра |
| > | img0:= RGBtoGray(Read("C:\\MPEI.jpg")): |
| > | View(img0); |
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): |
| > | View(img0,img1): |
| > | Write("C:\\MSU2.jpg",img1); |