2013-10-22 95 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),而不是更改图像格式。