在 OpenCV 中加载像素值数组

Loading an array of pixel values in OpenCV

本文关键字:数组 像素 加载 OpenCV      更新时间:2023-10-16

我有一个 32 位整数数组,其中包含我想用来创建 Mat 图像的 3450x3450 图像的像素值。已尝试以下操作:

int *image_array;
image_array = (int *)malloc( 3450*3450*sizeof(int) );
memset( (char *)image_array, 0, sizeof(int)*3450*3450 );
image_array[0] = intensity_of_first_pixel;
...
image_array[11902499] = intensity_of_last_pixel;
Mat M(3450, 3450, CV_32FC1, image_array);

在显示图像时,我得到一个黑屏。我还应该注意该数组包含一个 16 位灰度图像。

我想

你应该尝试转换输入图像,我假设它是RGB[A]格式,使用:

cv::Mat m(3450, 3450, CV_8UC1, image_array) // For GRAY image
cv::Mat m(3450, 3450, CV_8UC3, image_array) // For RGB image
cv::Mat m(3450, 3450, CV_8UC4, image_array) // For RGBA image