Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Default Registration Parameters and using BoundaryContinuityConstraint #17

Open
mfizyczka opened this issue Feb 21, 2022 · 1 comment
Open

Comments

@mfizyczka
Copy link

I wonder what are default registration parameters used in Velocity Application? Are they different from those given as default parameters in API manual? How can I check values of parameters used to create registration in Velocity Application?

I tried creating the same registrations in Application and with API and I get different results (while comparing propagated structures).

I also see surprising behavior while using ApplyBoundaryContinuityConstraint.
In Velocity Application if I use whole ROI (so overlap region), I get exactly the same result with and without this constraint.
However results obtained in API are different (I'm changing only this parameter) from each other and from those obtain in Velocity Application.

@mfizyczka
Copy link
Author

I used two different methods to obtain default settings (see code below), they give different results. And the result is also different from just using "Deformable Multi Pass" in GUI.

# DEFAULT REGISTRATION SETTINGS
deformableDefaultRegistrationSettings = velocity.DefaultBSplineDeformableRegistrationSettings()
# create registration and perform registration:
registrationName = 'apiDefRSettings'
registration = regOps.createNewRegistration(registrationName)
orThrow(registration, regOps)
orThrow(engine.loadRegistration(registration.getVelocityId()))
orThrow(regOps.performBsplineRegistrationDICOM(deformableDefaultRegistrationSettings), regOps)
registration = regOps.saveRegistration()
orThrow(registration, regOps)
# create a new structure set on the primary volume:
targetSetName = registrationName
targetSet = strOps.createStructureSet(targetSetName, True)
orThrow(targetSet, strOps)
# propagate structures:
orThrow(strOps.copyStructuresToPrimary([ctv5425.getVelocityId(), ctv7000.getVelocityId()], targetSet.getVelocityId()), strOps)
# save set:
orThrow(strOps.saveStructureSet(targetSet.getVelocityId()), strOps)

# DEFINE (MP) DEFORMABLE REGISTRATION SETTINGS
deformableRegistrationSettings = velocity.BSplineDeformableRegistrationSettingsStructure()
orThrow(regOps.performBsplineRegistrationDICOM(deformableRegistrationSettings), regOps)
registration = regOps.saveRegistration()
orThrow(registration, regOps)
# create a new structure set on the primary volume:
targetSetName = registrationName
targetSet = strOps.createStructureSet(targetSetName, True)
orThrow(targetSet, strOps)
# propagate structures:
orThrow(strOps.copyStructuresToPrimary([ctv5425.getVelocityId(), ctv7000.getVelocityId()], targetSet.getVelocityId()), strOps)
# save set:
orThrow(strOps.saveStructureSet(targetSet.getVelocityId()), strOps)

DifferentResult

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant