2014-02-07 98 views
0

我有一個由double構成的矩陣(Mat),範圍是[0,1]。 當我通過命令imwrite保存它時,生成的圖像是全黑的。 我想這個問題是一個鑄造問題,但我不知道如何解決它。 感謝Opencv:用imwrite保存雙矩陣

+1

嘗試'cv :: imwrite(filename,yourmatrix * 255)' 否則請查看http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html?highlight=imwrite#imwrite,因爲有些文件擴展名只允許有限的數據類型。 – Micka

回答

1

你得到的全黑圖像是因爲所有的圖像像素範圍內[0,1](實際上爲0或保存圖像時,1),這是接近全黑(無論是灰度圖像或彩色圖像)。

要保存矩陣到的圖像與正常顏色,必須先變換矩陣雙由255每個值乘以範圍[0, 255]。如果稍後通過將每個值除以255來加載此圖像中的矩陣,請記住將其轉換回來。

+1

我認爲你必須做一個'convertTo(converted_Mat,CV_8U或CV_16U,255或65535)'也有類型適當的設置。 – mb84

1

OpenCV存儲雙精度數組而不將它們轉換爲其他格式(以及丟失信息)的唯一方法是使用FileStorageimwrite僅限於'char'或'short'的數組。