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



我有一个函数使用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(floatImage, imageDct)"时,我得到了一个错误消息:"未处理的异常在0x76DA2EEC在PerceptualHash.exe:微软c++异常:cv::异常在内存位置0x00C3E108。"

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

我认为你需要初始化imageDct之前使用它作为dct的参数。

试试这个:

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

相关内容

  • 没有找到相关文章

最新更新