MATLAB读取图片时报错:“错误使用 fopen 找不到文件,确保文件存在且路径” 的原因及解决方法

   本文主要介绍MATLAB读取图片时报错:错误使用 fopen 找不到文件,确保文件存在且路径 出错 imread>get_full_filename (第 558 行) [fid, errmsg] = fopen(filename, ‘r’); 出错 imread (第 377 行) fullname = get_full_filename(filename);的原因及解决方法

   其他博客中介绍的常见原因有以下几条

   1、路径包括中文

   2、路径包括非法字符

   3、路径在C盘中

   4、路径太浅,比如直接放在了D:/下,此时可以先建一个文件夹,然后把图片放在文件夹中


   相信很多小伙伴也会遇到不包含以上介绍的原因,依然报错了,那是为什么呢?

   接下来的内容才是本文的价值所在    ✿(。◕ᴗ◕。)✿

   ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

   导致以上错误的罪魁祸首----不可见的字符

   -----------------------------------------------------------

   比如以下两行字符双引号内的内容看起来是“一样”的,但是在第一行的 " 和 D之间存在一个不可见字符,这也是导致以上报错的原因,只要删掉这个不可见字符就可以解决以上错误。

imagi="‪D:\e\project_test\matlabtest\appdesignertext\gqkl1.jpg";
image="D:\e\project_test\matlabtest\appdesignertext\gqkl1.jpg";

   大家可以把以上两行内容复制到matlab命令行窗口或者txt文本文件中,然后把光标依次放在每行的最左侧,然后按字符依次右移光标检查是否存在不可见字符,若某处存在不可见字符 ,则在此处右移一次光标(按一次键盘上的“→”)你会发现光标好像还在原地,但其实光标已经右移了,跨越了我们看不见的不可见字符。

   动态演示如下:

在这里插入图片描述

   所以大家遇到文章介绍的报错以后,在排除其他原因后,可以按照以上方法检查一下整个路径中是否存在不可见字符,若存在不可见字符,将所有不可见字符删除后,就可以解决以上错误

   演示如下:

在这里插入图片描述

   到这里,该错误的解决方法就介绍完毕了,接下来我们将介绍一种复制路径时会导致出现不可见字符的操作
   经过测验:复制路径时,采用正向复制时,没有出现不可见字符,而采用逆向复制时会在路径的开头处出现一个不可见字符,上面的例子中,即出现在D的左边。

   此时,若先粘贴复制的内容,然后再加需要的 " " 则大概率会将D左边的不可见字符分在引号之外,此时matlab会报错:    文本字符无效。请检查不受支持的符号、不可见的字符或非 ASCII 字符的粘贴。    这种情况还是比较友好的,只是告诉了产生错误的具体原因

在这里插入图片描述
   产生以上错误的操作如下所示:
在这里插入图片描述

   此时,若先写需要的 " " ,然后往引号里粘贴复制的路径,则大概率会将D左边的不可见字符分在引号之内,此时matlab不会给出存在不可见字符的报错提示,因为引号内的内容当字符处理,不可见字符也是字符,所以不会给出错误提示,这是一个很大的坑!!!!!,我做了很多次实验,花费了俩小时才把这个隐秘的大坑找出来。

   然后再使用imread读取该图片时便会报错找不到文件/路径,真正的原因是存在不可见字符。。。。。导致路径识别错误。。。。。

在这里插入图片描述

   产生以上错误的操作如下所示:

在这里插入图片描述
   总结一下,若不可见字符被分在了引号之外,则报上面介绍的第一种错误,若不可见字符被分在了引号之内,则会报找不到文件的错误,解决方法就是按照上面介绍的方法,找到不可见字符的位置,然后删除不可见字符就可以了。

   此外,正向复制路径时,复制的路径一般不含有不可见字符,也就不会遇到以上因存在不可见字符导致的错误。演示如下:

在这里插入图片描述

   在appdesigner中使用imread报错的原因及解决方法跟在命令行窗口一样,不再介绍。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕羽★

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值