Ошибка чтения файлов JPEG в Matlab - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь открыть изображения с помощью 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

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Изображение отсутствует в текущем каталоге (или пути)

Если ваше изображение находится в вашем рабочем каталоге, вы можете назвать его по имени ("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 ищет файлы, см. эту статью .


Во-вторых, вы можете проверить имя вашего файла. В то время как это кажется очевидным, иногда может быть трудно заметить простую орфографическую ошибку, например «Pic1.jpg» против «Pic1, jpg» против «Pic1.jpeg»

0 голосов
/ 06 ноября 2018

Чуть выше строки вашего кода, где происходит ошибка, напишите новую строку:

dir

Чтобы вывести в командной строке файлы текущей папки и убедиться, что там точно указано имя вашего файла. Не могли бы вы скопировать нам этот вывод?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...