С несколькими областями интереса на изображении, как я могу отправить область интереса к спине

Когда у меня есть несколько областей интереса на изображении, они могут перекрываться, и иногда меньшая из них теряется за более крупной. Однако один из них находится "сверху", а другой - "снизу". У меня есть идентификатор ROI, но мне не хватает команды ROI_ID.ROISendToBack() или аналогичной.

Любой трюк доступен? Спасибо!

1 ответ

Решение

Порядок ROI на дисплее не может быть свойством отдельной ROI, но это свойство вещи, "содержащей" ROI. Вот почему вы ищете команду не в том месте. Это не команда объекта ROI, а объект ImageDisplay.

Каждый ImageDisplay содержит "список" своих ROI, и вы хотите изменить порядок в этом списке.

Команды для определения "порядка" 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 )

демонстрация

Другие вопросы по тегам