在 Visual Studio 中调整 mat openCV 的大小
Posted
技术标签:
【中文标题】在 Visual Studio 中调整 mat openCV 的大小【英文标题】:Resizing mat openCV in Visual Studio 【发布时间】:2017-06-14 20:34:19 【问题描述】:在 c++、Visual Studio 中,我有图像
cv::Mat EnergyImage;
它是二维的,尺寸为 2x6000000
我想将其转换为 2 张尺寸为 200x300x100(=6000000) 的图像,最好是两张 3d 图像。
如何重塑它并分别访问 2 张图片?
【问题讨论】:
【参考方案1】:OpenCV 提供了 cv::Mat
构造函数 API,您可以在其中创建一个 n 维矩阵,其中每个维度中的任意 bin 如下:
cv::Mat m = cv::Mat(1, 6000000, CV_8UC1, cv::Scalar(100));
int sizes[3] = 200, 300, 100;
cv::Mat multiDimMat = cv::Mat(3, sizes, CV_8UC1, &m.data[0]);
如果您的线性 cv::Mat
只有一行,上面的代码就足够了,但是由于您的输入 cv::Mat
有 2 行,并且您希望每行有 2 个单独的 cv::Mat
对象,您可以尝试:
for(int i = 0; i < m.rows; i++)
const uchar* mi = m.ptr<uchar>(i);
// Perform the same routine as above code
【讨论】:
但是如何调整它的大小?通过这个 for 循环,我有 1x6000000 参数。但是如何将其调整为 200x300x100 ? 我更容易访问每一行,cv:: Mat mi1 = EnergyImage.row(1); cv:: Mat mi0 = EnergyImage.row(0);这 2 个向量的维度为 1x6000000。我想我没有清楚地写出我的问题,我只是想将此矢量调整大小(或重塑)为 3d mat。以上是关于在 Visual Studio 中调整 mat openCV 的大小的主要内容,如果未能解决你的问题,请参考以下文章
(工具技巧) —— Visual Studio Code页面放大缩小和字体的调整方式
(工具技巧) —— Visual Studio Code页面放大缩小和字体的调整方式
(Visual Studio 杂记) )—— Visual Studio 如何 设置 C++ 标准版本