2011-11-19 5 views
1

C++ 스타일로 opencv 2.3을 사용하여 프로젝트를 개발 중입니다.OpenCV 오류 : 메모리가 충분하지 않습니다.

응용 프로그램에서 비디오를로드하고 모든 프레임을 처리하고 Mat 객체로 몇 가지 작업을 수행합니다. 몇 시간이 지나면 불충분 한 메모리 오류가 발생합니다. 는 I가 이미지를 복사 실행하고 표준에 저장 : 벡터 목록에서

FCapture >> FImage; 
FDetector->execute(FImage); 

:

내가 좋아하는 프레임을 캡처합니다. 나는 그것의 어디에 문제가 될 수 대답하기 어려운 조금 알고

vector<vector<Point> > contours; 
findContours(FImage, contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE); 

하지만, 전체 프로그램 코드를 여기에 게시하는 것은 불가능하다 : 또한 같은 imageblobs을 확인합니다. 아마도 누군가가 Mat 객체 나 다른 OpenCv 객체를 복사 할 때주의해야 할 부분을 알 수 있습니다. 오류의 원인이 될 수 있습니다.

+0

일반적인 메모리 누수 같은 소리가 난다. 사용 후 할당 된 이미지를 비우고 있습니까? – Throwback1986

+0

'valgrind'를 사용하세요. 작은 테스트 입력 및 심각한 오류가 있는지 확인하십시오. –

답변

0

흥미 :

In the execute I copy the image and save it in a std::Vector list

은뿐만 아니라이 문 :

After some time I get a Insufficient memory Error.

OpenCV의 이미지 당신이 말한 것에 매우 크기에 따라 큰 및 기반이 될 수있는, 내가 생각 당신의 벡터가 빠르게 성장하면에서 데이터를 제거하여 메모리 오류가 발생합니다.

맞습니까? 벡터에 데이터를 계속 추가하면 언젠가는 새로운 데이터를 저장하기 위해 메모리가 부족해질 것입니다.

0

나는 비슷한 문제를했지만, OpenCV의 자신의 사이트 here

추신 : 내 게시물을 보는 경우에 확실하지 않다 내가 코멘트로 넣고 싶었지만 내 "새내기"덕분에 나는 여전히 대답에 대해 논평 할 수 없다 : (

관련 문제