将字符数组转换为 Opencv Mat

Ele*_*tra 4 opencv char mat

我已经定义了一个数组char buf[],需要将其转换为Opencv Mat。有办法吗?

char buf[Max_size];
Run Code Online (Sandbox Code Playgroud)

Hum*_*awi 7

没有什么叫做:“将char数组转换为cv::Mat”。cv::Mat是代表内存中图像的容器。它可能拥有数据,也可能不拥有。如果你想创建一个cv::Mat代表一个图像,它的位图数据在某个char数组中,你可以使用下面的代码。这是假设您知道图像的行和列。

cv::Mat my_mat(rows,cols,CV_8UC1,&buf[0]); //in case of BGR image use CV_8UC3
Run Code Online (Sandbox Code Playgroud)

请记住,cv::Mat在这种情况下不持有数据的所有权。您已手动删除数据。但是,由于它是一个堆栈数组,因此您不需要任何操作。

  • 对于其他人谷歌搜索;如果您的数据是“unsigned char*”,则需要在构造函数调用中强制转换为“void*”以进行重载决策,以找到正确的构造函数。 (2认同)