<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Dear Francois,<div class=""><br class=""></div><div class=""><br class=""></div><div class="">Well, yes, this publication is quite old. But currently, the implementation of itk:ThinPlatSplineKernelTransform still could not handle the registration problem. The reason is, that the jacobian calculation is not implemented. I have tried to use TPS to do non-rigid image registration ( but not warping) and got this the exception ("jacobian must implemented in subclasses of kernel transform"). I hope this publication from 2007 could help me, because it address this problem directly. </div><div class=""><br class=""></div><div class="">Or maybe you know another reason for this exception?</div><div class=""><br class=""></div><div class=""><div class="">Thank you for your Cmake file!! This helps me a lot!</div></div><div class=""><br class=""></div><div class="">best,</div><div class="">Siming</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">Am 11.08.2017 um 23:38 schrieb Francois Budin <<a href="mailto:francois.budin@kitware.com" class="">francois.budin@kitware.com</a>>:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class=""><div class=""><div class=""><div class="">Hello Siming,<br class=""><br class=""></div>It looks like this publication is a little old (2007). A lot has changed in ITK since this article has been written. The registration and transformation framework has been greatly improved, and the ThinPlateSpline can now be used in the registration framework (see [1]). If it is what you were looking for, you may not need to integrate the code of the article you mention in ITK.<br class=""></div>As for using the code that is available in the Insighe Journal article, one would need to first adapt the CMakeLists.txt file to be able to compile the code (see the quick adaptation of the CMakeLists.txt I wrote below). And then one would need to update the code to compile this project with a recent version of ITK.<br class=""><br class=""></div></div>Francois<br class=""><div class=""><div class=""><br class="">cmake_minimum_required(VERSION 2.8.12)<br class=""># This is based on the Insight Journal CMake Template
<br class=""> <br class="">#Change PROJECT_NAME to the name of your project<br class="">PROJECT(KERNEL_TRANSFORM)<br class=""> <br class="">ENABLE_TESTING()<br class=""><br class="">find_package(ITK REQUIRED)<br class="">include(${ITK_USE_FILE})<br class=""><br class=""><br class="">#the following block of code is an example of how to build an executable in<br class="">#cmake.  Unmodified, it will add an executable called "MyExe" to the project.<br class="">#MyExe will be built using the files MyClass.h and MyClass.cxx, and it will<br class="">#be linked to all the libraries you specified above. <br class="">#You can build more than one executable per project<br class="">ADD_EXECUTABLE(itkSplineKernelTransform2Test itkSplineKernelTransform2Test.cxx) 
<br class="">TARGET_LINK_LIBRARIES(itkSplineKernelTransform2Test ${ITK_LIBRARIES})
<br class=""> <br class="">ADD_EXECUTABLE(TPSDeformableRegistration TPSDeformableRegistration.cxx) 
<br class="">TARGET_LINK_LIBRARIES(TPSDeformableRegistration ${ITK_LIBRARIES})
<br class=""><br class="">#the following line is an example of how to add a test to your project.<br class="">#Testname is the title for this particular test.  ExecutableToRun is the<br class="">#program which will be running this test.  It can either be a part of this<br class="">#project or an external executable.  After that list any args that are needed<br class="">#for this test.  Include as many tests as you like.  If your project doesn't have<br class="">#any tests you can comment out or delete the following line.<br class="">ADD_TEST(SplineKernelTransform2Test itkSplineKernelTransform2Test)
<br class=""> <br class="">ADD_TEST(TPSDeformableRegistration TPSDeformableRegistration ${CMAKE_SOURCE_DIR}/data/transformpoints.txt ${CMAKE_SOURCE_DIR}/data/BrainProtonDensitySliceWarped.png ${CMAKE_SOURCE_DIR}/data/BrainProtonDensitySliceBorder20.png output.png diffafter.png diffbefore.png)
<br class=""><br class=""><br class=""><div class=""><br class="">[1] <a href="https://itk.org/Doxygen/html/Examples_2RegistrationITKv4_2ThinPlateSplineWarp_8cxx-example.html" class="">https://itk.org/Doxygen/html/Examples_2RegistrationITKv4_2ThinPlateSplineWarp_8cxx-example.html</a><br class=""></div></div></div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Fri, Aug 11, 2017 at 5:15 PM, Sisi <span dir="ltr" class=""><<a href="mailto:siming.bayer@gmail.com" target="_blank" class="">siming.bayer@gmail.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear Francois,<br class="">
<br class="">
Thank you for your answer. In my case, I didn’t´t wrote any filter or module by myself. I just want to try a improved version of its::KernelTransform, developed by Brooks. The source code can be downloaded here (<a href="http://www.insight-journal.org/browse/publication/145" rel="noreferrer" target="_blank" class="">http://www.insight-journal.<wbr class="">org/browse/publication/145</a> <<a href="http://www.insight-journal.org/browse/publication/145" rel="noreferrer" target="_blank" class="">http://www.insight-journal.<wbr class="">org/browse/publication/145</a>>). So my question is really really too simple: How can I integrate those header files and .txx file into the ITK Framework? If this is a remote module, where can I find it and how can I build it?<br class="">
<br class="">
Sorry for this stupid question…<br class="">
<br class="">
Thanks for your help!<br class="">
best,<br class="">
Siming<br class="">
<span class="">> Am 11.08.2017 um 22:59 schrieb Francois Budin-3 [via ITK Insight Users] <<a href="mailto:ml%2Bs2283740n7590185h17@n2.nabble.com" class="">ml+s2283740n7590185h17@n2.<wbr class="">nabble.com</a>>:<br class="">
><br class="">
> Hello Siming,<br class="">
><br class="">
> Welcome to ITK! I am not sure if you have had a chance to look at the ITKSoftwareGuide [1], but it is a great place to find a lot of information. The chapters that are the most relevant for you are probably Chapter 8 (How to write a filter) and Chapter 9 (How to create a module). To answer your question more specifically, the easiest way to integrate a new filter or new files to ITK is to develop an ITK module. This module can then either be compiled outside of ITK, or if you think it would be useful to the whole ITK community, it can be integrated to ITK as a remote module [2].<br class="">
><br class="">
> I hope this helps. Feel free to ask more questions.<br class="">
><br class="">
> Francois<br class="">
><br class="">
</span>> [1] <a href="https://www.itk.org/ItkSoftwareGuide.pdf" rel="noreferrer" target="_blank" class="">https://www.itk.org/<wbr class="">ItkSoftwareGuide.pdf</a> <<a href="https://www.itk.org/ItkSoftwareGuide.pdf" rel="noreferrer" target="_blank" class="">https://www.itk.org/<wbr class="">ItkSoftwareGuide.pdf</a>><br class="">
> [2] <a href="https://itk.org/Wiki/ITK/Policy_and_Procedures_for_Adding_Remote_Modules" rel="noreferrer" target="_blank" class="">https://itk.org/Wiki/ITK/<wbr class="">Policy_and_Procedures_for_<wbr class="">Adding_Remote_Modules</a> <<a href="https://itk.org/Wiki/ITK/Policy_and_Procedures_for_Adding_Remote_Modules" rel="noreferrer" target="_blank" class="">https://itk.org/Wiki/ITK/<wbr class="">Policy_and_Procedures_for_<wbr class="">Adding_Remote_Modules</a>><br class="">
<span class="">><br class="">
> On Fri, Aug 11, 2017 at 4:11 PM, Sisi <[hidden email] <<a href="x-msg://27/user/SendEmail" class="">x-msg://27/user/SendEmail</a>.<wbr class="">jtp?type=node&node=7590185&i=<wbr class="">0>> wrote:<br class="">
> Dear all,<br class="">
><br class="">
> I am quite new with ITK. I would like to add some new .h file and .txx<br class="">
> files, which are not a part of the original ITK framework,  into the<br class="">
> original ITK Framework and use them together as library. How can I do it?<br class="">
><br class="">
> I will be very happy to get any Information/hint/guide about it.<br class="">
><br class="">
> best,<br class="">
> Siming<br class="">
><br class="">
><br class="">
><br class="">
><br class="">
> --<br class="">
</span>> View this message in context: <a href="http://itk-insight-users.2283740.n2.nabble.com/Integrate-new-h-and-txx-file-as-a-part-of-ITK-Framework-tp7590184.html" rel="noreferrer" target="_blank" class="">http://itk-insight-users.<wbr class="">2283740.n2.nabble.com/<wbr class="">Integrate-new-h-and-txx-file-<wbr class="">as-a-part-of-ITK-Framework-<wbr class="">tp7590184.html</a> <<a href="http://itk-insight-users.2283740.n2.nabble.com/Integrate-new-h-and-txx-file-as-a-part-of-ITK-Framework-tp7590184.html" rel="noreferrer" target="_blank" class="">http://itk-insight-users.<wbr class="">2283740.n2.nabble.com/<wbr class="">Integrate-new-h-and-txx-file-<wbr class="">as-a-part-of-ITK-Framework-<wbr class="">tp7590184.html</a>><br class="">
<span class="">> Sent from the ITK Insight Users mailing list archive at <a href="http://Nabble.com" class="">Nabble.com</a>.<br class="">
> ______________________________<wbr class="">_______<br class="">
</span>> Powered by <a href="http://www.kitware.com/" rel="noreferrer" target="_blank" class="">www.kitware.com</a> <<a href="http://www.kitware.com/" rel="noreferrer" target="_blank" class="">http://www.kitware.com/</a>><br class="">
<span class="">><br class="">
> Visit other Kitware open-source projects at<br class="">
</span>> <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank" class="">http://www.kitware.com/<wbr class="">opensource/opensource.html</a> <<a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank" class="">http://www.kitware.com/<wbr class="">opensource/opensource.html</a>><br class="">
<span class="">><br class="">
> Kitware offers ITK Training Courses, for more information visit:<br class="">
</span>> <a href="http://www.kitware.com/products/protraining.php" rel="noreferrer" target="_blank" class="">http://www.kitware.com/<wbr class="">products/protraining.php</a> <<a href="http://www.kitware.com/products/protraining.php" rel="noreferrer" target="_blank" class="">http://www.kitware.com/<wbr class="">products/protraining.php</a>><br class="">
<span class="">><br class="">
> Please keep messages on-topic and check the ITK FAQ at:<br class="">
</span>> <a href="http://www.itk.org/Wiki/ITK_FAQ" rel="noreferrer" target="_blank" class="">http://www.itk.org/Wiki/ITK_<wbr class="">FAQ</a> <<a href="http://www.itk.org/Wiki/ITK_FAQ" rel="noreferrer" target="_blank" class="">http://www.itk.org/Wiki/ITK_<wbr class="">FAQ</a>><br class="">
<span class="">><br class="">
> Follow this link to subscribe/unsubscribe:<br class="">
</span>> <a href="http://public.kitware.com/mailman/listinfo/insight-users" rel="noreferrer" target="_blank" class="">http://public.kitware.com/<wbr class="">mailman/listinfo/insight-users</a> <<a href="http://public.kitware.com/mailman/listinfo/insight-users" rel="noreferrer" target="_blank" class="">http://public.kitware.com/<wbr class="">mailman/listinfo/insight-users</a><wbr class="">><br class="">
<span class="">><br class="">
><br class="">
> ______________________________<wbr class="">_______<br class="">
> Powered by <a href="http://www.kitware.com/" rel="noreferrer" target="_blank" class="">www.kitware.com</a><br class="">
><br class="">
> Visit other Kitware open-source projects at<br class="">
</span>> <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank" class="">http://www.kitware.com/<wbr class="">opensource/opensource.html</a> <<a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank" class="">http://www.kitware.com/<wbr class="">opensource/opensource.html</a>><br class="">
<span class="">><br class="">
> Kitware offers ITK Training Courses, for more information visit:<br class="">
</span>> <a href="http://www.kitware.com/products/protraining.php" rel="noreferrer" target="_blank" class="">http://www.kitware.com/<wbr class="">products/protraining.php</a> <<a href="http://www.kitware.com/products/protraining.php" rel="noreferrer" target="_blank" class="">http://www.kitware.com/<wbr class="">products/protraining.php</a>><br class="">
<span class="">><br class="">
> Please keep messages on-topic and check the ITK FAQ at:<br class="">
</span>> <a href="http://www.itk.org/Wiki/ITK_FAQ" rel="noreferrer" target="_blank" class="">http://www.itk.org/Wiki/ITK_<wbr class="">FAQ</a> <<a href="http://www.itk.org/Wiki/ITK_FAQ" rel="noreferrer" target="_blank" class="">http://www.itk.org/Wiki/ITK_<wbr class="">FAQ</a>><br class="">
<span class="">><br class="">
> Follow this link to subscribe/unsubscribe:<br class="">
</span>> <a href="http://public.kitware.com/mailman/listinfo/insight-users" rel="noreferrer" target="_blank" class="">http://public.kitware.com/<wbr class="">mailman/listinfo/insight-users</a> <<a href="http://public.kitware.com/mailman/listinfo/insight-users" rel="noreferrer" target="_blank" class="">http://public.kitware.com/<wbr class="">mailman/listinfo/insight-users</a><wbr class="">><br class="">
><br class="">
><br class="">
> If you reply to this email, your message will be added to the discussion below:<br class="">
> <a href="http://itk-insight-users.2283740.n2.nabble.com/Integrate-new-h-and-txx-file-as-a-part-of-ITK-Framework-tp7590184p7590185.html" rel="noreferrer" target="_blank" class="">http://itk-insight-users.<wbr class="">2283740.n2.nabble.com/<wbr class="">Integrate-new-h-and-txx-file-<wbr class="">as-a-part-of-ITK-Framework-<wbr class="">tp7590184p7590185.html</a> <<a href="http://itk-insight-users.2283740.n2.nabble.com/Integrate-new-h-and-txx-file-as-a-part-of-ITK-Framework-tp7590184p7590185.html" rel="noreferrer" target="_blank" class="">http://itk-insight-users.<wbr class="">2283740.n2.nabble.com/<wbr class="">Integrate-new-h-and-txx-file-<wbr class="">as-a-part-of-ITK-Framework-<wbr class="">tp7590184p7590185.html</a>><br class="">
> To unsubscribe from Integrate new .h and .txx file as a part of ITK Framework, click here <<a href="http://itk-insight-users.2283740.n2.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=7590184&code=c2ltaW5nLmJheWVyQGdtYWlsLmNvbXw3NTkwMTg0fC0xNTI5Nzc4MTM3" rel="noreferrer" target="_blank" class="">http://itk-insight-users.<wbr class="">2283740.n2.nabble.com/<wbr class="">template/NamlServlet.jtp?<wbr class="">macro=unsubscribe_by_code&<wbr class="">node=7590184&code=<wbr class="">c2ltaW5nLmJheWVyQGdtYWlsLmNvbX<wbr class="">w3NTkwMTg0fC0xNTI5Nzc4MTM3</a>>.<br class="">
> NAML <<a href="http://itk-insight-users.2283740.n2.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml" rel="noreferrer" target="_blank" class="">http://itk-insight-users.<wbr class="">2283740.n2.nabble.com/<wbr class="">template/NamlServlet.jtp?<wbr class="">macro=macro_viewer&id=instant_<wbr class="">html%21nabble%3Aemail.naml&<wbr class="">base=nabble.naml.namespaces.<wbr class="">BasicNamespace-nabble.view.<wbr class="">web.template.NabbleNamespace-<wbr class="">nabble.naml.namespaces.<wbr class="">BasicNamespace-nabble.view.<wbr class="">web.template.NabbleNamespace-<wbr class="">nabble.naml.namespaces.<wbr class="">BasicNamespace-nabble.view.<wbr class="">web.template.NabbleNamespace-<wbr class="">nabble.naml.namespaces.<wbr class="">BasicNamespace-nabble.view.<wbr class="">web.template.NabbleNamespace-<wbr class="">nabble.naml.namespaces.<wbr class="">BasicNamespace-nabble.view.<wbr class="">web.template.NabbleNamespace-<wbr class="">nabble.view.web.template.<wbr class="">NodeNamespace&breadcrumbs=<wbr class="">notify_subscribers%21nabble%<wbr class="">3Aemail.naml-instant_emails%<wbr class="">21nabble%3Aemail.naml-send_<wbr class="">instant_email%21nabble%<wbr class="">3Aemail.naml</a>><br class="">
<br class="">
<br class="">
<br class="">
<br class="">
--<br class="">
View this message in context: <a href="http://itk-insight-users.2283740.n2.nabble.com/Integrate-new-h-and-txx-file-as-a-part-of-ITK-Framework-tp7590184p7590186.html" rel="noreferrer" target="_blank" class="">http://itk-insight-users.<wbr class="">2283740.n2.nabble.com/<wbr class="">Integrate-new-h-and-txx-file-<wbr class="">as-a-part-of-ITK-Framework-<wbr class="">tp7590184p7590186.html</a><br class="">
<div class="HOEnZb"><div class="h5">Sent from the ITK Insight Users mailing list archive at <a href="http://Nabble.com" class="">Nabble.com</a>.<br class="">
______________________________<wbr class="">_______<br class="">
Powered by <a href="http://www.kitware.com/" rel="noreferrer" target="_blank" class="">www.kitware.com</a><br class="">
<br class="">
Visit other Kitware open-source projects at<br class="">
<a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank" class="">http://www.kitware.com/<wbr class="">opensource/opensource.html</a><br class="">
<br class="">
Kitware offers ITK Training Courses, for more information visit:<br class="">
<a href="http://www.kitware.com/products/protraining.php" rel="noreferrer" target="_blank" class="">http://www.kitware.com/<wbr class="">products/protraining.php</a><br class="">
<br class="">
Please keep messages on-topic and check the ITK FAQ at:<br class="">
<a href="http://www.itk.org/Wiki/ITK_FAQ" rel="noreferrer" target="_blank" class="">http://www.itk.org/Wiki/ITK_<wbr class="">FAQ</a><br class="">
<br class="">
Follow this link to subscribe/unsubscribe:<br class="">
<a href="http://public.kitware.com/mailman/listinfo/insight-users" rel="noreferrer" target="_blank" class="">http://public.kitware.com/<wbr class="">mailman/listinfo/insight-users</a><br class="">
</div></div></blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></div></body></html>