如何显式声明cv :: Mat类型作为OpenCV库函数的一部分

时间:2015-04-20 15:26:53

标签: c++ opencv

我目前正在尝试使用cv::hconcat(std::vector<cv::Mat> vector_of_mats, cv::Mat dest)连接cv :: Mat对象。但是,我需要目标cv :: Mat为CV_32FC1类型,而不是默认的CV_8UC1

我尝试将目标cv :: Mat构建为:

    descriptor = cv::Mat::zeros(tmp.size(), 256, CV_32FC1);
    cv::hconcat(vec, descriptor);

但是仍然会为CV_8UC1生成cv::Mat descriptor。向量中cv::Mat的类型为CV_8UC1。那是我的问题所在吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

你的怀疑是正确的! cv::Mat的类型取自来源

快速查看cv::hconcat的源代码确认了这一点:

void cv::hconcat(const Mat* src, size_t nsrc, OutputArray _dst) {
    ....
    _dst.create( src[0].rows, totalCols, src[0].type()); // Type taken from src
    ....
}

void cv::hconcat(InputArray _src, OutputArray dst)
{
    std::vector<Mat> src;
    _src.getMatVector(src);
    hconcat(!src.empty() ? &src[0] : 0, src.size(), dst);
}