gpt4 book ai didi

MATLAB 在图形上添加 slider

转载 作者:行者123 更新时间:2023-12-05 04:17:39 30 4
gpt4 key购买 nike

我有一个 576x576x150 矩阵。每个 576x576 集代表一个图像。当我想绘制一帧时,我使用绘图命令来完成:

figure(1);
imshow(B(:,:,45),[]) % plots frame 45
title('45') % tells frame number

但是我想在绘图中添加一个 slider ,这样我就可以在图中的 1-150 帧之间移动。我见过有人使用 uicontrol 的示例,但我不知道如何编写代码。除此之外,我想在图的顶部有一个标题,告诉我帧数。

最佳答案

这是我的做法。我喜欢保留一个函数来进行绘图,这样您就不会在其他地方重复使用命令。您可以将前两行替换为 function test(B) 以使用您自己的 B 矩阵。这段代码很容易扩展。您还需要根据自己的目的调整布局。

function test
B=rand(576,576,150);

fig=figure(100);
set(fig,'Name','Image','Toolbar','figure',...
'NumberTitle','off')
% Create an axes to plot in
axes('Position',[.15 .05 .7 .9]);
% sliders for epsilon and lambda
slider1_handle=uicontrol(fig,'Style','slider','Max',150,'Min',1,...
'Value',2,'SliderStep',[1/(150-1) 10/(150-1)],...
'Units','normalized','Position',[.02 .02 .14 .05]);
uicontrol(fig,'Style','text','Units','normalized','Position',[.02 .07 .14 .04],...
'String','Choose frame');
% Set up callbacks
vars=struct('slider1_handle',slider1_handle,'B',B);
set(slider1_handle,'Callback',{@slider1_callback,vars});
plotterfcn(vars)
% End of main file

% Callback subfunctions to support UI actions
function slider1_callback(~,~,vars)
% Run slider1 which controls value of epsilon
plotterfcn(vars)

function plotterfcn(vars)
% Plots the image
imshow(vars.B(:,:,get(vars.slider1_handle,'Value')));
title(num2str(get(vars.slider1_handle,'Value')));

关于MATLAB 在图形上添加 slider ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21272559/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com