opencv Exception
用opencv读取视频文件,视频文件的分辨率较小的时候,文件可以正常读取,没有错误。当视频文件中图像的分辨率比较大的时候,会报错:..\..\..\src\opencv\modules\core\alloc.cpp:52:error:<-4>Failed to allocate 24883220 bytes
请问这个是什么原因。
void Shadowdetect(CvMat* segMat,CvMat* BackgroundMat,CvMat* pFrameMat){
try
{
BackHSV=cvCreateMat(pFrameMat->height, pFrameMat->width, CV_32FC3);
pFrameHSV=cvCreateMat(pFrameMat->height, pFrameMat->width, CV_32FC3);
TempConvert=cvCreateMat(pFrameMat->height, pFrameMat->width, CV_32FC3);
......
... ...
}
catch (cv::Exception& e)
{
const char* err_msg = e.what();
printf ("%s\n", err_msg);
}
我用断点调试了一下,在执行到try里的第3句时,提示报错:也就是cv::Exception.请问opencv的cvCreateMat跟图像的分辨率有直接关系么。pFrameMat->height = 1080,pFrameMat->Weight=1920. OpenCV 异常 视频 调试
[解决办法]
分配内存失败,
分辨率越大, 内存占用越大