我正在使用的程序是讀取一些位圖,並期待32FC1圖像。OpenCV保存CV_32FC1圖像
我想創建這些圖像
cv::Mat M1(255, 255, CV_32FC1, cv::Scalar(0,0,0));
cv::imwrite("my_bitmap.bmp", M1);
,但是當我檢查的深度 - 它始終是CV_8U
如何創建的文件,以便它們將包含正確的信息?
更新:如果我使用不同的文件擴展名 - 例如tif或png
我正在閱讀 - 使用已實施的代碼 - 與cvLoadImage
。
我想創建現有的代碼 - 檢查圖像類型 - 可以使用的文件。
我無法轉換現有代碼中的文件。現有的代碼不會嘗試讀取隨機圖像類型並將其轉換爲所需的類型,但會檢查文件是否爲所需的類型。
我發現了 - 謝謝你的答案 - cv :: imwrite只寫整型圖像。
是否有另一種方法 - 使用OpenCV或其他方式 - 寫入圖像,以便我最終與CV_32F類型?
再次更新: 代碼讀取圖片...如果成CV ::墊:
cv::Mat x = cv::imread(x_files, CV_LOAD_IMAGE_ANYDEPTH|CV_LOAD_IMAGE_ANYCOLOR);
現有代碼:
IplImage *I = cvLoadImage(x_files.c_str(), CV_LOAD_IMAGE_ANYDEPTH|CV_LOAD_IMAGE_ANYCOLOR);
你給你的外部程序是什麼?該文件或'cv :: Mat'對象的路徑? – Jacob
我們可以看到使用cvLoadImage讀取文件的代碼嗎? – Bull
我給它的文件路徑 – Thalia