我正在尝试通过指针遍历cv::Mat
因此,我在函数中执行了以下操作:

template<typename Tin=uchar,typename Tout=float>
inline cv::Mat_<Tout> dct(const cv::Mat_<Tin>& oBlock) {

    cv::Mat_<Tout> oOutput(oBlock.size());
    Tout *pointeurOut= oOutput.data;

    //...
}

但是,我在最后一行(Tout *pointeurOut= oOutput.data;)遇到了错误。



那是哪里来的

最佳答案

dataalways a uchar*

你应该用

oOutput.ptr<Tout>();

获取指向第i行的Tout指针(默认为第0行,即图像的开头)

关于c++ - 浮点矩阵上的指针被视为* uchar,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39964263/

10-11 22:08