主要内容

用交互式roi探索阻塞图像细节

这个示例演示了如何使用ROI工具交互式地显示选定的块图像的详细区域。

bigimageshow显示blockedImage对象。如果blockedImage对象有多个级别bigimageshow根据屏幕大小和视图端口自动选择适当的级别。bigimageshow总是在一个单一的“世界坐标”中工作,并基于其空间参考信息显示每个级别。这允许两个相同的显示blockedImage对象在不同的层次上显示图像细节,但共享相同的坐标系统。

创建一个blockedImage使用CAMELYON16数据集中经过修改的图像“tumor_091.tif”。原始图像是包含肿瘤组织的淋巴结的训练图像。原始图像有8个分辨率等级,最好的等级分辨率为53760 × 61440。修改后的图像只有三个粗分辨率。修改后的图像的空间参考已经被调整,以加强一致的宽高比,并在每一层配准特征。

bim = blockedImage (“tumor_091R.tif”);

显示概述图像和详细视图

控件在图形窗口的左侧显示整个大图像bigimageshow函数。显示概述的分辨率级别自动改变,取决于窗口的大小和屏幕的大小。

高频=图;haOView =情节(1、2、1);haOView。标签=“概述”;hl = bigimageshow(荡妇,“父”, haOView);

修正概述图像的分辨率级别为最粗糙的分辨率级别。

coarsestLevel = bim.NumLevels;霍奇金淋巴瘤。ResolutionLevel = coarsestLevel;标题(“概述”);

在图形窗口的右侧显示大图像的详细视图。允许bigimageshow自动管理细节图像的级别。

haDetailView =情节(1、2、2);haDetailView。标签=“DetailView”;hr = bigimageshow(荡妇,“父”, haDetailView);

放大到详细视图。

xlim((2800、3050))ylim([500750])标题(“详细视图”);

在控制显示视图中添加交互式矩形ROI

在概览图中,绘制一个矩形ROI。属性指定矩形的初始大小和位置位置属性为形式为[xmin,ymin,width,height]的四个元素向量。当ROI出现在概览中后,您可以交互式地调整ROI的大小和位置。

xrange = xlim;yrange = ylim;roiPosition = [xrange(1) yrange(1) xrange(2)-xrange(1) yrange(2)-yrange(1)];hrOView = drawrectangle (haOView,“位置”roiPosition,“颜色”“r”);

保存矩形的句柄,以便在定义矩形和细节视图之间的交互时使用。

hrOView.UserData.haDetailView = haDetailView;haDetailView.UserData.hrOView = hrOView;

向详细视图添加侦听器。这些侦听器检测细节视图的空间范围的变化。当空间区段发生变化时,侦听器调用updateOverviewROI助手函数,它更新ROI的范围以与详细视图的范围匹配。helper函数在本例的最后定义。

addlistener (haDetailView,“XLim”“PostSet”, @updateOverviewROI);addlistener (haDetailView,“YLim”“PostSet”, @updateOverviewROI);

在矩形ROI中添加一个监听器。这些监听器检测矩形空间范围的变化。当限制改变时,监听器调用updateOverViewROI辅助函数,更新细节图像的范围以匹配感兴趣区域的范围。helper函数在本例的最后定义。

addlistener (hrOView,“MovingROI”, @updateDetailView);

您现在可以交互式地更改矩形ROI的大小和位置,以调整显示视图。类似地,当您放大和平移细节视图时,ROI的大小和位置也会更新。

此示例通过编程方式更改ROI的大小和位置位置财产。

hrOView。位置=(2230、1300、980840);evt。CurrentPosition = hrOView.Position;updateDetailView (hrOView evt);

定义回调函数来控制交互

函数hEvt updateOverviewROI (~)%更新概述矩形的位置,无论何时右侧%全景/缩放。哈= hEvt.AffectedObject;hr = hEvt.AffectedObject.UserData.hrOView;人力资源。位置= [ha.XLim (1) ha.YLim (1) diff (ha.XLim) diff (ha.YLim)];结束函数updateDetailView (hSrc hEvt)%随时更新右侧的详细视图概述矩形%感动。Bigimageshow会自动选择合适的图像级别。哈= hSrc.UserData.haDetailView;哈哈。XLim = [hEvt.CurrentPosition (1),...hEvt.CurrentPosition (1) + hEvt.CurrentPosition (3)];哈哈。YLim = [hEvt.CurrentPosition (2),...hEvt.CurrentPosition hEvt.CurrentPosition (2) + (4)];结束

另请参阅

|