<div dir="ltr">Hello Dominik,<div class="gmail_extra"><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
I have been working on a project in Slicer which is about registering<br>
histology slices to an MRI volume of the same subject. So far everything was<br>
straight-forward but now the implemented registration algorithms in Slicer<br>
are coming to their limits and I think I have to write some of the stuff<br>
myself in ITK. I can use SimpleITK in python or the C++ version in Slicer<br>
depending on which plugin I want to write. The stuff I wrote so far is in<br>
Python but I think I can write another plugin in C++ just for the<br>
registration algorithm and execute this in my Python plugin.</blockquote><div><br></div><div>Nice!</div><div> </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
So, now to the questions:<br>
<br>
- I'd like to constraint the registration algorithm because both modalities<br>
have a very robust feature which is the urethra. So I'd like the<br>
registration algorithm to stay as it is and just limit the transformation so<br>
the histology-urethra follows the MRI-urethra and the rotation center is in<br>
the urethra. I read in the slicers forum that I can write my own<br>
transformation class for this but I didn't have a lot of success so far so<br>
I'm thankful for more hints on how to write my own transformation class or<br>
any other solutions.<br></blockquote><div><br></div><div>A new transformation can often be avoided by calling SetWeights() on the optimizer as explained here [1]. This can be used to hold parameters constant for a given transform during the optimization process.</div><div><br></div><div>However, it sounds like goal is to limit registration to information from a particular region in the image (the urethra). To achieve this goal, you may consider setting the Fixed and Moving image masks on the metric as described here [2]. </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
- Once every histology slice is registered, I'd like to merge these slices<br>
to one. Is there an easy solution in ITK for this? I read the<br>
ResampleImageFilter is usable for this but so far I just understood that it<br>
resamples an image depending on how you transform it.<br></blockquote><div><br></div><div>If every histology slice is registered independently, when they are merged together there will be gaps and overlap in the histology slice locations. Therefore, if a histology volume is desired, the histology slices could be registered to each other first to generate a single histology slice volume, then that volume is registered to the MRI volume.</div><div><br></div><div>Cheers,</div><div>Matt</div><div> </div><div><br></div><div>[1] <a href="http://www.itk.org/Doxygen/html/classitk_1_1ObjectToObjectOptimizerBaseTemplate.html">http://www.itk.org/Doxygen/html/classitk_1_1ObjectToObjectOptimizerBaseTemplate.html</a> </div><div><br></div><div>[2] <a href="http://www.itk.org/Doxygen/html/classitk_1_1ImageToImageMetricv4.html">http://www.itk.org/Doxygen/html/classitk_1_1ImageToImageMetricv4.html</a></div></div></div></div>