您可以创建表示各种形状ROI的ROI对象,包括圆、椭圆、多边形、线、折线、矩形和手绘形状。你也可以徒手绘制得到“辅助”的图像,自动跟随边缘的轮廓。在这个图中,您可以看到一个多边形ROI绘制在图像上。
你可以控制ROI的位置和外观。可以从roi创建掩码,也可以执行其他操作。您还可以指定ROI如何响应ROI内发生的事件,例如鼠标点击和移动。
有三种方法可以创建ROI对象。
通过使用创建便利功能交互式地创建ROI。创建功能使您能够在图像上绘制ROI。如果您事先不知道ROI的大小和位置,并且希望使用图像内容来协助放置ROI,则可以使用此方法。有关更多信息,请参见使用创建便利功能创建ROI.
通过指定有关ROI的大小和形状的信息,以编程方式创建ROI。如果您已经知道ROI的大小和形状的细节,例如多边形顶点的坐标或圆的中心坐标和半径,则可以使用这种方法。
以编程方式创建ROI,然后使用画
函数,以交互方式在图像上绘制感兴趣区域。如果您想在指定ROI的大小和位置之前设置ROI的显示属性和行为,请使用此方法。的画
功能还允许您重新绘制现有ROI,以保留ROI的外观。有关更多信息,请参见使用绘制功能创建ROI.
该表显示了受支持的roi及其各自的创建便金宝app利函数。
ROI对象 | 创造ROI便利功能 | 描述 |
---|---|---|
AssistedFreehand |
drawassisted |
手绘感兴趣区域,捕捉图像中现有物体的边缘 |
圆 |
drawcircle |
圆形ROI |
十字 |
drawcrosshair |
由两条垂直线组成的线性ROI |
长方体 |
drawcuboid |
三维立方形的ROI |
椭圆 |
drawellipse |
椭球ROI |
徒手画的 |
drawfreehand |
跟随鼠标路径的徒手ROI |
行 |
画直线 |
由单个线段组成的线性ROI |
点 |
drawpoint |
点ROI |
多边形 |
drawpolygon |
由一组封闭的线段组成的多边形ROI |
多段线 |
drawpolyline |
由一组开放线段组成的折线ROI |
矩形 |
drawrectangle |
矩形ROI |
这个例子展示了如何使用ROI创建便利函数来创建ROI对象。这些功能使您能够通过在图像上绘制ROI以交互方式创建ROI对象。
读取并显示图像。
我= imread (“pears.png”);imshow(我)
这个例子创建了一个椭球ROI。您可以使用类似的流程来创建任何ROI对象。
创建一个椭圆
通过使用drawellipse
函数。通过指定StripeColor
名称-值对参数为黄色。
投资回报率= drawellipse (“StripeColor”,“y”);
检查ROI的属性。
roi
roi =带有属性的椭圆:Center: [446.0000 197.0000] SemiAxes: [115.8836 71.6200] RotationAngle: 298.3342 AspectRatio: 1.6180 Label: " Color: [0 0.4470 0.7410] Parent: [1×1 Axes] Visible: 'on' Selected: 0显示所有属性
画
函数这个例子展示了如何使用画
功能,以交互方式重新绘制现有的ROI。如果您希望在指定ROI的大小和位置之前设置ROI的显示属性和行为,则此方法非常有用。例如,您可能想要创建和定制一个ROI,然后才有一个用于显示ROI的坐标轴。
这个示例创建并绘制一个椭球ROI。您可以使用类似的流程来创建任何ROI对象。
创建一个椭圆
编程地使用ROIimages.roi.Ellipse
函数。指定自定义椭圆外观的属性。在这里,面颜色是青色,ROI的边界有红色条纹。不要指定ROI的位置。
投资回报率= images.roi.Ellipse (“颜色”,“c”,“StripeColor”,“r”);
检查ROI的属性。
roi
roi =带有属性的椭圆:Center: [] SemiAxes: [] RotationAngle: 0 AspectRatio: 1.6180标签:“显示所有属性
检查ROI的父轴。ROI未绘制,因此父轴为空。
roi。父
ans = 0×0空的GraphicsPlaceholder数组。
读取并显示图像。
我= imread (“pears.png”);imshow(我)
在图像上绘制感兴趣区域画
函数。在图像上单击并拖动光标可创建椭圆形状。显示的ROI具有创建ROI时指定的面颜色和条纹颜色。
画(roi)
检查ROI的属性。绘制完成后,对ROI的几个属性进行更新。
roi
roi =带有属性的椭圆:Center: [337 107.5000] SemiAxes: [109.3766 67.5985] RotationAngle: 42.2208 AspectRatio: 1.6180 Label: " Color: [0 1 1] Parent: [1×1 Axes] Visible: 'on' Selected: 0显示所有属性
ROI现在有了父轴。获取所有共享相同父轴的图形对象。在本例中,ROI与显示的图像具有相同的父级。
roi.Parent.Children
ans = 2×1图形数组:椭圆图像
你可以在App Designer创建的应用中使用ROIUIAxes
.在调用ROI创建函数时,必须显式指定UIAxes作为输入参数或使用“父”
名称/值对。以这种方式在应用中使用roi有一些限制:
当鼠标悬停在ROI上时,鼠标光标不会更新。光标总是一个箭头。
当您将鼠标悬停在ROI上时,它不会改变颜色。
ROI右键菜单(UIContextMenu
)不支持。金宝app
下面的代码,虽然不是一个典型的应用程序创建工作流,但展示了如何在UIAxes
在应用程序(UIFigure
).
创建一个UIAxes
.当你呼叫uiaxes
函数时,它创建UIFigure
自动。
uax = uiaxes;
创造ROIUIAxes
.调用任何ROI创建函数,例如drawcircle
,或ROI类,例如images.roi.Circle
.指定UIAxes
作为参数。将光标移至坐标轴上,单击并拖动鼠标绘制ROI。与控件一起使用时,光标的形状不会改变UIAxes
.
h = drawcircle (uax);
您还可以使用对象创建功能创建ROI,例如images.roi.Circle
.如果你使用对象,你必须使用画
功能来定义ROI的形状和位置。