[Insight-users] Mattes Mutual Information

brian avants stnava at gmail.com
Thu Jan 10 11:00:55 EST 2013


Hi Tim

I agree that ITK is, overall, not well-documented.  The tests are a
good way to pick up some use cases / strategies.  For instance:

find ./  -name "*Mattes*Test*"
.//Modules/Nonunit/Review/test/itkOptMattesMutualInformationImageToImageMetricThreadsTest1.cxx
.//Modules/Registration/Common/test/itkMattesMutualInformationImageToImageMetricTest.cxx
.//Modules/Registration/Metricsv4/test/itkMattesMutualInformationImageToImageMetricv4RegistrationTest.cxx
.//Modules/Registration/Metricsv4/test/itkMattesMutualInformationImageToImageMetricv4Test.cxx

This one may be informative:

.//Modules/Registration/Metricsv4/test/itkMattesMutualInformationImageToImageMetricv4RegistrationTest.cxx

We will add a more overarching v4 registration test relatively soon to
hopefully improve documentation.


brian




On Wed, Jan 9, 2013 at 2:16 PM, Matt McCormick
<matt.mccormick at kitware.com> wrote:
> Hi Tim,
>
> Thanks for the feedback.
>
> ITK documentation can certainly be improved.
>
> Hans Johnson is working on updates to the Software Guide.
>
> To make updates to the Doxygen documentation, the code can modified
> and patches submitted through the Gerrit workflow:
>
>   http://www.itk.org/Wiki/ITK/Git/Develop
>
> Or, there is a "Edit comments" button in the Doxygen html for a class
> to quickly submit corrections or additions to the doxygen comments.
>
> The ITK Wiki Examples continue to progress, but another ITKExamples
> project is also in the works:
>
>   http://itk.org/ITKExamples/
>
> Hopefully you will find ITK useful for future work and will consider
> contributing back the community.  Kitware is only one member of the
> larger ITK community, and the toolkit is the result of the hard
> efforts of many community members.
>
> Thanks,
> Matt
>
> On Wed, Jan 9, 2013 at 11:18 AM, Tim Allman <dr.tim.allman at gmail.com> wrote:
>> Thanks Matt and Brian for the information.
>>
>> I have been working with ITK for about 6 months now and I am truly impressed
>> with it from the perspectives of content and design. The templating and
>> pipeline architecture are especially good. It's a great piece of work.
>>
>> However, I have wasted at least a couple of these months because it has been
>> so difficult to learn what's in ITK and how to use it. Essentially, the
>> documentation is incomplete and scattered. The book is badly out of date
>> having been written for ITK-2.4. The doxygen documents are not well
>> maintained with many classes and functions uncommented. The information
>> below appears nowhere else as far as I know. Certainly I never found a link
>> to it on the ITK site. As for the changes between ITK-4.2 and 4.3, how can I
>> find them without looking at the checkin logs? On top of this, the examples
>> on the wiki and in the code could be updated and expanded.
>>
>> I'm certainly grateful for the quick turnaround by the KitWare staff on
>> questions on this list but it can be hard even to know what to ask. I am a
>> seasoned programmer with experience in C++ going back 25 years and a lot of
>> experience relevant to image registration but using ITK is a struggle.
>> Perhaps it would be a good use of time to better organise the information,
>> update the book - even if just in pdf form - and make the doxygen docs more
>> meaningful.
>>
>> Thanks again for all the help you have given.
>>
>> Tim
>>
>>
>> On 13-01-09 11:19 AM, brian avants wrote:
>>>
>>> there is a brief summary of the v4 framework here:
>>>
>>>
>>> https://github.com/stnava/ITKv4Documentation/blob/wbir2012/ITKv4RefactoringNotes.pdf
>>>
>>> the most salient points:
>>>
>>> * all metrics are multi-threaded
>>>
>>> * all metrics may be computed from sparse or dense samples
>>>
>>> * all metrics may be used with low or high-dimensional (e.g.
>>> diffeomorphic, syn) transformations + generic pixel types
>>>
>>> * optimization / transformation framework reworked to be memory
>>> efficient i.e. avoid copying (potentially large) parameter vectors
>>>
>>> * new metrics for vector pixels (e.g. RGB) use same base classes
>>>
>>> * optimizers employ gradient step sizes with physical units, line
>>> search and have the ability to automate parameter scaling
>>>
>>> * composite transforms are now trivial.
>>>
>>> * "fixed" images can have transforms too (useful in unbiased
>>> registration strategies)
>>>
>>> * point set metrics can be combined with image metrics via
>>> itkObjectToObjectMultiMetricv4
>>>
>>> * some global optimization tricks are available in the
>>> MultiStartOptimizer ... very useful.
>>>
>>> there is also a GPU registration framework though that is a separate
>>> beast.
>>>
>>>
>>> brian
>>>
>>>
>>>
>>>
>>> On Wed, Jan 9, 2013 at 7:49 AM, Matt McCormick
>>> <matt.mccormick at kitware.com> wrote:
>>>>
>>>> Hi Tim,
>>>>
>>>> The v4 registration framework slightly different, and the
>>>> MattesMutualInformationImageToImageMetric can only be used with the v3
>>>> framework and the MattesMutualInformationImageToImageMetricv4 can only
>>>> be used with the v4 framework (the v4 has many additional features).
>>>> Additionally, I believe the implementations may be slightly different.
>>>>
>>>> Thanks,
>>>> Matt
>>>>
>>>> On Wed, Jan 9, 2013 at 7:35 AM, Tim Allman <dr.tim.allman at gmail.com>
>>>> wrote:
>>>>>
>>>>> There are two classes which implement the Mattes mutual information
>>>>> metric,
>>>>> MattesMutualInformationImageToImageMetric and
>>>>> MattesMutualInformationImageToImageMetricv4. There is little
>>>>> documentation
>>>>> or indication why I would want to use one or the other or why the v4
>>>>> version
>>>>> was created. Could someone give me a little guidance?
>>>>>
>>>>> Thanks,
>>>>> Tim
>>>>>
>>>>> --
>>>>> Tim Allman, Ph.D.
>>>>> 35 Margaret Street,
>>>>> Guelph Ontario N1E 5R6
>>>>> Canada
>>>>>
>>>>>
>>>>> _____________________________________
>>>>> Powered by www.kitware.com
>>>>>
>>>>> Visit other Kitware open-source projects at
>>>>> http://www.kitware.com/opensource/opensource.html
>>>>>
>>>>> Kitware offers ITK Training Courses, for more information visit:
>>>>> http://www.kitware.com/products/protraining.php
>>>>>
>>>>> Please keep messages on-topic and check the ITK FAQ at:
>>>>> http://www.itk.org/Wiki/ITK_FAQ
>>>>>
>>>>> Follow this link to subscribe/unsubscribe:
>>>>> http://www.itk.org/mailman/listinfo/insight-users
>>>>>
>>>> _____________________________________
>>>> Powered by www.kitware.com
>>>>
>>>> Visit other Kitware open-source projects at
>>>> http://www.kitware.com/opensource/opensource.html
>>>>
>>>> Kitware offers ITK Training Courses, for more information visit:
>>>> http://www.kitware.com/products/protraining.php
>>>>
>>>> Please keep messages on-topic and check the ITK FAQ at:
>>>> http://www.itk.org/Wiki/ITK_FAQ
>>>>
>>>> Follow this link to subscribe/unsubscribe:
>>>> http://www.itk.org/mailman/listinfo/insight-users
>>
>>
>> --
>> Tim Allman, Ph.D.
>> 35 Margaret Street,
>> Guelph Ontario N1E 5R6
>> Canada
>>
>>
>> _____________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Kitware offers ITK Training Courses, for more information visit:
>> http://www.kitware.com/products/protraining.php
>>
>> Please keep messages on-topic and check the ITK FAQ at:
>> http://www.itk.org/Wiki/ITK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.itk.org/mailman/listinfo/insight-users
>>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.php
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users


More information about the Insight-users mailing list