【问题标题】:Error using fopen使用 fopen 时出错
【发布时间】:2018-07-03 04:06:16
【问题描述】:

我写了这两行来读取和显示来自特定位置的图像。

i = imread('‪C:\Users\m_mal\Desktop\fruit.jpg');
imshow(i);

但是当我运行代码时,我收到了以下错误消息。

 Error using fopen
 The file name contains characters that are not contained in the filesystem 
 encoding.
 Certain operations may not work as expected.

 Error in imread (line 343)
 [fid,errmsg] = fopen(filename, 'r');

 Error in g (line 1)
 i = imread('?C:\Users\m_mal\Desktop\fruit.jpg');

【问题讨论】:

  • \ 不应该被转义吗? -> \\
  • URI有什么问题吗?
  • 用正斜杠“/”替换反斜杠“\”没有帮助
  • 不知何故,“从左到右嵌入”字符卡在了字符串的前面。复制并粘贴此字符串并试一试:'C:\Users\m_mal\Desktop\fruit.jpg'.

标签: matlab imshow imread


【解决方案1】:

替换这个:

 i = imread('?C:\Users\m_mal\Desktop\fruit.jpg');

用这个:

 i = imread('C:\\Users\m_mal\Desktop\fruit.jpg');

【讨论】:

    【解决方案2】:

    文件名的第一个字符是非打印字符(可能是控制字符)。实际上,我从该图像的属性中复制并粘贴了 URI,并包含了一些非打印字符。

    所以,我删除了 URI 并手动编写了它。然后代码起作用了。

    您可以看到这个字符用“?”表示在错误信息中:

    Error in g (line 1)
    
       i = imread('?C:\Users\m_mal\Desktop\fruit.jpg');
    

    那个角色不可见,但在那里。

    致谢:Matlab 社区

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-15
      • 1970-01-01
      • 1970-01-01
      • 2018-01-15
      • 2021-07-03
      • 2015-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多