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

錯誤訊息是什麼意思?

答題得分者是:CA
susamlin2001
一般會員


發表:15
回覆:7
積分:4
註冊:2010-06-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-11-16 23:16:45 IP:125.224.xxx.xxx 訂閱

[code c#]
IplImage* src = cvLoadImage( "2.jpg", 0 );
IplImage* dst;
IplImage* color_dst;
CvMemStorage* storage = cvCreateMemStorage(0);
CvSeq* lines = 0;
int i;

dst = cvCreateImage( cvGetSize(src), 8, 1 );
color_dst = cvCreateImage( cvGetSize(src), 8, 3 );

cvCanny( src, dst, 50, 200, 3 );
cvCvtColor( dst, color_dst, CV_GRAY2BGR );
#if 0
lines = cvHoughLines2( dst, storage, CV_HOUGH_STANDARD, 1, CV_PI/180, 100, 0, 0 );

for( i = 0; i < MIN(lines->total,100); i )
{
float* line = (float*)cvGetSeqElem(lines,i);
float rho = line[0];
float theta = line[1];
CvPoint pt1, pt2;
double a = cos(theta), b = sin(theta);
double x0 = a*rho, y0 = b*rho;
pt1.x = cvRound(x0 1000*(-b));
pt1.y = cvRound(y0 1000*(a));
pt2.x = cvRound(x0 - 1000*(-b));
pt2.y = cvRound(y0 - 1000*(a));
cvLine( color_dst, pt1, pt2, CV_RGB(255,0,0), 3, CV_AA, 0 );
}
#else
lines = cvHoughLines2( dst, storage, CV_HOUGH_PROBABILISTIC, 1, CV_PI/180, 50, 50, 10 );
for( i = 0; i < lines->total; i )
{
CvPoint* line = (CvPoint*)cvGetSeqElem(lines,i);
cvLine( color_dst, line[0], line[1], CV_RGB(255,0,0), 3, CV_AA, 0 );
}
#endif
cvNamedWindow( "Source", 1 );
cvShowImage( "Source", src );

cvNamedWindow( "Hough", 1 );
cvShowImage( "Hough", color_dst );

cvWaitKey(0);
}

[/code]

產生faulted with message:'access violation at 0x40009729: write of address 0x00030c50'
這個錯誤訊息~是指什麼意思??有需要改什麼地方嗎?
麻煩各位大大指導一下~謝謝!!

李國維
高階會員


發表:42
回覆:287
積分:235
註冊:2003-02-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-11-17 10:04:38 IP:59.120.xxx.xxx 訂閱
是哪一行發生這個錯誤訊息?
susamlin2001
一般會員


發表:15
回覆:7
積分:4
註冊:2010-06-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-11-21 03:04:54 IP:125.224.xxx.xxx 訂閱
沒寫哪一行錯~
是直接跳出視窗opencv gui error handler~內容寫bad argument(array should be cvmat or ipilimage)in function cvgetsize,c:\user\vp\opencv\cxcore\src\cxarray.cpp(1453)~在這個視窗有中止和重試還有略過三個選項~我按中止之後,就會出現題目所說的錯誤....
===================引 用 李國維 文 章===================
是哪一行發生這個錯誤訊息?
CA
一般會員


發表:1
回覆:10
積分:22
註冊:2007-04-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-12-06 01:37:24 IP:122.116.xxx.xxx 未訂閱
它不能呼叫 cvGetSize , 這是 C++Builder 的問題 , 到了 2010 也沒解決 


它在呼叫該函式前會多 push 一個參數上去, 導致函式內部取參數的時候, 取到該值而非 IplImage*
看起來好像是呼叫慣例的問題, 不過我無法確定, 可以確定的是在反組譯除錯視窗下觀察
確實多傳一個參數在 ebp 4 的位置, 如果跳過該指令, 程式可以正常執行
編輯記錄
CA 重新編輯於 2010-12-05 10:38:41, 註解 無‧
系統時間:2017-12-13 13:37:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!