我目前正在尝试使用 cv::hconcat(std::vector<cv::Mat> vector_of_mats, cv::Mat dest)
连接 cv::Mat 对象.但是,我需要 objective-c v::Mat 的类型为 CV_32FC1
而不是默认的 CV_8UC1
.
我尝试将 objective-c v::Mat 构建为:
descriptor = cv::Mat::zeros(tmp.size(), 256, CV_32FC1);
cv::hconcat(vec, descriptor);
但这仍然会产生一个 CV_8UC1
cv::Mat
对于 descriptor
. cv::Mat
的类型在 vector 中是CV_8UC1
.那是我的问题所在吗?
提前致谢!
最佳答案
你的猜测是正确的! cv::Mat
的类型取自source。
快速浏览一下 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);
}
关于c++ - 如何显式声明 cv::Mat 类型作为 OpenCV 库函数的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29752066/