delphi FMX使用模糊集合進行邊緣提取

2021-08-13 13:29:58 字數 2252 閱讀 6441

//模糊集合的邊緣提取

procedure mohulvbo(b : tbitmap);

var b_read : tbitmap;

x, y , i : integer;

//0 黑 白 三個輸入隸屬度函式

ze , bl, wh : array [0..255] of single;

wdata , rdata: tbitmapdata ;

p0,p,p1,pw: pbytearray;

n : array [0..4] of single;

begin

b_read := tbitmap.create;

b_read.assign(b);

//初始化三個輸入隸屬度函式

for i := 0 to 255 do

begin

if i<64 then

begin

ze[i] := (63-i)/63;

bl[i] := (192-i)/192;

wh[i] := 0;

endelse if i<192 then

begin

ze[i] := 0;

bl[i] := (192-i)/192;

wh[i] := (i-63)/192;

endelse

begin

ze[i] := 0;

bl[i] := 0;

wh[i] := (i-63)/192;

end;

end;

// 不考慮最外一層畫素 遍歷影象賦值 4鄰域和中心點

if b.map( tmapaccess.readwrite, wdata)and b_read.map( tmapaccess.read,rdata) then

begin

//3x3的小視窗 3x3

for y := 1 to rdata.height - 2 do

begin

p0:= rdata.getscanline(y-1);

p := rdata.getscanline(y);

p1:= rdata.getscanline(y+1);

pw := wdata.getscanline(y);

//3x3

for x := 1 to rdata.width - 2 do

begin

//中心點及其 4領域 top right bottom left

//n[0] := p[x*4];

n[1] := ze[abs(p0[x*4]-p[x*4])];

n[2] := ze[abs(p[x*4+4]-p[x*4])];

n[3] := ze[abs(p1[x*4]-p[x*4])];

n[4] := ze[abs(p[x*4-4]-p[x*4])];

//計算 and 並集 = min

n[0] := min(n[1],n[2]) ;

n[1] := min(n[4],n[1]) ;

n[2] := min(n[2],n[3]) ;

n[3] := min(n[3],n[4]) ;

// 計算 else = 1- max(1,2,3,4)

n[4] := 1-max(max(n[0],n[1]),max(n[2],n[3]));

//最後計算聚合模糊集合的重心 給中心畫素賦值

pw[x*4] := round(

(n[0]*(n[0]*192+63) +

n[1]*(n[1]*192+63) +

n[2]*(n[2]*192+63) +

n[3]*(n[3]*192+63) +

n[4]*(192-n[4]*192)) / (n[0]+n[1]+n[2]+n[3]+n[4])

);pw[x*4+1] := pw[x*4];

pw[x*4+2] := pw[x*4];

end;

end;

b.unmap(wdata);

b_read.unmap(rdata);

end;

b_read.free;

end;

結果 :

原理 :

模糊數學 模糊集合

運用數學知識,如何用集合表示大於1且小於5的實數。這可以說是非常簡單的 a 但是這五個人的成績有各不相同,優秀成績有一定的程度,張三,李四,王五的成績可以說是非常優秀,而小紅的成績算是一般優秀,小王可以說是中等優秀。我們把優秀程度稱之為優秀集合的隸屬度。隸屬度取值範圍為 0,1 其隸屬度越靠近1的則...

機器學習 一型模糊集和二型模糊集

模糊集 一型模糊 在經典的集合理論中,乙個元素要麼屬於要麼不屬於這個集合。相比之下,模糊集則通過隸屬度函式來評價乙個元素對於乙個集合的隸屬程度。因此,模糊集是對經典集合的一般化。在模糊集理論中,經典的二價集 bivalent sets 被稱作crisp sets。模糊集通常先要劃分論域u,再定義乙個...

運用模糊集理論和比例原則模擬小車剎車

模糊理論 高斯型隸屬函式 模糊集這些之前的文章已經說明過了。已知小車速度和離危險距離,使用高斯型隸屬函式求得模糊集合,進行乘法運算,運用比例原則進而推導出小車應設的阻力。這是目前要解決的問題。假設一輛行駛速度為v公尺 秒的汽車前方d公尺有乙個障礙物,設阻力為速度的程度和距離的程度的聯合,設計並求出該...