Существует общий метод хранения данных с вашим графическим интерфейсом для использования между обратными вызовами. Вы можете добавить произвольные поля к объекту дескрипторов, чтобы вы могли добавить обратный вызов pushbutton1
handles.filename = FileName;
guidata(hObject,handles);
Вторая строка представляет собой шаблонный код, который необходимо поместить в конце любого обратного вызова, который изменяет значения в структуре дескрипторов.
Теперь все ваши обратные вызовы будут иметь доступ к имени файла. В вашем конкретном случае, в обратном вызове 2, вы бы получили
img = imread(handles.filename);
Конечно, вы, возможно, захотите использовать это изображение позже в другой функции, так что вы можете сохранить его и в дескрипторах
handles.img = img;
guidata(hObject, handles);