Hello, I am trying to programmatically change the scaling of an imgae on a uifigure by using a slider
fig = uifigure('Name','Montage'); fig.Position = [300 500 1200 400]; g = uigridlayout(fig); g.RowHeight = {'2x','2x','1x'}; g.ColumnWidth = {'1x'}; ax1 = uiaxes(g); ax1.Layout.Row = [1 2]; ax1.Layout.Column = 1; sld1=uislider(g,'ValueChanged',@(sld1,event) updateImage(event,ax1,sld1)); %Need to palso pass ax1 I think
sld1.Layout.Row = [3]; sld1.Layout.Column = 1; mx=double(max(Image2(:))); sld1.Limits = [1 mx]; v=min(mx,round(hi)); sld1.Value=double(v) imshow(Image2,[lo hi],'Parent',ax1);
Where
function results = updateImage(event,ax1,sld1) value=sld1.Value ax1.CLim=[0 max(1,value)];
But this leads to the error:
Check for missing argument or incorrect argument data type in call to function 'updateImage'.Error in PhotonControl>@(sld1,event)updateImage(event,ax1,sld1) (line 2398) sld1=uislider(g,'ValueChanged',@(sld1,event) updateImage(event,ax1,sld1)); Error using matlab.ui.control.internal.controller.ComponentController/executeUserCallback (line 429)Error while evaluating Slider PrivateValueChangedFcn.
Best Answer