我有6型(双值,单通道)垫子,数据范围为0到255。我可以使用以下代码打印出数据:
double* data = result.ptr<double>();
for(int i = 0; i < rows; i++)
for(int j = 0; j < cols; j++)
std::cout<<data[i*step+j]<<"\t";
Run Code Online (Sandbox Code Playgroud)
这看起来非常正常-在0到255的范围内以及我期望的大小。但是,当我尝试显示图像时:
imshow(window_name, result);
waitKey();
Run Code Online (Sandbox Code Playgroud)
我刚得到一张白色的图像。只是白色像素。没有其他的。
从文件加载其他图像并显示在窗口中可以正常工作。
使用Windows 7,OpenCV 233
cv :: imshow以下列方式工作-
您的矩阵位于第三类,其中imshow期望值在0到1之间,因此将其乘以255。由于您的值已经在0到255之间,因此您会得到不想要的结果。因此,归一化0和1之间的像素将起作用。