static Mat ConvertToMat(unsigned char *data, int rows, int cols)
{
Mat img(rows, cols, CV_8UC3); // 创建一个 Mat 对象, CV_8UC3 = 8 bit + 3 channel 即 RGB 24位真彩色
for (int i = 0; i < rows * cols * 3; i++) // 直接填充
{
img.data[i] = data[i];
}
return img;
}
Mat 的 data 指向一个一维数组,即原始数据
//! pointer to the data
uchar* data;
调用 imshow 方法显示图像:
uint8_t *pData = new uint8_t[3 * 100 * 100];
for (int i = 0; i < 100*100*3; i++)
{
pData[i] = 100;
}
Mat img = ConvertToMat(pData, 100, 100);
imshow("myImage", img); //显示图像