通过图像中的多个ROI,我如何将ROI发送到后面

时间:2018-04-13 23:26:30

标签: dm-script

当我在图像中有多个ROI时,它们可以重叠,有时较小的ROI会在较大的ROI后面丢失。然而,其中一个是" top"另一个是下面的#34;"我有ROI的ID,但我错过了ROI_ID.ROISendToBack()或类似的命令。

有什么技巧吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

显示器上 ROI 的顺序不能是单个 ROI 的属性,但它是“包含”的东西的属性ROI 秒。这就是你在错误的地方搜索命令的原因。它不是 ROI 对象的命令,而是 ImageDisplay 对象的命令。

每个 ImageDisplay 都包含 ROI 的“列表”,您想要更改该列表中的顺序。

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

ROI order commands

没有“移动”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 )

Demo