我正在尝试打开带有未读图像,但是它告诉我文件不存在。
这是命令窗口中的消息
Error using imread>get_full_filename (line 516)
File "Pic1.jpg" does not exist.
Error in imread (line 340)
fullname = get_full_filename(filename);
Error in ImageDetection (line 2)
img1 = imread('Pic1.jpg');
这是它从函数本身引用的代码部分
if (fid == -1)
if ~isempty(dir(filename))
% String 'Too many open files' is from strerror.
% So, no need for a message catalog.
if contains(errmsg, 'Too many open files')
error(message('MATLAB:imagesci:imread:tooManyOpenFiles', filename));
else
error(message('MATLAB:imagesci:imread:fileReadPermission', filename));
end
else
error(message('MATLAB:imagesci:imread:fileDoesNotExist', filename));<--LINE 516
end
if isempty(fmt_s)
% The format was not specified explicitly.
% Get the absolute path of the file
fullname = get_full_filename(filename); <--LINE 340
答案 0 :(得分:2)
如果图像位于工作目录中,则可以通过其名称(“ Pic1.jpg”)对其进行命名。但是,MATLAB不会搜索计算机上的所有文件夹。例如,如果您的程序在C:\Users\user\Documents\MATLAB
中运行,并且图像在C:\Users\user\Pictures
中,则可以使用以下图片引用图片:
"C:\Users\user\Pictures\Pic1.jpg"
)"..\..\Pictures\Pic1.jpg"
)通常,如果图片仅由于您的程序而存在,则图片将位于同一目录中,因此您无需使用".."
来向上移动任何目录。
如果希望用户每次运行该程序都能选择图片,建议您查看uigetfile。如果您想进一步了解MATLAB在哪里搜索文件,请参见this article。
其次,您可能要检查文件名。尽管看起来很明显,但有时有时很难注意到一个简单的拼写错误,例如“ Pic1.jpg”与“ Pic1,jpg”与“ Pic1.jpeg”
答案 1 :(得分:0)
在发生错误的代码行上方,写新行:
dir
要在提示符下输出当前文件夹的文件,并检查文件名是否正确显示在该位置。您能复制我们的输出吗?