2013-10-22 93 views
-3

我想在MATLAB寫一個圖像,而是得到了以下錯誤:無法寫入文件

Error using imwrite (line 455) Unable to open file "D1.bmp" for writing. You may not have write permission.

這是爲什麼?我該如何解決這個錯誤?

回答

2

由於錯誤提示,您似乎沒有權限在您要保存的地方寫入文件。確保您沒有試圖寫入計算機的保護區域。

+0

感謝您的回覆。它是我桌面上的一個文件夾。我檢查了權限,似乎我完全可以控制。我甚至將我的工作移到了桌面本身,但也有相同的問題 – Simplicity

+1

該文件夾是否存在?根據[this](http://www.mathworks.com.au/support/solutions/en/data/1-APY5VN/?solution=1-APY5VN),如果文件路徑爲你,也可能會出現此錯誤指定不存在。 – MrAzzaman

+0

是的,該文件夾確實存在。請檢查一下我如何解決問題的答案。謝謝 – Simplicity

0

當我將書寫圖像的擴展名更改爲jpg而不是BMP時,問題得到解決。

+0

文檔: 「如果A的數據類型爲邏輯,則imwrite會假定數據是二進制圖像,並在格式允許的情況下將其寫入位深度爲1的文件,BMP,PNG或TIFF格式接受二進制圖像作爲輸入數組。「 BMP在任何其他情況下都不受支持,可能matlab試圖編寫一個D1.BMP.jpeg – Daniel

+0

他們說BMP/PNG/TIFF格式是唯一接受二進制圖像的格式,而不是BMP只能寫入二進制圖像。 'imwrite'也可以做8位或24位的bmp。 – nkjt

2

如果更改文件名而不是位置解決了這個問題,可能是因爲它已經在另一個程序中打開了,所以您可能已經有了一個現存的文件「D1.bmp」,這是Matlab無法寫入的文件。

在某些情況下(取決於Matlab版本,我認爲 - 無法在這臺計算機上重現),這可能只是通過在Windows資源管理器中打開該目錄纔會發生。例如,請參閱here(Mathworks支持鏈接)。

如果您想避免意外覆蓋圖像,您可以使用exist來檢查文件名是否已被使用,如果是,請更改文件名(即轉到D2.bmp或D1_01.bmp),而不是更改圖像格式。