浮点矩阵上的指针被视为* uchar

时间:2016-10-10 18:10:40

标签: c++ opencv

我试图用指针迭代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;)收到错误。

  

&#39;初始化&#39;:无法转换为&#39; uchar *&#39;到&#39;浮动*&#39;

这是从哪里来的?

1 个答案:

答案 0 :(得分:1)

dataalways a uchar*

你应该使用

oOutput.ptr<Tout>(); 

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