Matlab App Designer中UIAxes加载图像后坐标轴刻度消失问题求解
Matlab App Designer UIAxes加载图像后刻度消失的解决方案
问题原因
imshow函数默认执行时会主动隐藏父坐标轴的刻度、标签和边框,该默认行为会覆盖UIAxes组件的初始显示设置,就会出现如下截图中的刻度消失现象:
解决方法
方法1:调用
imshow后手动开启坐标轴显示
执行完图像加载代码后,新增一行坐标轴显示控制代码即可:% 原有加载图像的代码 imshow(yourImage, 'Parent', app.UIAxes); % 新增代码恢复刻度显示 axis(app.UIAxes, 'on');如果需要同时保留坐标轴的原有比例设置,可以改为使用
axis(app.UIAxes, 'image on')。方法2:直接修改UIAxes的显式属性
要是只需要显示刻度、不需要显示坐标轴标签或者边框,可以单独设置对应属性:imshow(yourImage, 'Parent', app.UIAxes); app.UIAxes.XTickVisible = 'on'; app.UIAxes.YTickVisible = 'on'; % 可选:显示边框 app.UIAxes.Box = 'on';方法3:加载图像前锁定坐标轴设置
如果你需要多次切换加载的图像,不想每次都重复设置,可以在第一次加载图像前先开启hold状态,避免imshow重置坐标轴属性:% 可放在App的StartupFcn启动回调中执行一次 hold(app.UIAxes, 'on');
内容的提问来源于stack exchange,提问作者AsiJapan
相关产品推荐
相关产品推荐

