Как добавить изображение в MATLAB GUI? - PullRequest
5 голосов
/ 29 июня 2009

Я хочу переключаться между двумя изображениями, например мигать: 1 секунда для первого изображения и одна секунда для второго изображения.

Ответы [ 2 ]

6 голосов
/ 29 июня 2009

Я не совсем уверен, что вы хотите сделать (в частности, какой тип изображений вы пытаетесь отобразить), но вот пример кода, который может делать то, что вы хотите:

image1 = imread('cameraman.tif');  % Load a test image
image2 = imread('circles.png');    % Load another test image

hAxes = gca;  % Get a handle to the current axes

for iLoop = 1:5,  % Loop five times
  imshow(image1,'Parent',hAxes);
  pause(1);
  imshow(image2,'Parent',hAxes);
  pause(1);
end

Я использовал общую функцию IMSHOW , но это иногда меняет другие свойства фигуры / осей, и это может быть вам не по вкусу (так как вы упоминаете добавление этого в существующий графический интерфейс). Вместо этого вы можете использовать функцию IMAGE . Кроме того, вместо цикла for можно использовать цикл while, который останавливает переключение изображений при выполнении условия (например, нажатие кнопки).

2 голосов
/ 29 июня 2009

Как ваши изображения хранятся в Matlab? Как Matlab фильм или 3 или 4-мерная матрица в зависимости от того, являются ли изображения цветными или в оттенках серого. Кроме того, если у вас есть набор инструментов для обработки изображений, implay и immovie. Другой вариант, предполагающий, что ваши изображения имеют матрицу mxnx3xk (цвет rgb) или mxnxk (шкала серого). Тогда следующее должно работать. Предполагая следующее

  • Img - матрица, в которой хранятся данные изображения либо с размерами mxnx3xk или mxnxk

  • handles.imageAxes - ручка для оси, которую вы хотите отобразить изображение (установить тег ось к изображениюОси в РУКОВОДСТВЕ)

Теперь вы можете просмотреть Img

for i=1:k
    % display the i^th image use `Img(:,:,i)` for a gray scale stack
    image(Img(:,:,:,i),'parent',handles.imageAxes);
    pause(1) % pause one second
end

вот и все.

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