无法在Matlab中读取jpeg文件

时间:2018-11-06 06:04:50

标签: matlab

我正在尝试打开带有未读图像,但是它告诉我文件不存在。

这是命令窗口中的消息

   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

2 个答案:

答案 0 :(得分:2)

图片不在当前目录(或路径)中

如果图像位于工作目录中,则可以通过其名称(“ Pic1.jpg”)对其进行命名。但是,MATLAB不会搜索计算机上的所有文件夹。例如,如果您的程序在C:\Users\user\Documents\MATLAB中运行,并且图像在C:\Users\user\Pictures中,则可以使用以下图片引用图片:

  1. 绝对路径("C:\Users\user\Pictures\Pic1.jpg"
  2. 相对路径("..\..\Pictures\Pic1.jpg"

通常,如果图片仅由于您的程序而存在,则图片将位于同一目录中,因此您无需使用".."来向上移动任何目录。

如果希望用户每次运行该程序都能选择图片,建议您查看uigetfile。如果您想进一步了解MATLAB在哪里搜索文件,请参见this article


其次,您可能要检查文件名。尽管看起来很明显,但有时有时很难注意到一个简单的拼写错误,例如“ Pic1.jpg”与“ Pic1,jpg”与“ Pic1.jpeg”

答案 1 :(得分:0)

在发生错误的代码行上方,写新行:

dir

要在提示符下输出当前文件夹的文件,并检查文件名是否正确显示在该位置。您能复制我们的输出吗?