OpenCV,显示动态二维数组作为图像(到Mat对象)

OpenCV, Show Dynamic int 2D Array as Image (into Mat object)

本文关键字:Mat 对象 图像 显示 动态 二维数组 OpenCV      更新时间:2023-10-16

我有一个问题,正如我在标题中解释的。我想分配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,并将矩阵打印到屏幕上为15和0,这是正确的。(OpenCV版本为2.4.5)

我也有wait(0)代码,这是完美的运行在这段代码的末尾。

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

OpenCv文档说imshow在显示前将值除以255。你必须缩放你的数据,这样除法之后它就不是0了。