您的位置:首页 > 大数据 > 人工智能

opencv:Assertion failed (type == CV_32FC1 || type == CV_64FC1) in cv::dct

2018-03-31 21:31 2783 查看
使用opencv中的dct()函数进行离散余弦变换时出现如下错误:

OpenCV Error: Assertion failed (type == CV_32FC1 || type == CV_64FC1) in cv::dct, file .......


原问题处:

Mat src = imread("son.jpg", 0);
if(src.empty())
{
cout << "the image is not exist" << endl;
return -1;
}
resize(src, src, Size(32, 32));
Mat srcDCT;
dct(src, srcDCT);


后打印出src.type()发现为0即CV_8U,而非要求的CV_32F或CV_64F故引发错误。

使用convertTo()将图像类型转换为CV_32F。更改后问题消除:

Mat src = imread("E:\\image\\image\\image\\person.jpg", 0);
if(src.empty())
{
cout << "the image is not exist" << endl;
return -1;
}
resize(src, src, Size(32, 32));
src.convertTo(src, CV_32F, 1.0/255.0);
//cout<<src.type()<<"\n";
Mat srcDCT;
dct(src, srcDCT);


矩阵类型:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐