图像中有多个 ROI,如何将 ROI 发送到后面

With several ROIs in an image, how can I send the ROI to the back

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

有什么技巧吗? 谢谢!

显示器上ROI的顺序不能是单个ROI的属性,而是事物 'containing' 的 属性 ROI。这就是为什么你在错误的地方搜索命令。它不是 ROI 对象的命令,而是 ImageDisplay 对象的命令。

每个 ImageDisplay 包含其 ROI 的 "list",并且您想更改该列表中的顺序。

ImageDisplay 上指定 ROI 的 "order" 的命令是

没有 "move" 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 )