【问题标题】:With several ROIs in an image, how can I send the ROI to the back图像中有多个 ROI,如何将 ROI 发送到后面
【发布时间】:2018-04-13 23:26:29
【问题描述】:

当我在图像中有多个 ROI 时,它们可能会重叠,有时较小的 ROI 会在较大的后面丢失。但是,其中一个在“顶部”,另一个在“下方”。我有 ROI 的 ID,但我缺少命令 ROI_ID.ROISendToBack() 或类似命令。

有什么技巧吗? 谢谢!

【问题讨论】:

    标签: dm-script


    【解决方案1】:

    显示器上 ROI 的顺序不能是单个 ROI 的属性,而是“包含” 的事物的属性投资回报率。这就是您在错误位置搜索命令的原因。它不是 ROI 对象的命令,而是 ImageDisplay 对象的命令。

    每个 ImageDisplay 都包含一个其 ROI 的“列表”,您希望更改该列表中的顺序。

    ImageDisplay上指定ROI的“顺序”的命令是

    没有“移动”ROI 的命令,但您可以简单地删除并重新添加它。

    image img := RealImage( "Dummy",4, 350, 350)
    img = iradius
    img.ShowImage()
    imageDisplay disp = img.ImageGetImageDisplay(0)
    
    ROI roi1 = NewROI()
    roi1.ROISetRectangle( 100, 100, 200, 200 )
    roi1.ROISetVolatile(0)
    roi1.ROISetColor(1,0,0)
    roi1.ROISetDrawFilled(1)
    roi1.ROISetFillProperties(0.2,0.1,0,0)
    
    ROI roi2 = NewROI()
    roi2.ROISetRectangle( 125, 125, 225, 225 )
    roi2.ROISetVolatile(0)
    roi2.ROISetColor(0,1,0)
    roi2.ROISetDrawFilled(1)
    roi2.ROISetFillProperties(0.2,0,0.1,0)
    
    ROI roi3 = NewROI()
    roi3.ROISetRectangle( 150, 150, 250, 250 )
    roi3.ROISetVolatile(0)
    roi3.ROISetColor(0,0,1)
    roi3.ROISetDrawFilled(1)
    roi3.ROISetFillProperties(0.2,0,0,0.1)
    
    disp.ImageDisplayAddROI( roi1 )
    disp.ImageDisplayAddROI( roi2 )
    disp.ImageDisplayAddROI( roi3 )
    
    OKDialog( "Now send blue to the bottom" )
    disp.ImageDisplayDeleteROI( roi3 )
    disp.ImageDisplayAddROIAtBeginning( roi3 )
    
    OKDialog( "Now send red to front" )
    disp.ImageDisplayDeleteROI( roi1 )
    disp.ImageDisplayAddROIAtEnd( roi1 )
    

    【讨论】:

    • 顺便说一句,在更高版本的 GMS 的 F1 帮助文档中有一个关于 ROI 排序的示例。 (部分:“示例脚本/ROI”--> ROI 属性-->“更改显示器上 ROI 的 z 顺序)
    猜你喜欢
    • 1970-01-01
    • 2016-08-18
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    • 1970-01-01
    • 2019-07-17
    相关资源
    最近更新 更多