【问题标题】:Unable to write file [closed]无法写入文件[关闭]
【发布时间】:2013-10-31 03:59:18
【问题描述】:

我正在尝试在MATLAB 中写入图像,但出现以下错误:

使用 imwrite 时出错(第 455 行)无法打开文件“D1.bmp” 写作。你可能没有写权限。

这是为什么呢?我该如何解决这个错误?

【问题讨论】:

    标签: matlab file-permissions


    【解决方案1】:

    正如错误提示的那样,您似乎没有权限将文件写入您尝试保存的位置。确保您没有尝试写入计算机的受保护区域。

    【讨论】:

    • 感谢您的回复。它是我桌面上的一个文件夹。我检查了权限,似乎我有完全的控制权。我什至将我的工作转移到桌面本身,但遇到了同样的问题
    • 文件夹是否存在?根据this,如果您指定的文件的路径不存在,您也可能会收到此错误。
    • 是的,该文件夹确实存在。请检查我的回答,了解我是如何解决这个问题的。谢谢
    【解决方案2】:

    当我将写入图像的扩展名改为jpg而不是BMP时,问题就解决了。

    【讨论】:

    • 文档:“如果 A 是逻辑数据类型,则 imwrite 假定数据是二进制图像,如果格式允许,则将其写入位深度为 1 的文件。BMP、PNG , 或 TIFF 格式接受二进制图像作为输入数组。”在任何其他情况下都不支持 BMP,可能 matlab 正在尝试编写 D1.BMP.jpeg
    • 他们说 BMP/PNG/TIFF 格式是唯一接受二进制图像的格式,而不是 BMP 只能写入二进制图像。 imwrite 也支持 8 位或 24 位 bmps。
    【解决方案3】:

    如果更改文件名而不是位置解决了此问题,则可能是您有一个现有文件“D1.bmp”,Matlab 无法写入该文件,可能是因为它已在另一个程序中打开。

    在某些情况下(我认为取决于 Matlab 版本 - 无法在这台计算机上重现)这可能发生在仅在 Windows 资源管理器中打开目录时。例如,请参阅here(Mathworks 支持链接)。

    如果您想避免意外覆盖图像,您可以使用exist 检查文件名是否已被使用,如果是,请更改文件名(即转到 D2.bmp 或 D1_01.bmp),而不是更改图片格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多