我有一個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