文档

imscrollpanel

滚动面板的交互式图像导航

语法

Hpanel = imscrollpanel(hparent, himage)

描述

Hpanel = imscrollpanel(hparent, himage)创建包含目标图像(要导航的图像)的滚动面板。himage目标图像的句柄。hparent将包含新滚动面板的图形或uipanel的句柄。函数返回hpanel,滚动面板的句柄,它是一个uipanel对象。

滚动面板使图像可滚动。如果尺寸或放大倍率使图像过大,无法在屏幕上以图形形式显示,滚动面板将以100%放大倍率显示图像的一部分(一个屏幕像素表示一个图像像素)。滚动面板添加了水平和垂直滚动条,以支持在图像周围导航。

imscrollpanel更改目标图像的对象层次结构。不是我们熟悉的>轴->图像对象层次结构,imscrollpanel在图形和axis对象之间插入几个uipanel和uicontrol对象。

API函数

滚动面板包含一个函数句柄结构,称为API。您可以使用此API中的函数来操作滚动面板。要检索此结构,请使用iptgetapi函数,如下例所示。

API = iptgetapi(hpanel)

这个表列出了滚动面板API函数,按照它们在结构中出现的顺序。

函数

描述

setMagnification

以每个图像像素的屏幕像素为单位设置目标图像的放大倍数。

mag = api.setMagnification(new_mag)

在哪里new_mag是标量放大系数。

getMagnification

返回目标图像的当前放大系数,单位为每个图像像素的屏幕像素。

mag = api.getMagnification()

玛格用100换算成百分比。例如,如果杂志= 2,放大倍数为200%。

setMagnificationAndCenter

改变放大倍率,使点残雪,cy在目标图像的中心出现滚动面板。这个操作相当于同时缩放和中心化。

api.setMagnificationAndCenter(杂志、残雪、cy)

findFitMag

返回使目标图像刚好适合滚动面板的放大系数。

mag = api.findFitMag()

setVisibleLocation

移动目标图像,使指定的位置可见。滚动条更新。

api。setVisibleLocation(xmin, ymin) api。setVisibleLocation ([xmin ymin])

getVisibleLocation

返回目标图像当前可见部分的位置。

loc = api.getVisibleLocation()

在哪里疯狂的是向量[xmin ymin]

getVisibleImageRect

返回图像的当前可见部分。

r = api. getvisibleimag勃起()

在哪里r是矩形[xmin ymin width height]

addNewMagnificationCallback

添加函数句柄fcn到新放大回调函数的列表。

id = api.addNewMagnificationCallback(fcn)

每当滚动面板的放大倍数发生变化时,列表中的每个函数都会使用以下语法调用:

fcn (mag)

在哪里玛格是标量放大系数。

返回值,id,只能与removeNewMagnificationCallback

removeNewMagnificationCallback

从新放大回调列表中移除相应的函数。

api.removeNewMagnificationCallback (id)

在哪里id返回的标识符是addNewMagnificationCallback

addNewLocationCallback

添加函数句柄fcn到新位置回调函数的列表。

id = api.addNewLocationCallback(fcn)

每当滚动面板位置改变时,列表中的每个函数都会使用以下语法调用:

fcn (loc)

在哪里疯狂的[xmin ymin]

返回值,id,只能与removeNewLocationCallback

removeNewLocationCallback

从新位置回调列表中移除相应的函数。

api.removeNewLocationCallback (id)

在哪里id返回的标识符是addNewLocationCallback

replaceImage

api.replaceImage (VAL1,…,PARAM1 PARAM2,
VAL2,…)
替换滚动面板中显示的图像。

api.replaceImage(I) api.replaceImage(BW) api.replaceImage(RGB) api.replaceImage(I,MAP) api.replaceImage(filename)

默认情况下,新的图像数据以100%的放大倍率居中显示。图像句柄不变。

所支持的许多参数都可以指定万博1manbetximshow,包括“Colormap”“DisplayRange”,“InitialMagnification”.此外,您还可以使用“PreserveView”参数,以在替换期间保留当前的放大倍率和图像的居中。指定逻辑标量真正的保持电流定心和放大倍率。参数名可以缩写,大小写无关紧要。

请注意

提供的滚动条导航imscrollpanel与默认的MATLAB不兼容®图导航按钮(平移,放大,缩小)。对应的菜单项和工具栏按钮应该在自定义GUI中删除,其中包括由创建的可滚动ui面板imscrollpanel

当你奔跑imscrollpanel,它似乎接管了整个图形,因为在默认情况下,hpanel对象已经接管了“单位”设置为“归一化”而且“位置”设置为[0 0 1 1].如果你想看其他孩子的hparent在使用新的滚动面板时,必须手动设置“位置”的属性hpanel

例子

全部折叠

在图形中显示图像。本例在图形窗口中取消了标准工具栏和菜单栏,因为它们不能与滚动面板一起使用。

hFig = figure(“工具栏”“没有”...菜单条的“没有”);he = imshow(“saturn.png”);

创建一个滚动面板来包含图像。

hSP = imscrollpanel(hFig,hIm);集(hSP,“单位”“归一化”...“位置”,[0.1 1 .9])

向图中添加一个放大框和一个概述工具。

hMagBox = immagbox(hFig,hIm);pos = get(hMagBox,“位置”);集(hMagBox,“位置”,[0 0 pos(3) pos(4)])

获取滚动面板API,以便以编程方式控制视图。

api = iptgetapi(hSP);

获取当前放大倍率和位置。

mag = api.getMagnification() r = api. getvisibleimag勃起()
Mag = 1 r = 125.0072 201.5646 716.0000 709.0000

使用滚动面板对象API函数setVisibleLocation查看图像的左上角。

api.setVisibleLocation (0.5, 0.5)

更改图像的放大倍率,使图像完全适合滚动面板。在下图中,请注意滚动条不再可见。

api.setMagnification (api.findFitMag ())

将黑点放大到1600%。

api.setMagnificationAndCenter (16306800)

R2006a之前介绍

这个话题有用吗?