|
Пороговый фильтр выделения края
| > |
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:#Рамка
|
w := 200
h := 150
Initializing Java runtime environment.
| > |
im0:=Create(h,w):im2:=Create(h,w):im3:=Create(h,w):
|
| > |
for j to w do if im[i,j]<H then im[i,j]:=0 else im[i,j]:=1 fi;
|
| > |
for i to h do# Сохраняем исходный образ
|
| > |
for j to w do im0[i,j]:=im[i,j];
|
| > |
#Цикл по горизонтали (выявляет слева и справа границы)
|
| > |
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;
|
| > |
#Цикл по вертикали (выявляет границы сверху и снизу)
|
| > |
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;
|
| > |
#Складываем (накладываем) образы
|
| > |
for j to w do im3[i,j]:=im0[i,j]*im[i,j];
|
| > |
View(im,im0,im3):Время=time()-t1;
|
Время = .640
|