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

What is the fastest way to display a byte array using imshow in opencv?

本文关键字:数组 方法 是什么 字节数 字节 opencv 显示 imshow      更新时间:2023-10-16

我有一个指向图像缓冲区(字节数组)的指针,我知道行数和列数。在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 函数处理外部数据。外部数据不会自动解除分配,因此您应该处理它。