Imshow在应用程序设计师(图片大小不适合)

176(30天)
嘿,伙计们,
imshow的大小应用设计师不合身,当我启动应用程序(请参阅下面的图片和代码)。它是可能的,图片有相同大小的UiAxes程序设计师?
函数startupFcn(应用)
imshow (“flower”jpg,“父”app.UIAxes)
结束
非常感谢你的帮助。Erdal问好
1评论
Varun Gunda
Varun Gunda 2017年10月16日
你能分享更多的信息你想做什么?原因还不清楚。
可能是这段代码可以帮助您在显示你正在寻找的形象:
RGB = imread (“flower”jpg);
ax = uiaxes (app.UIFigure“位置”,(10 390 390));
图像(RGB,“父”、ax);
集(ax,“可见”,“关闭”);
同时,检查的尺寸在应用“flower”jpg,得到反映。

登录置评。

接受的答案

邓肯Lilley
邓肯Lilley 2017年10月18日
你好,
从我的理解你的问题,你想显示一个图像,将整个空间内的图在一个应用设计师应用。考虑下面的代码:
%填图用斧子和去除蜱虫标签
app.UIAxes。位置= [0 0 app.UIFigure.Position (3:4)];
%删除标题、轴标签和标记标签
标题(应用程序。UIAxes, []);
包含(应用程序。UIAxes, []);
ylabel(应用程序。UIAxes, []);
app.UIAxes.XAxis。TickLabels = {};
app.UIAxes.YAxis。TickLabels = {};
%显示图象和拉伸轴
我= imshow (“flower”jpg,“父”app.UIAxes,
“XData”,[1 app.UIAxes.Position (3)),
“YData”[1 app.UIAxes.Position (4)]);
%设置轴的极限
app.UIAxes。XLim = [0 I.XData (2)];
app.UIAxes。YLim = [0 I.YData (2)];
这种编程方式调整和复位轴充满整个图窗口。然后它消除了轴标题以及轴标签和标记标签为每个轴,使轴图尽可能填满。
然后,图像显示,指示伸展填补轴通过设置“XData”和“YData”属性。
最后,轴的极限,没有额外的空间填充的图像。
而不是填满整个图,如果你只是想填满整个轴图像,你应该能够删除第一行。
3评论
丹尼尔·迪金森
丹尼尔·迪金森 2021年2月23日
@Duncan Lilley 谢谢你的回答,你帮我弄清楚如何让我的代码工作。
然而,我不相信你上面贴的是完全正确的。在R2020a,调用 imshow 似乎重置TickLabels轴的属性。也就是说,尽管我有设置标签 {} 在调用之前 imshow 调用后,重置为默认值,所以图像仍然不能填满整个可用空间。
这段代码在R2020a为我工作:
%删除标题和轴标签
标题(应用程序。UIAxes, []);
包含(应用程序。UIAxes, []);
ylabel(应用程序。UIAxes, []);
%显示图象和拉伸轴
我= imshow (“flower”jpg,“父”app.UIAxes,
“XData”,[1 app.UIAxes.Position (3)),
“YData”[1 app.UIAxes.Position (4)]);
%去除蜱虫标签
app.UIAxes.XAxis。TickLabels = {};
app.UIAxes.YAxis。TickLabels = {};
%设置轴的极限
app.UIAxes。XLim = [0 I.XData (2)];
app.UIAxes。YLim = [0 I.YData (2)];
谁能帮助我了解为什么imshow重置蜱虫标签,如果有一个选项来阻止它这样做吗?

登录置评。

更多的答案(3)

梅林达Toth-Zubairi
梅林达Toth-Zubairi 2019年3月26日
如果你的目标仅仅是显示静态图像,开始R2019a可以使用 用户界面图像 函数来创建一个图像组件在应用程序设计应用程序。
有关更多信息,请参见以下相关的回答:
3评论
弗朗西斯·伯顿
弗朗西斯·伯顿 2021年3月7日
它不可能捕获鼠标事件在应用程序用户界面图像设计师应用,所以里面点击和拖动图像——例如画一个橡皮筋框选择图像的点,目前是不可能的。WindowButtonDownFcn事件被截获/过滤当鼠标在图像。
所以必须使用UIAxes代替。这并不截获鼠标事件在应用程序图窗口。然而,绘制图像使用imshow仍problemmatic我发现,使用上面的代码。设置的大小(以像素为单位)轴的形象并不导致一对一的像素对应即。truesize行为。仍有边框的图像本身,尽管一个狭窄。
也有性能问题与UIAxes相比(UI)的形象。改变形象和刷新显示与imshow vs设置Image.ImageSource似乎要慢一些。

登录置评。


Erdal Schranz
Erdal Schranz 2017年10月17日
亲爱的Varun,
谢谢你的回答。我也试过代码,但它不工作。这是一个新的图片,应该更好地解释这个问题。
设计视图:
运行应用程序:
花的图片不适合uiAxes的框架。它是可能的,整个帧的图像自动调整,所以没有灰色的背景是可见的。
Erdal问好

Erdal Schranz
Erdal Schranz 2017年10月20日
亲爱的邓肯,
谢谢你的回答。这种方法效果很好:-)
Erdal问好

类别

找到更多的在使用应用程序开发应用程序设计师帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!