Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用opencv的cv::dct时出现内存错误_C++_Visual Studio_Opencv - Fatal编程技术网

C++ 使用opencv的cv::dct时出现内存错误

C++ 使用opencv的cv::dct时出现内存错误,c++,visual-studio,opencv,C++,Visual Studio,Opencv,我有一个使用opencv的函数 Mat CalPHashCode(Mat image) { Mat floatImage, imageDct,temp; resize(image, temp, Size(32, 32)); temp.convertTo(floatImage, CV_32FC1); dct(floatImage, imageDct); Rect roi(0, 0, 8, 8); Scalar imageMean = mean(i

我有一个使用opencv的函数

Mat CalPHashCode(Mat image)
{
    Mat floatImage, imageDct,temp;
    resize(image, temp, Size(32, 32));  
    temp.convertTo(floatImage, CV_32FC1);
    dct(floatImage, imageDct);
    Rect roi(0, 0, 8, 8);
    Scalar imageMean = mean(imageDct(roi));
    return (imageDct(roi) > imageMean[0]);
}
当它运行到DCT函数“DCT(浮点,IVIDECTCT)”时,我得到一个错误消息:“感知HASH.EXE中的0x76DA2EEC中未处理的异常:微软C++异常:CV::内存位置0x00 C3E108异常。”

我不知道为什么。有人能帮忙吗?
它是opencv2.4.7,visual studio 2012,windows 8 64,项目是Win32,调试模式。

我认为在将imageDct用作dct中的参数之前,需要初始化imageDct

试试这个:

imageDct = Mat( floatImage.rows, floatImage.cols, floatImage.type() );

调用dct之前。

您不需要初始化
Mat
您正在保存系数,因此当抛出
cv::Exception
时,运行程序的控制台会打印一条更具体的错误消息。那是什么意思?如果没有,您是否尝试过在
中包围代码,尝试捕获
/
并读取抛出异常的消息?