对于存储图像的Mat,可以使用imshow
轻松显示。但如果Mat的数据类型是CV_32FC1,我该如何显示这个Mat?
我尝试了imshow,但显示的图像全是白色的,缩放后仍然完全空白,我看不到Mat中的浮点数。
有谁知道如何显示整个Mat矩阵吗?
p.s.:感谢回复。我将发布一些代码和图像以显示更多细节: 代码:
Mat mat1;
mat1 = Mat::ones(3,4,CV_32FC1);
mat1 = mat1 * 200;
imshow("test", mat1);
waitKey(0);
Mat dst;
normalize(mat1, dst, 0, 1, NORM_MINMAX);
imshow("test1", dst);
waitKey(0);
mat1.convertTo(dst, CV_8UC1);
imshow("test2", dst);
waitKey(0);
return 0;
输出:
当我将其放大150%后:
然后,当我将其放大150%后,我们可以看到“test”完全是白色的,我们无法看到其元素值。“test1”完全是黑色的,我们仍然无法看到其元素值。但是对于“test2”,它是灰色的,我们可以看到其元素值为200。
这个实验是否意味着imshow()
只能显示CV_8UC1
,而我们无法显示任何其他数据类型?