opencv 이용시 변수를 일정 수 이상 할당하면 메모리 액세스 위반이 뜹니다.
글쓴이: visualplus / 작성시간: 목, 2010/01/28 - 9:10오후
안녕하세요.
opencv를 공부중인데 정말 이상한 현상이 나타납니다.
제가 공부중인것은 그저 캠에서 영상을 받아 몇가지 작업 후 보여주는 것 인데
변수를 일정 숫자 (10개도 안되는..) 할당하면 메모리 액세스 위반이라는 오류가 뜹니다.
잘 돌아가는 프로그램에 변수 선언 1개만 더하면 오류가 뜨고
그 변수를 지워주면 잘 동작합니다.
밑에는.. 그 오류나는 허접한 소스입니다.
void main()
{
IplImage* image = 0;
IplImage* gray = 0;
IplImage* labeled = 0; // 이 변수를 할당하면 에러나고
// 주석처리하면 에러가 안납니다.
CvCapture* capture = 0;
capture = cvCaptureFromCAM(0);
int inputKey;
if( capture )
{
cvNamedWindow( "T9-camera", 0 );
cvResizeWindow( "T9-camera", 320, 240 );
while(1)
{
if( !cvGrabFrame( capture ))
break;
image = cvRetrieveFrame( capture );
gray = cvCreateImage( cvSize(image->width, image->height), 8, 1);
cvCvtColor(image, gray, CV_BGR2GRAY);
cvThreshold(gray, gray, 0.0, 255.0, CV_THRESH_BINARY | CV_THRESH_OTSU);
cvThreshold(gray, gray, 1, 255.0, CV_THRESH_BINARY_INV);
cvShowImage("T9-camera", gray);
cvReleaseImage(&gray);
inputKey = cvWaitKey(10);
switch (inputKey)
{
case 27:// esc
goto LoopEnd;
break;
case 2490368:// up key
break;
case 2621440:// down key
break;
case 2424832:// left key
break;
case 2555904:// right key
break;
default:
if (inputKey >= 0)
printf("%d\n", inputKey);
}
}
LoopEnd:
cvReleaseCapture( &capture );
cvDestroyWindow( "T9-camera" );
}
}Forums:


댓글 달기