如何在此上下文中使用cv :: dct函数?

时间:2016-10-10 21:43:46

标签: c++ opencv

我试图将离散余弦变换函数作为赋值的一部分来实现。

要检查我的函数是否正常工作,我想在我的参数上调用cv::dct函数,看看我是否用自己的函数得到了相同的结果。

我有这个载体:

std::vector<cv::Mat_<uchar>> vBlocks;

是包含(8 * 8)大小的矩阵的向量。我把这个函数称为:

for(size_t b=0; b<vBlocks.size(); ++b) {
    vDCTBlocks[b] = dct(vBlocks[b]); // here dct is the function I coded myself
}

但是,如何调用cv::dct函数来检查结果是否相同? 我试过了:

for(size_t b=0; b<vBlocks.size(); ++b) {
    cv::dct(vBlocks[b], vBlocks[b]);
}

但是我得到以下错误:

  

OpenCV错误:断言失败(type == CV_32FC1 || type == CV_64FC1)   在cv :: dct中,文件E:\ pistc \ open cv \ modules \ core \ src \ dxt.cpp,第3603行   Caught :: Exceptions:E:\ pistc \ opencv \ modules \ core \ src \ dxt.cpp:3603:   错误:(-215)type == CV_32FC1 ||函数中输入== CV_64FC1   CV :: DCT

我猜这是因为我使用矩阵而不是数组作为cv::dct的参数,但我不确定如何从这里继续。

0 个答案:

没有答案