我的问题简介:
我用c++序列化了一个CV::MAT
对象,并将其发送到python程序(更准确地说,我有一个使用c++.exe作为子进程的python程序),我在python中将它反序列化为(R,G,B)整数的2D数组
现在,我在python服务中有一个不同的方法,按需将这个2D数组发送回c++进程并让它做一些事情 基本上我不想使用它的序列化程序,因为我不想使用它 我自己从python序列化了它,并设法为c++进程提供了一个平面数组以及2D数组的维数(行和列)
现在我不知道如何从这个数据构造一个CV::MAT
对象
我知道有一个Mat (int rows, int cols, int type, void *data, size_t step=AUTO_STEP)
可以完成这项工作,但不知道在这个步骤中什么是我认为的
任何帮助将不胜感激!在
这是到目前为止我得到的c++代码
vector<string> imgVector;
int imgRows = stoi(kp.at(7));
int imgCols = stoi(kp.at(8));
split(kp.at(2), ' ', back_inserter(imgVector)); // kp.at(2) is a ' ' seperated array of integers
int* pixels = (int*)malloc(sizeof(int) * imgVector.size());
for (int j = 0; (unsigned)j < imgVector.size(); i++){
pixels[j] = stoi(imgVector[j]);
}
Mat image(imgRows, imgCols, CV_32F, pixels);
但我认为它会生成一个二维整数数组,而不是我想要的RGB元组
更正项目:
CV_8UC3
类型来存储3通道int数组。在uchar
。在接下来,下面的代码应该可以工作。在
相关问题 更多 >
编程相关推荐