我想在两个图像之间来回切换,比如闪烁:第一个图像为1秒,第二个图像为1秒。
答案 0 :(得分:6)
我不完全确定你想做什么(特别是你想要显示的图像类型),但这里有一些示例代码可以做你想要的:
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,但这有时会改变图形/轴的其他属性,这可能不符合您的喜好(因为您提到将其添加到现有GUI)。您可能希望使用IMAGE功能。此外,代替for循环,您可以使用while循环,在满足条件时停止切换图像(例如按下按钮)。
答案 1 :(得分:2)
你的图像如何存储在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
就是这样。