線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1497
推到 Plurk!
推到 Facebook!

請問co-occurrence 怎麼做呀?

尚未結案
raiseofevil
一般會員


發表:13
回覆:1
積分:2
註冊:2006-12-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-04-09 02:37:26 IP:134.208.xxx.xxx 訂閱
<input type="image" src="http://i12.photobucket.com/albums/a209/usegoodbt/lin.jpg" /><br />
如題,我現在要寫一個Line-likeness紋理分析的程式,公式如上圖,現在我卡住的地方是PDd(i,j)所代表的意思,而PDd(i,j)是代表co-occurrence裡面的值。

因此我寫了一個程式要計算line-likeness的值,但我的程式run到temp:=temp gry_level[i,j]; 這裡時,就會出現invalid float operation的視窗出現,請問我哪裡做錯了嗎?



procedure TForm1.Button2Click(Sender: TObject);
var
i,j,x,y:integer;
fin,temp:extended;
const
pi=3.141516;
begin
setlength(gry_level,256);
for i:=0 to 255 do
begin
setlength(gry_level[i],256);// co-occurrence矩陣
end;

for i:=0 to 255 do
begin
for j:=0 to 255 do
begin
for y:=0 to ph-2 do //-2 是避免掃到圖片外面
begin
for x:=0 to pw-2 do
begin
if picmap[y,x].B =picmap[y 1,x 1].B then
gry_level[i,j]:=gry_level[i,j] 1;
end; //灰階給值完畢

end;
end; //
end;

for i:=0 to 255 do
begin
for j:=0 to 255 do
begin
temp:=temp gry_level[i,j]; //
end;
end;


for i:=0 to 255 do
begin
for j:=0 to 255 do
begin
fin:=fin (gry_level[i,j]*cos((i-j)*2*pi/255))
end;
end;

fin:=fin / temp;
edit1.Text :=floattostr(fin);
end;
附加檔案:4619366696532_lin.JPG
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-04-10 01:22:31 IP:61.64.xxx.xxx 訂閱
setlength(gry_level[i],256);// co-occurrence矩陣 ????

你用 C 的方式再寫 Pascal 程式
很累喔@@

SetLength(gry_level,255,255); 這樣直接可以做出 255 x 255 的二元矩陣

不然除非你 gry_level 的大小不是方陣,才會用你的寫法,不然回圈,只是用來,「浪費時間」

另外 gry_level 應該是宣告成 array of array of xxx ,不知你的是否是

最後
invalid float operation 表示,你進行了不適合的運算

你的 gry_level 宣告為何?
system72
中階會員


發表:15
回覆:114
積分:55
註冊:2005-08-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-04-11 15:29:14 IP:219.80.xxx.xxx 訂閱

你的 fin 跟 temp 沒有初始值,這會有問題歐.

所以要加入

fin:=0;
temp:=0;

這兩行要加在使用之前.
系統時間:2024-05-16 13:35:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!