c++ - 在 opencv 中使用 imshow 显示字节数组的最快方法是什么?

标签 c++ c arrays pointers opencv

我有一个指向图像缓冲区(字节数组)的指针并且我知道行数和列数。在 opencv 中显示此图像数据的最快方法是什么。请参阅下面的详细信息。

int               rows, cols;
unsigned char     *ImageBuffer;

if (err = WFS_GetSpotfieldImage(instr.handle, &ImageBuffer, &rows, &cols))
    handle_errors(err);

// what goes here to construct "MAT image" using the "ImageBuffer" which is a pointer?
Mat image(rows, cols, CV_8UC3, Scalar(255, 0, 0));

cv::namedWindow("Spot Field", cv::WINDOW_AUTOSIZE);
cv::imshow("Spot Field", image); 

最佳答案

使用这个构造函数:

Mat::Mat(int rows, int cols, int type, void* data, size_t step=AUTO_STEP)

data – 指向用户数据的指针。采用数据和步骤参数的矩阵构造函数不分配矩阵数据。相反,它们只是初始化指向指定数据的矩阵头,这意味着没有数据被复制。此操作非常高效,可用于使用 OpenCV 函数处理外部数据。外部数据不会自动释放,因此您应该注意它。

关于c++ - 在 opencv 中使用 imshow 显示字节数组的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29870808/

相关文章:

c - 使用 main 中给出的参数在 C 中进行字符串解析

c - 将 strcmp 与 char 和 struct 数组一起使用时出错

c - 数组值如何存储在 Little Endian 与 Big Endian 架构中

arrays - 在一个数组中使用解析服务器加载数据

初始化值时的 C++ 用户输入

c++ - 应该如何使用 std::optional ?

php - 传递数组并从 MySQL 表中删除

javascript - React 不会在 map 函数中渲染

c++ - 如何编写作用于嵌套STL容器并限制最内层类型的模板函数模板

c++ - 以下声明之间有什么区别?