私はcvCanny関数を使用してエッジを検出しました。openCvのエッジ検出でランタイムエラーが発生する
cvCanny(img_b, out, lowThresh*N*N, highThresh*N*N, aperature_size);
ただし、実行時に実行時エラーが発生します。エラーmsgは一切クリアされません。これは、いくつかのメモリ位置を参照します。私を助けてください..!!
コード:
void switch_callback_h(int position){
highInt = position;
}
void switch_callback_l(int position){
lowInt = position;
}
int _tmain(int argc, _TCHAR* argv[])
{
const char* name = "Edge Detection Window";
// Kernel size
int N = 7;
CvCapture* capture = cvCaptureFromCAM(1);
IplImage* frame;
while(1) {
frame = cvQueryFrame(capture);
// Add convolution boarders
CvPoint offset = cvPoint((N-1)/2,(N-1)/2);
cvCopyMakeBorder(frame, img_b, offset, IPL_BORDER_REPLICATE, cvScalarAll(0));
// Make window
cvNamedWindow(name, 1);
// Edge Detection Variables
int aperature_size = N;
double lowThresh = 20;
double highThresh = 40;
// Create trackbars
cvCreateTrackbar("High", name, &high_switch_value, 4, switch_callback_h);
cvCreateTrackbar("Low", name, &low_switch_value, 4, switch_callback_l);
highThresh = 800;
lowThresh = 100;
cvCanny(img_b, out, lowThresh*N*N, highThresh*N*N, aperature_size);
cvShowImage(name, out);
cvReleaseImage(&frame);
cvReleaseImage(&img_b);
cvReleaseImage(&out);
cvDestroyWindow(name);
if(cvWaitKey(15) == 27)
break;
return 0;
}
実際のエラーメッセージを投稿してください - また、どのようなコンパイラ、OSなど? –
しきい値が非常に高いように見えます。 img_bとoutの形式は何ですか?例外がスローされたときにバックトレースを与えることができるようにgdbを実行してください! – ypnos
ソースコード全体へのリンクを試してください。これは論理的なエラーよりもデバッグのようなものです。あなたのコードを実行しようとしています。 – AruniRC