主要内容

创建ROI的形状

您可以创建表示各种形状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

一条水平线和一条垂直线相交,形成十字瞄准ROI。

长方体 drawcuboid

三维立方形的ROI

在点云的三维区域上绘制蓝色长方体ROI。

椭圆 drawellipse

椭球ROI

蓝色椭圆在图像中圆形物体上绘制的感兴趣区域。

徒手画的 drawfreehand

跟随鼠标路径的徒手ROI

徒手跟踪图像中物体边缘的感兴趣区域。

画直线

由单个线段组成的线性ROI

蓝线画在图像中物体最宽的部分。

drawpoint

点ROI

蓝点是在图像中物体中心附近绘制的感兴趣区域。

多边形 drawpolygon

由一组封闭的线段组成的多边形ROI

蓝色多边形ROI, 10个顶点接近图像中物体的边界。

多段线 drawpolyline

由一组开放线段组成的折线ROI

用12条线段近似图像中物体边界的蓝色折线ROI。

矩形 drawrectangle

矩形ROI

蓝色矩形在图像中包含物体的感兴趣区域。

使用创建便利功能创建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。您可以使用类似的流程来创建任何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图形数组:椭圆图像

在应用设计师创建的应用中使用roi

你可以在App Designer创建的应用中使用ROIUIAxes.在调用ROI创建函数时,必须显式指定UIAxes作为输入参数或使用“父”名称/值对。以这种方式在应用中使用roi有一些限制:

  • 当鼠标悬停在ROI上时,鼠标光标不会更新。光标总是一个箭头。

  • 当您将鼠标悬停在ROI上时,它不会改变颜色。

  • ROI右键菜单(UIContextMenu)不支持。金宝app

下面的代码,虽然不是一个典型的应用程序创建工作流,但展示了如何在UIAxes在应用程序(UIFigure).

  1. 创建一个UIAxes.当你呼叫uiaxes函数时,它创建UIFigure自动。

    uax = uiaxes;

  2. 创造ROIUIAxes.调用任何ROI创建函数,例如drawcircle,或ROI类,例如images.roi.Circle.指定UIAxes作为参数。将光标移至坐标轴上,单击并拖动鼠标绘制ROI。与控件一起使用时,光标的形状不会改变UIAxes

    h = drawcircle (uax);

    您还可以使用对象创建功能创建ROI,例如images.roi.Circle.如果你使用对象,你必须使用功能来定义ROI的形状和位置。

相关的例子

更多关于