OpenCV,将动态int 2D数组显示为图像(进入Mat对象)

时间:2013-05-26 16:01:00

标签: c++ image opencv image-processing multidimensional-array

我有一个问题,因为我在标题处解释。我想将2D填充的int **(动态)数组分配给MAT对象,然后在屏幕上显示它。我已经解释了许多问题,谷歌并没有得到任何结果。任何帮助将不胜感激。 这是我的代码无效。

int** resultMatrix;
#define SIZE 800
//Some array process (Assign,Erosion etc..)
Mat A = Mat(SIZE, SIZE, CV_32S, &resultMatrix,2);  
    namedWindow( "Display window", CV_WINDOW_AUTOSIZE );
    imshow( "Display window", A );  

此代码块始终显示黑屏。我也将尺寸更改为10并将矩阵打印到屏幕为1和0,这是正确的。(OpenCV版本是2.4.5)

此外,我还有wait(0)代码,该代码完全在此代码的末尾运行。

3 个答案:

答案 0 :(得分:0)

如果我没错,我过去也遇到过类似的问题。尝试在waitKey(1);之后添加一行imshow( "Display window", A );我觉得它对我有用。

答案 1 :(得分:0)

尝试使用CV_8U作为类型参数。

Mat A = Mat(SIZE,SIZE,CV_8U,& resultMatrix);

答案 2 :(得分:0)

OpenCv doc说imshow在显示之前将值除以255。您必须缩放数据,使其在该分割后不为0。真白色应为255 * 255