我有一个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位灰度图像。
答案 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