2017-10-10 384 views
0

我正在嘗試使用OpenCV imwrite函數將圖像寫入文件夾。 代碼編譯並運行成功,但圖像未保存在文件夾/路徑中。我從'imshow'獲取輸出,並且圖像處於CV_8UC1格式。OpenCV imwrite不寫圖像

在下面找到

Mat reflection = function which computes image 
    imshow("output image", reflection); 
    imwrite("E:/New folder/img.bmp", reflection); 

的代碼,所以我檢查current folder writing和修改後的代碼這樣

bool check = imwrite("./img.bmp", reflection); 

這個「布爾檢查」狀態爲「假」,而不是寫的圖像。

我也檢查了文件夾權限與從microsoft help準則我的「E /新文件夾/」被允許寫入。仍然,圖像不存儲。 我可以使用任何圖像格式.jpg,.png和.bmp。 我使用Windows 7,OpenCV的3.0,Visual Studio的2017年

請幫助我,感謝閱讀它

+0

您是否嘗試過不帶路徑?保存到當前工作目錄或類似... imwrite(「img.bmp」,反射); ? –

+0

您是否嘗試將圖像轉換爲CV_8UC3?我懷疑1通道圖像可以存儲在bmp文件中。 –

+0

如果你選擇'imwrite(「E:/ New folder/img.png」,reflection),它會起作用嗎? – Micka

回答

1

opencv的似乎不支持保存BMP文件檢查imwrite docs。更改文件名爲img.png應該可以工作。在windows中也使用./是無效的,這是在unix系統中用來表示當前工作目錄的,參見Windows current directory。 它更新到

bool check = imwrite(".\img.png", reflection); 

bool check = imwrite("img.png", reflection); 

應工作

+0

我試過它仍然不保存圖像布爾檢查值爲false –

+0

看來opencv不能保存BMP文件,將文件更改爲「img.png」 [文檔](https://docs.opencv.org/3.0-alpha /modules/imgcodecs/doc/reading_and_writing_images.html) –

相關問題