Пороговый фильтр выделения края
>    restart;t1:=time(): with(ImageTools):# Фильтр пороговый 0 - черный 1- белый

>    MPEI:=Read("C:\\MPEI.jpg"):

>    im:= RGBtoGray(MPEI):# Исходник

>    w:=Width(im); h:=Height(im);

>    #for i to h do im[i,5]:=1;im[i,w-5]:=1;od:#Рамка, просто так, для красоты

>    #for i to w do im[5,i]:=1;im[h-5,i]:=1;od:#Рамка

>    View(MPEI,im):

w := 200

h := 150

Initializing Java runtime environment.

>    im0:=Create(h,w):im2:=Create(h,w):im3:=Create(h,w):

>    #Контраст

>    H:=0.5:#Порог

>    for i to h do

>       for j to w do if im[i,j]<H then im[i,j]:=0 else im[i,j]:=1 fi;

>       od;#j

>    od;#i

>    View(im):

>    for i to h do# Сохраняем исходный образ

>     for j to w do im0[i,j]:=im[i,j];

>     od;

>    od;

>    #Цикл по горизонтали (выявляет слева и справа границы)

>    for i to h do

>    for j to w-1 do if im[i,j]=0 then

>      for j1 from j to w-1 while(im[i,j1]=0 and im[i,j1+1]=0) do if (j1<>j) then im[i,j1]:=1 fi; od;

>        fi;

>     od:

>    od: View(im,im0):

>    #Цикл по вертикали (выявляет границы сверху и снизу)

>    for j to w do

>    for i to h-1 do if im0[i,j]=0 then

>      for i1 from i to h-1 while(im0[i1,j]=0 and im0[i1+1,j]=0) do if (i1<>i) then im0[i1,j]:=1 fi; od;

>        fi;

>     od:

>    od:

>    #Складываем (накладываем) образы

>    for i to h do

>    for j to w do im3[i,j]:=im0[i,j]*im[i,j];

>    od;od;

>    View(im,im0,im3):Время=time()-t1;

Время = .640