請問co-occurrence 怎麼做呀? |
尚未結案
|
raiseofevil
一般會員 發表:13 回覆:1 積分:2 註冊:2006-12-09 發送簡訊給我 |
<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; |
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |