0

正如我在标题中解释的那样,我遇到了问题。我想将 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)在此代码末尾完美运行的代码。

4

2 回答 2

0

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

于 2013-12-21T15:12:43.070 回答
0

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

于 2013-05-26T16:40:58.860 回答