本文主要介绍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报错的原因及解决方法跟在命令行窗口一样,不再介绍。