全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1722
推到 Plurk!
推到 Facebook!

邊緣偵測

 
nibabakaho
一般會員


發表:13
回覆:6
積分:13
註冊:2006-08-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-02-21 09:26:08 IP:125.229.xxx.xxx 訂閱
<textarea class="cpp" rows="10" cols="60" name="code"> int a,b,sum1,sum2; int G_x[3][3]={{-1,0,1},{-2,0,2},{-1,0,1}}; int G_y[3][3]={{1,2,1},{0,0,0},{-1,-2,-1}}; Graphics::TBitmap *Bmp1= new Graphics::TBitmap(); Byte *ptr1; Bmp1=Image2->Picture->Bitmap; int **pic=new int*[Bmp1->Height]; for(j=0;jHeight;j ) { pic[j]=new int[Bmp1->Width]; } for(j=0;jHeight;j ) { ptr1=(Byte *)Bmp1->ScanLine[j]; for(i=0;iWidth;i ) { pic[j][i]=int(ptr1[i*3]); } } for(j=0;jHeight;j ) { for(i=0;iWidth;i ) { sum1=0; sum2=0; for(a=0;a<3;a ) { for(b=0;b<3;b ) { sum1=sum1 pic[j a][i b]*G_x[a][b]; sum2=sum2 pic[j a][i b]*G_y[a][b]; //這兩行有問題 都會出現 } } pic[j][i]=sqrt(abs(sum1*sum1 sum2*sum2)); } } for(j=0;jHeight;j ) { ptr1=(Byte *)Bmp1->ScanLine[j]; for(i=0;iWidth;i ) { ptr1[i*3]=ptr1[i*3 1]=ptr1[i*3 2]=pic[j][i]; } } Image3->Picture->Bitmap=Bmp1; </textarea><br /> 那兩行執行後會出現下面這幾行字
Project Project1.exe raised exception class EAccessViolation with message'Access violation at address 00401F8A
in module'Project.exe'. Read of address 0000033A'. Process stopped.Use Step or Run to continue
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-02-21 11:14:49 IP:61.225.xxx.xxx 訂閱
用 ScanLine 的時候,要注意你的”最大值”
通常出問題都在這個地方。
你單步去追它。看那個位址。還在不在
ScanLine 的範圍就知道自己錯在那邊了。
nibabakaho
一般會員


發表:13
回覆:6
積分:13
註冊:2006-08-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-02-22 12:30:37 IP:125.229.xxx.xxx 訂閱
感謝大大幫助
我果然是錯在那邊 ^^

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