Y-YY+Round(H2));.Canvas.LineTo(X-X4,Y-YY+1);;znah(bmpin,bmpout:Tbitmap;colshkr:boolarr);g:array [1 .. 1000,1 .. 1000] of boolean;,j,k,n,r,l,p,q,t,e,w,h,pn,x,y,a,b:integer;,sy,sw:longint;,gg,bb:byte;,u02,u20,teta,imin,imax:real;:TColor;,py:array [1 .. 30000] of integer; i:=1 to bmpin.Height doj:=1 to bmpin.Width do g [i, j]:=false; i:=1 to bmpin.Height doj:=1 to bmpin . Width do ((colshkr [i, j]) and (not (g [i, j]))) then:=1; [1]:=j; [1]:=i; [i, j]: =true;:=j; r:=j;:=r +1; ((colshkr [i, r]) and (not (g [i, r])) and (r <= bmpin.Width)) do :=pn +1; [pn]:=r; [pn]:=i; [i, r]:=true;:=r +1;;:=r - 1;:=i +1;:= 0; w:=0; p:=l to r do ((colshkr [t, p]) and (not (g [t, p]))) then:=pn +1; [pn]:=p; [pn]:=t; [t, p]:=true; ((colshkr [t, p]) and (e=0)) then e:=p; ((colshkr [t, p]) and (e < ;> 0)) then w:=p;;:=e; r:=w; l=r then break;:=l - 1; ((colshkr [t, p]) and (not (g [t , p])) and (p>=1)) do:=pn +1; [pn]:=p; [pn]:=t; [t, p]:=true;:=p - 1;; :=p +1;:=r +1; ((colshkr [t, p]) and (not (g [t, p])) and (p <= bmpin.Width)) do:=pn +1; [pn]:=p; [pn]:=t; [t, p]:=true;:=p +1;;:=p - 1;:=t +1; ((r=l) or ( t> bmpin.Height));:=0; sy:=0; sw:=0; k:=1 to pn do:=bmpin.Canvas.Pixels[px[k],py[k]];:=GetRValue(col);:=GetGValue(col);:=GetBValue(col);:=round(0.3*rr+0.59*gg+0.11*bb);:=sw+rr;:=sx+px[k]*rr;:=sy+py[k]*rr;;:=round(sx/sw);:=round(sy/sw);:=0; u20:=0; u02:=0; k:=1 to pn do:=bmpin.Canvas.Pixels[px[k],py[k]];:=GetRValue(col);:=GetGValue(col);:=GetBValue(col);:=round(0.3*rr+0.59*gg+0.11*bb);:=u1+(px[k]-x)*(py[k]-y)*rr;:=u02+sqr(px[k]-x)*rr;:=u20+sqr(py[k]-y)*rr;;u20=u02 then teta:=arctan (0) teta:=arctan (2 * u1 / (u20-u02)) / 2;:=0; imax:=0; k:=1 to pn do:=imax+sqrt(abs((px[k]-x)*sin(teta)-(py[k]-y)*cos(teta)));:=imin+sqrt(abs((px[k]-x)*cos(teta)-(py[k]-y)*sin(teta)));;imin=0 then u02:=0 else u02:=power (imax, 3) / imin; imax=0 then u20:=0 else u20:=power(imin,3)/imax;:=round(power((4/pi),1/4)*power(u02,1/8));:=round(power((4/pi),1/4)*power(u20,1/8));(a<4*b) and (a> 3 * b) then ellipse (x, y, a, b, teta);;; min (r: byte; g: byte; b: byte): byte;:=r; b result then result:=b; g> result then result: =g;; TForm1.Button1Click (Sender: TObject); openpicturedialog1.Execute then.Picture.LoadFromFile(openpicturedialog1.filename);:=TBitmap.Create;.assign(image1.Picture.Graphic);.AutoSize :=True;. AutoSize:=false;:=Image1.Height / h;:=Image1.Width / w; (HH> WW) then.Height:=trunc (Image1.Height / HH);. Width:= trunc (Image1.Width / HH);. Stretch:=True;. Height:=trunc (Image1.Height / WW);. Width:=trunc (Image1.Width / WW);. Stretch:=True;;;; TForm1.Button2Click (Sender: TObject); r, g, b: byte;, gg, t, s, p: real;: Tcolor;, j, k, l, m: integer;: boolarr;: array [1. .9] of byte;, h2, h3, h4, x: real;: TBitmap;:=TBitmap.Create;. Assign (bmpin);:=TBitmap.Create;. Assign (bmpin); i:=1 to bmpout . Width doj:=1 to bmpout.Height do:=bmpout.Canvas.Pixels [i, j];:=GetRValue (color);:=GetGValue (color);:=GetBValue (color); ((r> 95 ) and (g> 40) and (b> 20) and (r> g) and (r> b) and (abs (rg)> 15) and ((max (r, g, b)-min (r , g, b))> 15)) or ((r> 220) and (g> 120) and (b> 170) and (abs (rg) <= 15) and (r> b) and (g> ; b)) then [i, j]:=true else colshkr [i, j]:=false; ((r> 0) or (b> 0) or (g> 0)) then:=r;:= g;:=r; p:=p + g; p:=p + b;:=rr / p - 1/3;:=gg / p - 1/3; gg=0 then t:=0; gg> ; 0 then t:=(arctan (rr / gg)) / (2 * pi) +1 / 4; gg <0 then t:=(arctan (rr / gg)) / (2 * p...