Comments (7)
FixedImagePyramid
should be FixedImageSmoothingPyramid for best results (unless memory is really and issue).AutomaticTransformInitialization
should betrue
for rigid andfalse
for affine and bspline.250
number of iterations is also on the low side. If speed is really an issue, 250 is fine, but if you can afford it use at least512
.- Depending on the problem you might want to use at least
3
resolutions. Some places you use2
which is on the low side. ImageSampler
should beRandomSparseMask
if users use masks. Otherwise it is fine.- If you use a
BSplineInterplationOrder
of 1 you might as well useLinearInterpolator
which produces the same results but is faster.
Otherwise it looks good!
from elastix.
OK great! One comment:
We use external application-specific initializer [...]
OK, then make sure to set AutomaticTransformInitialization to "false" for all parameter maps. It was true for the first one, which will discard your custom initialization.
from elastix.
@Kmacneil0102 can you please update the configuration as suggested above before running the experiments?
from elastix.
Sure I can take a look @fedorov, but can you link directly to the parameter files or just post them here? It is not clear to me where to obtain the parameter files in the two discussions you listed. Thanks!
from elastix.
@kaspermarstal thanks!
You can see the parameter files for rigid/affine/b-spline in this pull request:
- rigid: https://github.com/SlicerProstate/SliceTracker/pull/341/files#diff-35c17ae0c6fc45f6280c8c6719d7c54b
- affine: https://github.com/SlicerProstate/SliceTracker/pull/341/files#diff-04aa48b3655e2714bb803a80c1035da4
- b-spline: https://github.com/SlicerProstate/SliceTracker/pull/341/files#diff-3aa4e49b9ded4e59482b10be9c35f37b
from elastix.
@kaspermarstal thank you for the feedback! Since my last update, we did more testing, and the elastix registration unfortunately does not always work. But I am sure we will figure it out with your help! @Kmacneil0102 is currently working to reproduce the issues on a public dataset, and we will update this thread as soon as we have results.
See my responses to your suggestions:
AutomaticTransformInitialization
should betrue
for rigid andfalse
for affine and bspline.
We use external application-specific initializer. The initializer we implemented takes the segmentation masks of the prostate in the two images, aligns their centroids, and then does sparse search to optimize the metric by rotating the images over small range (don't remember now in what plane!). This initializer has been working quite well, and I don't think default initializer could replace it. Unless you already have something similar in elastix?
Depending on the problem you might want to use at least
3
resolutions. Some places you use2
which is on the low side.
We actually started with the default 3
, but then reduced, since our region of interest is quite small (could be as small as 5-10% of the total image volume probably), and so there may not be enough data to subsample. Reducing resolutions helped somewhat with making the configuration more reliable.
We will update the rest of the parameters as you advised - it all makes sense to me!
from elastix.
closing for now, you can reopen when needed.
from elastix.
Related Issues (20)
- ComputeImageExtremaFilter SameGeometry should include Index, Spacing, and Direction HOT 1
- ComputeImageExtremaFilter should reset SameGeometry when image and mask have different image domains HOT 2
- Unreachable error handling, "Consider using the ImageRandomSampler", in ImageRandomSamplerSparseMask
- AdvancedImageToImageMetric, AdvancedMeanSquaresImageToImageMetric estimating min and max twice, redundantly
- Why my C++ project which uses ITK_Elastix, Opencv library with .net frame work does not in window7 but works fine on window10. HOT 6
- How to create c++ dll files of ITK- elastix libraries because static one making executable high size? HOT 5
- How to mitigate process variation between fixed and moving image , while doing itk::ElastixRegistrationMethod using elastix-ITK c++ code?
- OpenCLContext::Create(method:4):CL_INVALID_PLATFORM when run OpenCLResampler HOT 4
- I am getting itk::ExceptionObject(1D21BA50) buffer region out of Range from file core\common\include\itkImageConstIterator.h while running in Release mode.
- Sampler in Elastix and ITK
- Add macos-14 in CI HOT 3
- Elastix should stop running (and fail) when initial transform is not supported
- Can you provide a demo of OpenCL GPUBSplineInterpolateImageFunction?
- Initial translation between images when using masks HOT 1
- Registration of Different Slice Numbers
- Document difference between `SetExternalInitialTransform` and `SetInitialTransform` HOT 5
- ElastixRegistrationMethod GetNumberOfTransforms, GetCombinationTransform, etc. does not work with non-float ImageType HOT 1
- make registration deterministic? HOT 5
- PCA-based metrics for T1 mapping
- Error in C++ project while initializing Pointer object of type using itk::TransformixFilter<ImageType>; HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from elastix.