opencv - 如何使用浮点向量初始化 cv::Mat?

标签 opencv vector mat

有没有办法初始化 opencv cv::Mat使用 vector<float>目的? 或者我是否需要遍历向量的每个条目并将其写入 cv::Mat对象?

最佳答案

我自己写了下面的测试代码(包括@Miki的评论)来详细理解。

你测试一下就明白了。

#include <opencv2/highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char* argv[])
{
vector<float> vec{0.1,0.9,0.2,0.8,0.3,0.7,0.4,0.6,0.5,1};

Mat m1( vec ); 
imshow("m1",m1);
waitKey();

Mat m2( 1,vec.size(), CV_32FC1,vec.data());
imshow("m2",m2);
waitKey();

Mat1f m3( vec.size(), 1, vec.data());
imshow("m3",m3);
waitKey();

Mat1f m4( 1, vec.size(), vec.data());
imshow("m4",m4);
waitKey();

cout << "as seen below all Mat and vector use same data" << endl;
cout << vec[0] << endl;
m1 *= 2;
cout << vec[0] << endl;
m2 *= 2;
cout << vec[0] << endl;
m3 *= 2;
cout << vec[0] << endl;
m4 *= 2;
cout << vec[0] << endl;

return 0;
}

关于opencv - 如何使用浮点向量初始化 cv::Mat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36722044/

相关文章:

python - PIL fromarray 函数给出了奇怪的颜色图

python - 在for循环中从多个视频中提取帧

arrays - Common Lisp 中数组/向量类型的区别?

java - android 位图和 opencv mat - 相同的代码不同的结果

c++ - 在 Mat 结构/列表中存储关键点和描述符

c++ - 了解 Mat 元素 Opencv 的值

c++ - 使用 OpenCV 和 C++ 查找图像中墨迹笔划的宽度

opencv - 使用可口可乐标志作为相机的校准图案

c++ - 使用指针写入标准容器

c++ - 尝试将字符串读入多维 vector