//排序 paixu
procedure paixu(var temp : array of Byte);
var
i,j : Integer;
t : Byte;
begin
for i := low(temp) to high(temp) do
for j := i to high(temp) do
if temp[i]<temp[j] then
begin
t := temp[i];
temp[i] := temp[j];
temp[j] := t;
end;
end;
//灰度图像的腐蚀 3x3
procedure fushi(b : TBitmap);
var
b_read : TBitmap;
x, y : Integer;
wdata , rdata : TBitmapData ;
p: PByteArray;
p1 , p2 , p3 : PByteArray;
temp : array [0..8] of Byte;
begin
b_read := TBitmap.Create;
b_read.Assign(b);
//一个用来修改 w一个用来读取 r
if b.Map( TMapAccess.Write,wdata) and b_read.Map( TMapAccess.Read,rdata) then
begin
for y := 1 to rdata.Height - 2 do
begin
p := wdata.GetScanline(y);
p1 := rdata.GetScanline(y-1);
p2 := rdata.GetScanline(y);
p3 := rdata.GetScanline(y+1);
for x := 1 to rdata.Width - 2 do
begin
temp[0] := p1[x*4-4];
temp[1] := p1[x*4];
temp[2] := p1[x*4+4];
temp[3] := p2[x*4-4];
temp[4] := p2[x*4];
temp[5] := p2[x*4+4];
temp[6] := p3[x*4-4];
temp[7] := p3[x*4];
temp[8] := p3[x*4+4];
//排序 mao
paixu(temp);
//赋值 f
p[x*4] := temp[8];
p[x*4+1] := p[x*4];
p[x*4+2] := p[x*4];
//不透明 b
p[x*4+3] := 255;
end;
end;
b.Unmap(wdata);
b_read.Unmap(rdata);
end;
b_read.Destroy;
end;
//灰度图像的膨胀 3x3
procedure pengzhang(b : TBitmap);
var
b_read : TBitmap;
x, y : Integer;
wdata , rdata : TBitmapData ;
p: PByteArray;
p1 , p2 , p3 : PByteArray;
temp : array [0..8] of Byte;
begin
b_read := TBitmap.Create;
b_read.Assign(b);
//一个用来修改 w一个用来读取 r
if b.Map( TMapAccess.Write,wdata) and b_read.Map( TMapAccess.Read,rdata) then
begin
for y := 1 to rdata.Height - 2 do
begin
p := wdata.GetScanline(y);
p1 := rdata.GetScanline(y-1);
p2 := rdata.GetScanline(y);
p3 := rdata.GetScanline(y+1);
for x := 1 to rdata.Width - 2 do
begin
temp[0] := p1[x*4-4];
temp[1] := p1[x*4];
temp[2] := p1[x*4+4];
temp[3] := p2[x*4-4];
temp[4] := p2[x*4];
temp[5] := p2[x*4+4];
temp[6] := p3[x*4-4];
temp[7] := p3[x*4];
temp[8] := p3[x*4+4];
//排序 mao
paixu(temp);
//赋值 f
p[x*4] := temp[0];
p[x*4+1] := p[x*4];
p[x*4+2] := p[x*4];
//不透明 b
p[x*4+3] := 255;
end;
end;
b.Unmap(wdata);
b_read.Unmap(rdata);
end;
b_read.Destroy;
end;
delphi FMX图像简单的腐蚀和膨胀
最新推荐文章于 2020-10-09 15:36:22 发布