gpt4 book ai didi

c++ - 内存不足错误

转载 作者:太空宇宙 更新时间:2023-11-03 23:02:45 30 4
gpt4 key购买 nike

我在构建它的时候遇到了内存不足的错误。如果 resultImage != NULL,我已经尝试不再创建图像,但我仍然遇到这个问题。

我做了很多搜索,但我找不到解决这个问题的方法。谁能帮我解决这个问题?这是一个非常简单的代码,只从网络摄像头捕获帧并将其转换为颜色。我正在使用 VB2010 C++ 快速版和 opencv2.4

好吧,我也是 opencv 和 c 语言的新手。如果可以,请更正我的错误代码。

#include "stdafx.h"

int main(){
CvCapture* capture = cvCaptureFromCAM(0);
if(!capture) return -1;

char key;

cvNamedWindow("Frame");

IplImage* frameImage = NULL;
IplImage* resultImage = NULL;
IplImage* HSVImage = NULL;

while(1){
frameImage = cvQueryFrame(capture);
if(!frameImage) break;

if(resultImage == NULL){
resultImage = cvCreateImage(cvGetSize(frameImage),IPL_DEPTH_8U,3);
HSVImage = cvCreateImage(cvGetSize(frameImage),IPL_DEPTH_8U,3);
}
resultImage = cvCloneImage(frameImage);

cvCvtColor(resultImage,HSVImage,CV_RGB2HSV);

cvShowImage("Frame",HSVImage);

key = cvWaitKey(20);
if(key == 27) break;
}

cvReleaseCapture(&capture);
cvReleaseImage(&resultImage);
cvReleaseImage(&HSVImage);
cvDestroyAllWindows();
return 0;
}

最佳答案

很可能 cvCloneImage() 分配了从未释放的内存。尝试使用这个:

IplImage* HSVImage = cvCreateImage(cvGetSize(frameImage),IPL_DEPTH_8U,3);

while(1){
IplImage* frameImage = cvQueryFrame(capture);
if(!frameImage) break;

cvCvtColor(frameImage,HSVImage,CV_RGB2HSV);

cvShowImage("Frame",HSVImage);

cvReleaseImage(frameImage);

key = cvWaitKey(20);
if(key == 27) break;
}

关于c++ - 内存不足错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13227191/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com