我试图用imread打开图像,但它告诉我这些文件不存在。
这是来自命令窗口的消息
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
图像不在当前目录(或路径(中
如果你的图像在你的工作目录中,你可以用它的名字("Pic1.jpg"(来称呼它。但是,MATLAB不会搜索你电脑上的所有文件夹。例如,如果您的程序在C:UsersuserDocumentsMATLAB
中运行,而图像在C:UsersuserPictures
中,则可以使用参考图片
- 绝对路径(
"C:UsersuserPicturesPic1.jpg"
( - 相对路径(
"....PicturesPic1.jpg"
(
通常,如果图片只是因为您的程序而存在,它会在同一目录中的某个位置,因此您不需要使用".."
向上移动任何目录。
如果你想让用户每次运行程序时都能选择一张图片,我建议你查看uigetfile。如果您想了解更多关于MATLAB在哪里搜索文件的信息,请参阅本文。
其次,您可能需要检查您的文件名。虽然看起来很明显,但一个简单的拼写错误有时很难被注意到,例如"Pic1.jpg"与"Pic1,jpg"one_answers"Pic1.jpeg">
在发生错误的代码行的正上方,写一行新行:
dir
要在提示中输出当前文件夹的文件,并检查文件名是否准确显示在那里。你能把输出复制给我们吗?