我有一个int数组在OpenCV中imshow()不适用于cv :: Mat类型CV_32F?
float* data; // stores pixel gray color
cv::Mat img(h,w,CV_32F,data);
cv::namedWindow("Display window");
cv::imshow("Display window", img);
那我得到的是:
我搜索了很多资源,但无法找到了。我怀疑这是类型的问题,但我与定义相比,我认为没关系。
有谁能告诉我理由?
那你希望它是什么样子?什么颜色是3.40282347E + 38?或-3.40282347E + 38。尝试将您感兴趣的浮动范围转换为8but –
如果类型为浮动,则值必须介于0和1之间才能正确显示......您没有阅读过文档吗? – Miki
像素<= 0呈现为黑色,像素> = 1呈现为白色0 <像素<1呈现为灰色值。所以可能你必须扩大你的形象。尝试cv :: imshow(“Display window”,img *(1.0/255.0)); – Micka