在OpenCV中加载像素值数组

时间:2017-01-16 09:05:55

标签: c++ opencv image-processing

我有一个32位整数数组,包含3450x3450图像的像素值,我想创建一个Mat图像。尝试以下方法:

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位灰度图像。

1 个答案:

答案 0 :(得分:1)

我猜你应该尝试转换输入图像,我假设它是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