主要内容

imscrollpanel.

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

描述

使用imscrollpanel.功能将滚动面板添加到图像。如果尺寸或放大率使图像太大以在屏幕上的图中显示,则滚动面板以100%放大率显示图像的一部分(一个屏幕像素表示一个图像像素)。滚动面板添加水平和垂直滚动条以在图像周围启用导航。

例子

HPanel.= imscrollpanel(HPARENT.优秀创建包含目标图像的滚动面板(要导航的图像)。优秀是目标图像的句柄。HPARENT.是图形或UIPanel的句柄,它将包含滚动面板。函数返回HPanel.,滚动面板的句柄。

例子

全部收缩

在图中显示图像。该示例抑制了图形窗口中的标准工具栏和菜单管,因为这些不适用于滚动面板。

hfig = figure('工具栏''没有任何'......'菜单栏''没有任何');他= imshow('saturn.png');

创建滚动面板以包含图像。

hsp = imscrollpanel(hfig,他);设置(HSP,'单位''标准化''位置',[0 .1 1 .9])

添加一个放大框和图形的概述工具。

hmagbox = Immagbox(HFIG,他);pos = get(hmagbox,'位置');设置(hmagbox,'位置',[0 0 POS(3)POS(4)])IMOVERVIEW(他)

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

API = IPTGETAPI(HSP);

获取当前的放大和位置。

mag = api.getmagnification()r = api.getvisibleImagerect()
mag = 1 r = 125.0072 201.5646 716.0000 709.0000

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

api.setvisibleLocation(0.5,0.5)

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

api.setmagnification(api.findfitmag()))

在黑暗点放大到1600%。

api.setmagnificationandender(16,306,800)

输入参数

全部收缩

掌握包含滚动面板的图形或UIPanel对象,指定为句柄。

处理目标图像,指定为句柄。

输出参数

全部收缩

握手滚动面板,作为句柄返回。滚动面板是一种UIPanel对象。

更多关于

全部收缩

滚动面板API结构

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

API = IPTGETAPI(HPANEL)

此表列出了滚动面板API函数,按照结构中显示的顺序。

功能

描述

setMagnification.

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

mag = api.setmagnification(new_mag)

new_mag.是标量放大因子。

GetMagnification.

以每个图像像素为单位返回目标图像的当前放大因子。

mag = api.getmagnification()

到100转换为百分比。例如,如果2,倍率为200%。

setmagnificationandcenter.

改变放大率并用(Xy) 协调 (CX.CY.)在目标图像中出现在滚动面板的中心。此操作相当于同时缩放和垂度。

api.setmagnificationandender(mag,cx,cy)

findfitmag.

返回将使目标图像恰好适合滚动面板的放大因子。

mag = api.findfitmag()

setvisiblelelocation.

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

api.setvisiblelocation(xmin,ymin)api.setvisiblelocation([xmin ymin])

getVisiblelocation.

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

loc = api.getvisiblelocation()

座垫是矢量[xmin ymin]

getVisibleImagerect.

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

r = api.getvisibleImagerect()

R.是一个矩形[xmin ymin宽度]

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.

替换

API.ReplaceImage(...,Param1,Val1,Param2,Val2,...)替换滚动面板中显示的图像。

api.replaceImage(i)api.replaceImage(bw)api.replaceImage(rgb)api.replaceImage(i,map)api.replaceImage(文件名)

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

您可以指定的参数包括支持的许多参数金宝appimshow., 包含'colormap''displayrange', 和'InitialMagnification'。另外,你可以使用'preserveview'参数在更换期间保持图像的当前放大和居中。指定逻辑标量真的保持当前的定心和放大。

提示

  • imscrollpanel.更改目标图像的对象层次结构。而不是熟悉的图形→轴→图像对象层次结构,imscrollpanel.在图和轴对象之间插入多个UIPANEL和UICONTROL对象。

  • 滚动条导航如imscrollpanel.与默认Matlab不兼容®图导航按钮(平移,放大,缩小)。应在自定义GUI中删除相应的菜单项和工具栏按钮,其中包含由滚动的UIPanel创建imscrollpanel.

  • 当你运行时imscrollpanel.,它似乎接管了整个数字,因为默认情况下,uipanel对象具有'单位'设置'标准化''位置'设置[0 0 1 1]。如果你想看到其他孩子HPARENT.在使用新滚动面板时,必须手动设置'位置'财产HPanel.

在R2006A之前介绍