我已经定义了一个数组char buf[],需要将其转换为Opencv Mat。有办法吗?
char buf[Max_size];
Run Code Online (Sandbox Code Playgroud)
没有什么叫做:“将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在这种情况下不持有数据的所有权。您已手动删除数据。但是,由于它是一个堆栈数组,因此您不需要任何操作。