From scapegoat.sarthak at gmail.com Mon Jun 1 11:51:45 2015 From: scapegoat.sarthak at gmail.com (scap3y) Date: Mon, 1 Jun 2015 08:51:45 -0700 (MST) Subject: [ITK-users] Building Classes using ITK Wrap Message-ID: <1433173905567-7587428.post@n2.nabble.com> Hi, I am trying to follow the tutorial presented in this link from ITK. I have built and installed ITK by keeping the Wrap_Python module on (already tested on ipython and works as expected). During the build step of my test project, CMake gives the following error: Unknown CMake command "WRAP_LIBRARY". By doing ccmake, I get the following result (which shows that everything is where it should be there): CMAKE_BUILD_TYPE * CMAKE_INSTALL_PREFIX */usr/local ITK_TEST_DRIVER *ITK_TEST_DRIVER-NOTFOUND ITK_USE_SYSTEM_SWIG *OFF ITK_WRAP_GCCXML *ON ITK_WRAP_PYTHON *ON ITK_WRAP_SWIGINTERFACE *ON SWIG_DIR */home/patis/projects/patis/itkWrap_test/bin/Generators/SwigInterface/swig/share/swig/3.0.2 SWIG_EXECUTABLE */home/patis/projects/patis/itkWrap_test/bin/Generators/SwigInterface/swig/bin/swig WRAP_ITK_INSTALL_PREFIX *lib/cmake/ITK-4.7/WrapITK WrapITK_DIR */home/patis/Downloads/ITK/4.7.2/bin/install/lib/cmake/ITK-4.7/WrapITK Any idea what might be going on? Thanks, Sarthak -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/Building-Classes-using-ITK-Wrap-tp7587428.html Sent from the ITK Insight Users mailing list archive at Nabble.com. From arnaudgelas at gmail.com Tue Jun 2 08:16:59 2015 From: arnaudgelas at gmail.com (Arnaud Gelas) Date: Tue, 2 Jun 2015 14:16:59 +0200 Subject: [ITK-users] MHA Compression lossless or lossy? Message-ID: <704FD88A-C969-4192-9931-4CFFBFB8E9CB@gmail.com> Hi all, I would like to know if the compression method used when turning on UseCompression in MetaImageIO is a lossless method? or a lossy one? Thank you very much!!! Best Arnaud From lasso at queensu.ca Tue Jun 2 09:31:55 2015 From: lasso at queensu.ca (Andras Lasso) Date: Tue, 2 Jun 2015 13:31:55 +0000 Subject: [ITK-users] [ITK] MHA Compression lossless or lossy? In-Reply-To: <704FD88A-C969-4192-9931-4CFFBFB8E9CB@gmail.com> References: <704FD88A-C969-4192-9931-4CFFBFB8E9CB@gmail.com> Message-ID: lossless (zlib) Andras -----Original Message----- From: Community [mailto:community-bounces at itk.org] On Behalf Of Arnaud Gelas Sent: Tuesday, June 2, 2015 8:17 AM To: Insight-Users Subject: [ITK] [ITK-users] MHA Compression lossless or lossy? Hi all, I would like to know if the compression method used when turning on UseCompression in MetaImageIO is a lossless method? or a lossy one? Thank you very much!!! Best Arnaud _____________________________________ 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://public.kitware.com/mailman/listinfo/insight-users _______________________________________________ Community mailing list Community at itk.org http://public.kitware.com/mailman/listinfo/community From blowekamp at mail.nih.gov Tue Jun 2 08:25:11 2015 From: blowekamp at mail.nih.gov (Bradley Lowekamp) Date: Tue, 2 Jun 2015 08:25:11 -0400 Subject: [ITK-users] [ITK] MHA Compression lossless or lossy? In-Reply-To: <704FD88A-C969-4192-9931-4CFFBFB8E9CB@gmail.com> References: <704FD88A-C969-4192-9931-4CFFBFB8E9CB@gmail.com> Message-ID: <715941EB-A87E-4AC8-B9C7-A685318AA921@mail.nih.gov> Hello Arnaud, The MetaIO library just uses zlib which is lossless. Brad On Jun 2, 2015, at 8:16 AM, Arnaud Gelas wrote: > Hi all, > > I would like to know if the compression method used when turning on UseCompression in MetaImageIO is a lossless method? or a lossy one? > > Thank you very much!!! > > Best > Arnaud > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community From davis.vigneault at gmail.com Wed Jun 3 12:38:04 2015 From: davis.vigneault at gmail.com (DVigneault) Date: Wed, 3 Jun 2015 09:38:04 -0700 (MST) Subject: [ITK-users] How to access pixels of a filter's output image? In-Reply-To: <1433344566621-7587432.post@n2.nabble.com> References: <1433344566621-7587432.post@n2.nabble.com> Message-ID: <1433349484568-7587433.post@n2.nabble.com> You'll need to call: closeFilter->Update(); before accessing the pixel data with the iterators, such as immediately after you set the kernel. Best, --Davis -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/How-to-access-pixels-of-a-filter-s-output-image-tp7587432p7587433.html Sent from the ITK Insight Users mailing list archive at Nabble.com. From davis.vigneault at gmail.com Wed Jun 3 12:49:33 2015 From: davis.vigneault at gmail.com (DVigneault) Date: Wed, 3 Jun 2015 09:49:33 -0700 (MST) Subject: [ITK-users] Possible memory leak in itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter Message-ID: <1433350173271-7587434.post@n2.nabble.com> All-- I've been observing some erratic behavior in my program, which after some investigation I believe may be due to a memory leak in itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter. I've copied below a minimal example which exhibits the problem, along with the output from valgrind showing 15,360 bytes lost in 128 blocks. Is anyone able to reproduce this issue? (Note that the 72,704 bytes still reachable is valgrind's fault , not ITK's). /////////////////////////////////////// // MINIMAL EXAMPLE // /////////////////////////////////////// #include "itkQuadEdgeMesh.h" #include "itkRegularSphereMeshSource.h" #include "itkLoopTriangleCellSubdivisionQuadEdgeMeshFilter.h" #include "itkIterativeTriangleCellSubdivisionQuadEdgeMeshFilter.h" typedef itk::QuadEdgeMesh< double, 3 > TMesh; typedef itk::RegularSphereMeshSource< TMesh > TSource; typedef itk::LoopTriangleCellSubdivisionQuadEdgeMeshFilter< TMesh, TMesh > TLoop; typedef itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter< TMesh, TLoop > TSubdivide; int main(int argc, char ** argv) { TSource::Pointer source = TSource::New(); TSubdivide::Pointer sub = TSubdivide::New(); sub->SetInput( source->GetOutput() ); sub->SetResolutionLevels( 1 ); sub->Update(); return EXIT_SUCCESS; } //////////////////////////////////////// // VALGRIND OUTPUT // //////////////////////////////////////// $ valgrind --leak-check=full ./dv-registration ==20328== Memcheck, a memory error detector ==20328== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==20328== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info ==20328== Command: ./dv-registration ==20328== ==20328== ==20328== HEAP SUMMARY: ==20328== in use at exit: 92,160 bytes in 257 blocks ==20328== total heap usage: 13,030 allocs, 12,773 frees, 879,010 bytes allocated ==20328== ==20328== 19,456 (15,360 direct, 4,096 indirect) bytes in 128 blocks are definitely lost in loss record 2 of 3 ==20328== at 0x4C2B0A5: operator new(unsigned long) (vg_replace_malloc.c:324) ==20328== by 0x4984F8: itk::QuadEdgeMesh >::AddFace(itk::GeometricalQuadEdge*) (in /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) ==20328== by 0x49926F: itk::QuadEdgeMesh >::AddFaceWithSecurePointList(std::vector > const&, bool) (in /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) ==20328== by 0x49D0D5: void itk::CopyMeshToMeshCells >, itk::QuadEdgeMesh > >(itk::QuadEdgeMesh > const*, itk::QuadEdgeMesh >*) (in /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) ==20328== by 0x491766: itk::QuadEdgeMeshToQuadEdgeMeshFilter >, itk::QuadEdgeMesh > >::CopyInputMeshToOutputMeshCells() (in /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) ==20328== by 0x4916E2: itk::QuadEdgeMeshToQuadEdgeMeshFilter >, itk::QuadEdgeMesh > >::CopyInputMeshToOutputMeshGeometry() (in /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) ==20328== by 0x491063: itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter >, itk::LoopTriangleCellSubdivisionQuadEdgeMeshFilter >, itk::QuadEdgeMesh > > >::GenerateData() (in /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) ==20328== by 0x4C578C: itk::ProcessObject::UpdateOutputData(itk::DataObject*) (in /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) ==20328== by 0x4866C6: main (in /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) ==20328== ==20328== LEAK SUMMARY: ==20328== definitely lost: 15,360 bytes in 128 blocks ==20328== indirectly lost: 4,096 bytes in 128 blocks ==20328== possibly lost: 0 bytes in 0 blocks ==20328== still reachable: 72,704 bytes in 1 blocks ==20328== suppressed: 0 bytes in 0 blocks ==20328== Reachable blocks (those to which a pointer was found) are not shown. ==20328== To see them, rerun with: --leak-check=full --show-leak-kinds=all ==20328== ==20328== For counts of detected and suppressed errors, rerun with: -v ==20328== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/Possible-memory-leak-in-itk-IterativeTriangleCellSubdivisionQuadEdgeMeshFilter-tp7587434.html Sent from the ITK Insight Users mailing list archive at Nabble.com. From wanlin.zhu at outlook.com Thu Jun 4 12:55:18 2015 From: wanlin.zhu at outlook.com (wanlin zhu) Date: Thu, 4 Jun 2015 16:55:18 +0000 Subject: [ITK-users] Possible memory leak in itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter In-Reply-To: <1433350173271-7587434.post@n2.nabble.com> References: <1433350173271-7587434.post@n2.nabble.com> Message-ID: I think the memory leak issue origined from QuadEdgeMesh,#include "itkQuadEdgeMesh.h"#include "itkRegularSphereMeshSource.h"typedef itk::QuadEdgeMesh< double, 3 > TMesh;typedef itk::RegularSphereMeshSource< TMesh > TSource;int main(int argc, char ** argv){ TSource::Pointer source = TSource::New(); source->Update(); TSource::Pointer source1 = TSource::New(); source1->SetResolution(5); source1->Update(); TMesh::Pointer mesh = source->GetOutput(); mesh->Graft( source1->GetOutput()); return EXIT_SUCCESS;}It gives memory leak errors as well. wanlin > Date: Wed, 3 Jun 2015 09:49:33 -0700 > From: davis.vigneault at gmail.com > To: insight-users at itk.org > Subject: [ITK-users] Possible memory leak in itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter > > All-- > > I've been observing some erratic behavior in my program, which after some > investigation I believe may be due to a memory leak in > itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter. I've copied below > a minimal example which exhibits the problem, along with the output from > valgrind showing 15,360 bytes lost in 128 blocks. Is anyone able to > reproduce this issue? (Note that the 72,704 bytes still reachable is > valgrind's fault > > , not ITK's). > > /////////////////////////////////////// > // MINIMAL EXAMPLE // > /////////////////////////////////////// > > #include "itkQuadEdgeMesh.h" > #include "itkRegularSphereMeshSource.h" > #include "itkLoopTriangleCellSubdivisionQuadEdgeMeshFilter.h" > #include "itkIterativeTriangleCellSubdivisionQuadEdgeMeshFilter.h" > > typedef itk::QuadEdgeMesh< double, 3 > TMesh; > typedef itk::RegularSphereMeshSource< TMesh > TSource; > typedef itk::LoopTriangleCellSubdivisionQuadEdgeMeshFilter< TMesh, TMesh > > TLoop; > typedef itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter< TMesh, > TLoop > TSubdivide; > > int main(int argc, char ** argv) > { > > TSource::Pointer source = TSource::New(); > TSubdivide::Pointer sub = TSubdivide::New(); > sub->SetInput( source->GetOutput() ); > sub->SetResolutionLevels( 1 ); > sub->Update(); > > return EXIT_SUCCESS; > > } > > //////////////////////////////////////// > // VALGRIND OUTPUT // > //////////////////////////////////////// > > $ valgrind --leak-check=full ./dv-registration > ==20328== Memcheck, a memory error detector > ==20328== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. > ==20328== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info > ==20328== Command: ./dv-registration > ==20328== > ==20328== > ==20328== HEAP SUMMARY: > ==20328== in use at exit: 92,160 bytes in 257 blocks > ==20328== total heap usage: 13,030 allocs, 12,773 frees, 879,010 bytes > allocated > ==20328== > ==20328== 19,456 (15,360 direct, 4,096 indirect) bytes in 128 blocks are > definitely lost in loss record 2 of 3 > ==20328== at 0x4C2B0A5: operator new(unsigned long) > (vg_replace_malloc.c:324) > ==20328== by 0x4984F8: itk::QuadEdgeMesh itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> > >::AddFace(itk::GeometricalQuadEdge bool, true>*) (in > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) > ==20328== by 0x49926F: itk::QuadEdgeMesh itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> > >::AddFaceWithSecurePointList(std::vector std::allocator > const&, bool) (in > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) > ==20328== by 0x49D0D5: void > itk::CopyMeshToMeshCells itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >, > itk::QuadEdgeMesh bool, float, float> > >(itk::QuadEdgeMesh itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> > const*, > itk::QuadEdgeMesh bool, float, float> >*) (in > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) > ==20328== by 0x491766: > itk::QuadEdgeMeshToQuadEdgeMeshFilter itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >, > itk::QuadEdgeMesh bool, float, float> > >::CopyInputMeshToOutputMeshCells() (in > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) > ==20328== by 0x4916E2: > itk::QuadEdgeMeshToQuadEdgeMeshFilter itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >, > itk::QuadEdgeMesh bool, float, float> > >::CopyInputMeshToOutputMeshGeometry() (in > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) > ==20328== by 0x491063: > itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter 3u, itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >, > itk::LoopTriangleCellSubdivisionQuadEdgeMeshFilter 3u, itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >, > itk::QuadEdgeMesh bool, float, float> > > >::GenerateData() (in > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) > ==20328== by 0x4C578C: > itk::ProcessObject::UpdateOutputData(itk::DataObject*) (in > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) > ==20328== by 0x4866C6: main (in > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) > ==20328== > ==20328== LEAK SUMMARY: > ==20328== definitely lost: 15,360 bytes in 128 blocks > ==20328== indirectly lost: 4,096 bytes in 128 blocks > ==20328== possibly lost: 0 bytes in 0 blocks > ==20328== still reachable: 72,704 bytes in 1 blocks > ==20328== suppressed: 0 bytes in 0 blocks > ==20328== Reachable blocks (those to which a pointer was found) are not > shown. > ==20328== To see them, rerun with: --leak-check=full --show-leak-kinds=all > ==20328== > ==20328== For counts of detected and suppressed errors, rerun with: -v > ==20328== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) > > > > > -- > View this message in context: http://itk-insight-users.2283740.n2.nabble.com/Possible-memory-leak-in-itk-IterativeTriangleCellSubdivisionQuadEdgeMeshFilter-tp7587434.html > Sent from the ITK Insight Users mailing list archive at Nabble.com. > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From arnaudgelas at gmail.com Fri Jun 5 02:27:28 2015 From: arnaudgelas at gmail.com (Arnaud Gelas) Date: Fri, 5 Jun 2015 08:27:28 +0200 Subject: [ITK-users] Possible memory leak in itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter In-Reply-To: References: <1433350173271-7587434.post@n2.nabble.com> Message-ID: <156E83DB-AEDD-4EBE-9F6C-DFCC8519ABCF@gmail.com> Hi, Thanks for pointing out this problem! The real problem is not with itk::QuadEdgeMesh, but with itk::Mesh, if you just change the mesh type from itk::QuadEdgeMesh to itk::Mesh, you?ll also get memory leaks. It just happens, that CellsContainer memory is not released for the current mesh when doing a Graft on another one. I?ll submit a patch very soon to fix it, and add both of you as reviewer! Thanks Arnaud > On 04 Jun 2015, at 18:55, wanlin zhu wrote: > > I think the memory leak issue origined from QuadEdgeMesh, > > #include "itkQuadEdgeMesh.h" > #include "itkRegularSphereMeshSource.h" > > > typedef itk::QuadEdgeMesh< double, 3 > TMesh; > typedef itk::RegularSphereMeshSource< TMesh > TSource; > > int main(int argc, char ** argv) > { > TSource::Pointer source = TSource::New(); > source->Update(); > TSource::Pointer source1 = TSource::New(); > source1->SetResolution(5); > source1->Update(); > TMesh::Pointer mesh = source->GetOutput(); > mesh->Graft( source1->GetOutput()); > > return EXIT_SUCCESS; > > } > > It gives memory leak errors as well. > > > > wanlin > > > Date: Wed, 3 Jun 2015 09:49:33 -0700 > > From: davis.vigneault at gmail.com > > To: insight-users at itk.org > > Subject: [ITK-users] Possible memory leak in itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter > > > > All-- > > > > I've been observing some erratic behavior in my program, which after some > > investigation I believe may be due to a memory leak in > > itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter. I've copied below > > a minimal example which exhibits the problem, along with the output from > > valgrind showing 15,360 bytes lost in 128 blocks. Is anyone able to > > reproduce this issue? (Note that the 72,704 bytes still reachable is > > valgrind's fault > > > > , not ITK's). > > > > /////////////////////////////////////// > > // MINIMAL EXAMPLE // > > /////////////////////////////////////// > > > > #include "itkQuadEdgeMesh.h" > > #include "itkRegularSphereMeshSource.h" > > #include "itkLoopTriangleCellSubdivisionQuadEdgeMeshFilter.h" > > #include "itkIterativeTriangleCellSubdivisionQuadEdgeMeshFilter.h" > > > > typedef itk::QuadEdgeMesh< double, 3 > TMesh; > > typedef itk::RegularSphereMeshSource< TMesh > TSource; > > typedef itk::LoopTriangleCellSubdivisionQuadEdgeMeshFilter< TMesh, TMesh > > > TLoop; > > typedef itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter< TMesh, > > TLoop > TSubdivide; > > > > int main(int argc, char ** argv) > > { > > > > TSource::Pointer source = TSource::New(); > > TSubdivide::Pointer sub = TSubdivide::New(); > > sub->SetInput( source->GetOutput() ); > > sub->SetResolutionLevels( 1 ); > > sub->Update(); > > > > return EXIT_SUCCESS; > > > > } > > > > //////////////////////////////////////// > > // VALGRIND OUTPUT // > > //////////////////////////////////////// > > > > $ valgrind --leak-check=full ./dv-registration > > ==20328== Memcheck, a memory error detector > > ==20328== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. > > ==20328== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info > > ==20328== Command: ./dv-registration > > ==20328== > > ==20328== > > ==20328== HEAP SUMMARY: > > ==20328== in use at exit: 92,160 bytes in 257 blocks > > ==20328== total heap usage: 13,030 allocs, 12,773 frees, 879,010 bytes > > allocated > > ==20328== > > ==20328== 19,456 (15,360 direct, 4,096 indirect) bytes in 128 blocks are > > definitely lost in loss record 2 of 3 > > ==20328== at 0x4C2B0A5: operator new(unsigned long) > > (vg_replace_malloc.c:324) > > ==20328== by 0x4984F8: itk::QuadEdgeMesh > itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> > > >::AddFace(itk::GeometricalQuadEdge > bool, true>*) (in > > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) > > ==20328== by 0x49926F: itk::QuadEdgeMesh > itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> > > >::AddFaceWithSecurePointList(std::vector > std::allocator > const&, bool) (in > > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) > > ==20328== by 0x49D0D5: void > > itk::CopyMeshToMeshCells > itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >, > > itk::QuadEdgeMesh > bool, float, float> > >(itk::QuadEdgeMesh > itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> > const*, > > itk::QuadEdgeMesh > bool, float, float> >*) (in > > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) > > ==20328== by 0x491766: > > itk::QuadEdgeMeshToQuadEdgeMeshFilter > itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >, > > itk::QuadEdgeMesh > bool, float, float> > >::CopyInputMeshToOutputMeshCells() (in > > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) > > ==20328== by 0x4916E2: > > itk::QuadEdgeMeshToQuadEdgeMeshFilter > itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >, > > itk::QuadEdgeMesh > bool, float, float> > >::CopyInputMeshToOutputMeshGeometry() (in > > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) > > ==20328== by 0x491063: > > itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter > 3u, itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >, > > itk::LoopTriangleCellSubdivisionQuadEdgeMeshFilter > 3u, itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >, > > itk::QuadEdgeMesh > bool, float, float> > > >::GenerateData() (in > > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) > > ==20328== by 0x4C578C: > > itk::ProcessObject::UpdateOutputData(itk::DataObject*) (in > > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) > > ==20328== by 0x4866C6: main (in > > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) > > ==20328== > > ==20328== LEAK SUMMARY: > > ==20328== definitely lost: 15,360 bytes in 128 blocks > > ==20328== indirectly lost: 4,096 bytes in 128 blocks > > ==20328== possibly lost: 0 bytes in 0 blocks > > ==20328== still reachable: 72,704 bytes in 1 blocks > > ==20328== suppressed: 0 bytes in 0 blocks > > ==20328== Reachable blocks (those to which a pointer was found) are not > > shown. > > ==20328== To see them, rerun with: --leak-check=full --show-leak-kinds=all > > ==20328== > > ==20328== For counts of detected and suppressed errors, rerun with: -v > > ==20328== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) > > > > > > > > > > -- > > View this message in context: http://itk-insight-users.2283740.n2.nabble.com/Possible-memory-leak-in-itk-IterativeTriangleCellSubdivisionQuadEdgeMeshFilter-tp7587434.html > > Sent from the ITK Insight Users mailing list archive at Nabble.com. > > _____________________________________ > > 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://public.kitware.com/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://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From arnaudgelas at gmail.com Fri Jun 5 02:28:46 2015 From: arnaudgelas at gmail.com (Arnaud Gelas) Date: Fri, 5 Jun 2015 08:28:46 +0200 Subject: [ITK-users] [ITK] MHA Compression lossless or lossy? In-Reply-To: <715941EB-A87E-4AC8-B9C7-A685318AA921@mail.nih.gov> References: <704FD88A-C969-4192-9931-4CFFBFB8E9CB@gmail.com> <715941EB-A87E-4AC8-B9C7-A685318AA921@mail.nih.gov> Message-ID: Hi, Thanks! I could not find anything about it in ITK documentation, nor in the related wiki page? What would be the right place to add such information? Arnaud > On 02 Jun 2015, at 14:25, Bradley Lowekamp wrote: > > Hello Arnaud, > > The MetaIO library just uses zlib which is lossless. > > Brad > > On Jun 2, 2015, at 8:16 AM, Arnaud Gelas wrote: > >> Hi all, >> >> I would like to know if the compression method used when turning on UseCompression in MetaImageIO is a lossless method? or a lossy one? >> >> Thank you very much!!! >> >> Best >> Arnaud >> _____________________________________ >> 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://public.kitware.com/mailman/listinfo/insight-users >> _______________________________________________ >> Community mailing list >> Community at itk.org >> http://public.kitware.com/mailman/listinfo/community > From arnaudgelas at gmail.com Fri Jun 5 03:14:07 2015 From: arnaudgelas at gmail.com (Arnaud Gelas) Date: Fri, 5 Jun 2015 09:14:07 +0200 Subject: [ITK-users] Possible memory leak in itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter In-Reply-To: <156E83DB-AEDD-4EBE-9F6C-DFCC8519ABCF@gmail.com> References: <1433350173271-7587434.post@n2.nabble.com> <156E83DB-AEDD-4EBE-9F6C-DFCC8519ABCF@gmail.com> Message-ID: <66A3C9FF-C7D1-4B76-A4CD-BAAF7B2E71D1@gmail.com> Here is the patch: http://review.source.kitware.com/#/c/19878/ I don?t have time right now, for that but it would also be good to make a similar test with Data (i.e. PointData and CellData) to make sure there are not similar memory leaks? Best Arnaud > On 05 Jun 2015, at 08:27, Arnaud Gelas wrote: > > Hi, > > Thanks for pointing out this problem! > > The real problem is not with itk::QuadEdgeMesh, but with itk::Mesh, if you just change the mesh type from itk::QuadEdgeMesh to itk::Mesh, you?ll also get memory leaks. > It just happens, that CellsContainer memory is not released for the current mesh when doing a Graft on another one. > > I?ll submit a patch very soon to fix it, and add both of you as reviewer! > > Thanks > Arnaud > >> On 04 Jun 2015, at 18:55, wanlin zhu > wrote: >> >> I think the memory leak issue origined from QuadEdgeMesh, >> >> #include "itkQuadEdgeMesh.h" >> #include "itkRegularSphereMeshSource.h" >> >> >> typedef itk::QuadEdgeMesh< double, 3 > TMesh; >> typedef itk::RegularSphereMeshSource< TMesh > TSource; >> >> int main(int argc, char ** argv) >> { >> TSource::Pointer source = TSource::New(); >> source->Update(); >> TSource::Pointer source1 = TSource::New(); >> source1->SetResolution(5); >> source1->Update(); >> TMesh::Pointer mesh = source->GetOutput(); >> mesh->Graft( source1->GetOutput()); >> >> return EXIT_SUCCESS; >> >> } >> >> It gives memory leak errors as well. >> >> >> >> wanlin >> >> > Date: Wed, 3 Jun 2015 09:49:33 -0700 >> > From: davis.vigneault at gmail.com >> > To: insight-users at itk.org >> > Subject: [ITK-users] Possible memory leak in itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter >> > >> > All-- >> > >> > I've been observing some erratic behavior in my program, which after some >> > investigation I believe may be due to a memory leak in >> > itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter. I've copied below >> > a minimal example which exhibits the problem, along with the output from >> > valgrind showing 15,360 bytes lost in 128 blocks. Is anyone able to >> > reproduce this issue? (Note that the 72,704 bytes still reachable is >> > valgrind's fault >> > > >> > , not ITK's). >> > >> > /////////////////////////////////////// >> > // MINIMAL EXAMPLE // >> > /////////////////////////////////////// >> > >> > #include "itkQuadEdgeMesh.h" >> > #include "itkRegularSphereMeshSource.h" >> > #include "itkLoopTriangleCellSubdivisionQuadEdgeMeshFilter.h" >> > #include "itkIterativeTriangleCellSubdivisionQuadEdgeMeshFilter.h" >> > >> > typedef itk::QuadEdgeMesh< double, 3 > TMesh; >> > typedef itk::RegularSphereMeshSource< TMesh > TSource; >> > typedef itk::LoopTriangleCellSubdivisionQuadEdgeMeshFilter< TMesh, TMesh > >> > TLoop; >> > typedef itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter< TMesh, >> > TLoop > TSubdivide; >> > >> > int main(int argc, char ** argv) >> > { >> > >> > TSource::Pointer source = TSource::New(); >> > TSubdivide::Pointer sub = TSubdivide::New(); >> > sub->SetInput( source->GetOutput() ); >> > sub->SetResolutionLevels( 1 ); >> > sub->Update(); >> > >> > return EXIT_SUCCESS; >> > >> > } >> > >> > //////////////////////////////////////// >> > // VALGRIND OUTPUT // >> > //////////////////////////////////////// >> > >> > $ valgrind --leak-check=full ./dv-registration >> > ==20328== Memcheck, a memory error detector >> > ==20328== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. >> > ==20328== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info >> > ==20328== Command: ./dv-registration >> > ==20328== >> > ==20328== >> > ==20328== HEAP SUMMARY: >> > ==20328== in use at exit: 92,160 bytes in 257 blocks >> > ==20328== total heap usage: 13,030 allocs, 12,773 frees, 879,010 bytes >> > allocated >> > ==20328== >> > ==20328== 19,456 (15,360 direct, 4,096 indirect) bytes in 128 blocks are >> > definitely lost in loss record 2 of 3 >> > ==20328== at 0x4C2B0A5: operator new(unsigned long) >> > (vg_replace_malloc.c:324) >> > ==20328== by 0x4984F8: itk::QuadEdgeMesh> > itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >> > >::AddFace(itk::GeometricalQuadEdge> > bool, true>*) (in >> > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) >> > ==20328== by 0x49926F: itk::QuadEdgeMesh> > itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >> > >::AddFaceWithSecurePointList(std::vector> > std::allocator > const&, bool) (in >> > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) >> > ==20328== by 0x49D0D5: void >> > itk::CopyMeshToMeshCells> > itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >, >> > itk::QuadEdgeMesh> > bool, float, float> > >(itk::QuadEdgeMesh> > itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> > const*, >> > itk::QuadEdgeMesh> > bool, float, float> >*) (in >> > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) >> > ==20328== by 0x491766: >> > itk::QuadEdgeMeshToQuadEdgeMeshFilter> > itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >, >> > itk::QuadEdgeMesh> > bool, float, float> > >::CopyInputMeshToOutputMeshCells() (in >> > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) >> > ==20328== by 0x4916E2: >> > itk::QuadEdgeMeshToQuadEdgeMeshFilter> > itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >, >> > itk::QuadEdgeMesh> > bool, float, float> > >::CopyInputMeshToOutputMeshGeometry() (in >> > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) >> > ==20328== by 0x491063: >> > itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter> > 3u, itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >, >> > itk::LoopTriangleCellSubdivisionQuadEdgeMeshFilter> > 3u, itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >, >> > itk::QuadEdgeMesh> > bool, float, float> > > >::GenerateData() (in >> > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) >> > ==20328== by 0x4C578C: >> > itk::ProcessObject::UpdateOutputData(itk::DataObject*) (in >> > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) >> > ==20328== by 0x4866C6: main (in >> > /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration) >> > ==20328== >> > ==20328== LEAK SUMMARY: >> > ==20328== definitely lost: 15,360 bytes in 128 blocks >> > ==20328== indirectly lost: 4,096 bytes in 128 blocks >> > ==20328== possibly lost: 0 bytes in 0 blocks >> > ==20328== still reachable: 72,704 bytes in 1 blocks >> > ==20328== suppressed: 0 bytes in 0 blocks >> > ==20328== Reachable blocks (those to which a pointer was found) are not >> > shown. >> > ==20328== To see them, rerun with: --leak-check=full --show-leak-kinds=all >> > ==20328== >> > ==20328== For counts of detected and suppressed errors, rerun with: -v >> > ==20328== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) >> > >> > >> > >> > >> > -- >> > View this message in context: http://itk-insight-users.2283740.n2.nabble.com/Possible-memory-leak-in-itk-IterativeTriangleCellSubdivisionQuadEdgeMeshFilter-tp7587434.html >> > Sent from the ITK Insight Users mailing list archive at Nabble.com . >> > _____________________________________ >> > 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://public.kitware.com/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://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From blowekamp at mail.nih.gov Fri Jun 5 07:19:47 2015 From: blowekamp at mail.nih.gov (Bradley Lowekamp) Date: Fri, 05 Jun 2015 07:19:47 -0400 Subject: [ITK-users] [ITK] MHA Compression lossless or lossy? In-Reply-To: References: <704FD88A-C969-4192-9931-4CFFBFB8E9CB@gmail.com> <715941EB-A87E-4AC8-B9C7-A685318AA921@mail.nih.gov> Message-ID: <620BA0F3-9389-4568-8AA0-9D94712D52A5@mail.nih.gov> Arnaud, Where did you go to look for this information? That should be a good guide to there it should be. I'd think it would be in the MetaImageIO class doxygen documentation [1] and on the wiki [2]. Brad [1] http://www.itk.org/Doxygen/html/classitk_1_1MetaImageIO.html [2] http://www.itk.org/Wiki/ITK/MetaIO/Documentation On Jun 5, 2015, at 2:28 AM, Arnaud Gelas wrote: > Hi, > > Thanks! I could not find anything about it in ITK documentation, nor in the related wiki page? > > What would be the right place to add such information? > > Arnaud > >> On 02 Jun 2015, at 14:25, Bradley Lowekamp wrote: >> >> Hello Arnaud, >> >> The MetaIO library just uses zlib which is lossless. >> >> Brad >> >> On Jun 2, 2015, at 8:16 AM, Arnaud Gelas wrote: >> >>> Hi all, >>> >>> I would like to know if the compression method used when turning on UseCompression in MetaImageIO is a lossless method? or a lossy one? >>> >>> Thank you very much!!! >>> >>> Best >>> Arnaud >>> _____________________________________ >>> 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://public.kitware.com/mailman/listinfo/insight-users >>> _______________________________________________ >>> Community mailing list >>> Community at itk.org >>> http://public.kitware.com/mailman/listinfo/community >> > From davis.vigneault at gmail.com Fri Jun 5 11:09:17 2015 From: davis.vigneault at gmail.com (DVigneault) Date: Fri, 5 Jun 2015 08:09:17 -0700 (MST) Subject: [ITK-users] Segfault in Wiki Example: QuadEdgeMeshParameterizationFilter Message-ID: <1433516957921-35771.post@n7.nabble.com> All-- While running the QuadEdgeMesh Parameterization example from the wiki [1] using the provided spherical mesh, I got a segfault on itkBorderQuadEdgeMeshFilter.hxx:75: InputIteratorGeom it = bdryEdge->BeginGeomLnext(); The options I used were ./program sphere.vtk 0 0 output.vtk After some investigation, I believe it may be that sphere.vtk has no internal edges. Therefore, BorderQuadEdgeMeshFilter::Evaluate is returning an empty std::list, and list->Begin() is eventually dereferenced on the above line. Should an itkWarningMacro() or itkExceptionMacro() be placed before the above line, checking whether the list is empty? Or should this be on the user? [1] http://www.itk.org/Wiki/ITK/Examples/Meshes/QuadEdgeMeshParameterizationFilter One other thing that's a bit confusing--if I pass ./program sphere.vtk 1 0 output.vtk (using DISK_BORDER_TRANSFORM instead of SQUARE_BORDER_TRANSFORM), there is no segfault in the wiki example. In the small program below, however, it segfaults in either case. Here's a program that describes the problem: #include "itkRegularSphereMeshSource.h" #include "itkBorderQuadEdgeMeshFilter.h" typedef itk::QuadEdgeMesh< double, 3 > TMesh; typedef itk::RegularSphereMeshSource< TMesh > TSource; typedef itk::QuadEdgeMeshBoundaryEdgesMeshFunction< TMesh > TBorderFunction; typedef itk::BorderQuadEdgeMeshFilter< TMesh, TMesh > TBorder; int main( int argc, char* argv[] ) { TSource::Pointer source = TSource::New(); source->Update(); TMesh::Pointer mesh = source->GetOutput(); TBorderFunction::Pointer fn = TBorderFunction::New(); TMesh::EdgeListPointerType list = fn->Evaluate( *(mesh) ); std::cout << list->size() << std::endl; // 0 // A sphere has no internal edges // Returns a std::list size zero TBorder::Pointer border = TBorder::New(); border->SetTransformType( TBorder::SQUARE_BORDER_TRANSFORM ); // Segfaults even if I change this to DISK_BORDER_TRANSFORM border->SetInput( mesh ); border->Update(); // Segfault // itkBorderQuadEdgeMeshFilter.hxx:110 // empty std::list is assigned to oborder_it // for loop is bypassed b/c list->begin() == list->end() // InputQEType* output = *oborder_it; // return output; from ComputeLongestBorder // InputQEType *bdryEdge = ComputeLongestBorder(); // Segfault: // itkBoarderQuadEdgeMeshFilter.hxx:75 // InputIteratorGeom it = bdryEdge->BeginGeomLnext(); return EXIT_SUCCESS; } -- View this message in context: http://itk-users.7.n7.nabble.com/Segfault-in-Wiki-Example-QuadEdgeMeshParameterizationFilter-tp35771.html Sent from the ITK - Users mailing list archive at Nabble.com. From shrikantvc at gmail.com Fri Jun 5 15:51:59 2015 From: shrikantvc at gmail.com (shrikant) Date: Fri, 5 Jun 2015 12:51:59 -0700 (MST) Subject: [ITK-users] differences in the output of OptimizerType::ParameterType on different linux version Message-ID: <1433533919534-7587443.post@n2.nabble.com> Hi, I have two versions of Linux as below. 1) suse (Linux yyy 2.6.27.56-0.1-default #1 SMP 2010-12-01 16:57:58 +0100 x86_64 x86_64 x86_64 GNU/Linux) 2) debian (Linux xxx 2.6.32-504.8.1.el6.x86_64 #1 SMP Tue Jan 27 13:39:10 CST 2015 x86_64 x86_64 x86_64 GNU/Linux) I have an executable which statically built on Debian. It does non-regid registration and prints the transformation parameters using GetLastTransformParameters function call. I see ~10% differences in the output when I run it on two different OS listed above. When I do ldd to the executable it shows dynamic dependency for libm.so.6. when i use libm.so.6 from Debian to the suse it produces the same result. for me this would be ok if the differences are in floating point and very small But when I print the values i.e. output of the GetLastRansforParameters() for index 521 from SUSE is "-74.33100" and from Debian is "-81.30033" which is like 10% off and this is true for almost all the values in the transform parameters. i dont understand what is going wrong and which one is correct from suse or from debian. anyhelp would be appreciated. Note: I am using ITK 3.20.1 and calling regitration->StartRgistration(). Although i know that Start Registation is deprecated function call and recomendation to use Update function. Also using Update function I am getting the same output. -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/differences-in-the-output-of-OptimizerType-ParameterType-on-different-linux-version-tp7587443.html Sent from the ITK Insight Users mailing list archive at Nabble.com. From matt.mccormick at kitware.com Fri Jun 5 15:56:34 2015 From: matt.mccormick at kitware.com (Matt McCormick) Date: Fri, 5 Jun 2015 15:56:34 -0400 Subject: [ITK-users] differences in the output of OptimizerType::ParameterType on different linux version In-Reply-To: <1433533919534-7587443.post@n2.nabble.com> References: <1433533919534-7587443.post@n2.nabble.com> Message-ID: Hi shrikant, Numerical stability has improved in ITKv4. The latest version may be worth a try. Thanks, Matt On Fri, Jun 5, 2015 at 3:51 PM, shrikant wrote: > Hi, > > I have two versions of Linux as below. > 1) suse (Linux yyy 2.6.27.56-0.1-default #1 SMP 2010-12-01 16:57:58 +0100 > x86_64 x86_64 x86_64 GNU/Linux) > 2) debian (Linux xxx 2.6.32-504.8.1.el6.x86_64 #1 SMP Tue Jan 27 13:39:10 > CST 2015 x86_64 x86_64 x86_64 GNU/Linux) > > I have an executable which statically built on Debian. It does non-regid > registration and prints the transformation parameters using > GetLastTransformParameters function call. I see ~10% differences in the > output when I run it on two different OS listed above. > > When I do ldd to the executable it shows dynamic dependency for libm.so.6. > when i use libm.so.6 from Debian to the suse it produces the same result. > > for me this would be ok if the differences are in floating point and very > small But when I print the values i.e. output of the > GetLastRansforParameters() for index 521 from SUSE is "-74.33100" and from > Debian is "-81.30033" which is like 10% off and this is true for almost all > the values in the transform parameters. > > i dont understand what is going wrong and which one is correct from suse or > from debian. anyhelp would be appreciated. > > Note: I am using ITK 3.20.1 and calling regitration->StartRgistration(). > Although i know that Start Registation is deprecated function call and > recomendation to use Update function. Also using Update function I am > getting the same output. > > > > -- > View this message in context: http://itk-insight-users.2283740.n2.nabble.com/differences-in-the-output-of-OptimizerType-ParameterType-on-different-linux-version-tp7587443.html > Sent from the ITK Insight Users mailing list archive at Nabble.com. > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users From zagwin at gmail.com Fri Jun 5 17:49:33 2015 From: zagwin at gmail.com (zagwin) Date: Fri, 5 Jun 2015 14:49:33 -0700 (MST) Subject: [ITK-users] Issue with BinaryDilate(Erode)ImageFilter with not "0/255" binary image Message-ID: <1433540973885-35774.post@n7.nabble.com> Hello, It seems I found an interesting problem (actually, I don't know if it is real problem). I found whenever I input an not 0/255 binary image, such as 0/1 image, or 0/127 image, nothing changed (this can be solved by SetDilateValue(1)). However, I thought it is two-value binary image, I don't need to set this value as wiki example showed. Am I right? My simple code is as below: int foreground = 255; // I tried 1 and 127, not work typedef signed short InputPixelType; typedef unsigned char UCharPixelType; static const unsigned int InputDimension = 2;//Dimension of image typedef itk::Image< InputPixelType, InputDimension > InputImageType;//Image Type typedef itk::Image< UCharPixelType, InputDimension > UCharImageType; typedef itk::ImageFileReader ReaderType; ReaderType::Pointer reader = ReaderType::New(); m_itkImage = InputImageType::New(); reader->SetFileName("MG0244.dcm"); reader->Update(); m_itkImage->Graft(reader->GetOutput()); typedef itk::BinaryThresholdImageFilter BinaryThresholdFilterType; typedef itk::BinaryBallStructuringElement StructuringElementType; typedef itk::BinaryDilateImageFilter BinaryDilateFilterType; typedef itk::BinaryErodeImageFilter BinaryErodeFilterType; typedef itk::ImageToVTKImageFilter ConnectorType2; ConnectorType2::Pointer connector2 = ConnectorType2::New(); vtkSmartPointer mask = vtkSmartPointer::New(); BinaryThresholdFilterType::Pointer btfilter1 = BinaryThresholdFilterType::New(); BinaryDilateFilterType::Pointer bDilate1 = BinaryDilateFilterType::New(); BinaryErodeFilterType::Pointer bErode1 = BinaryErodeFilterType::New(); btfilter1->SetLowerThreshold(100); btfilter1->SetUpperThreshold(500); btfilter1->SetInsideValue(foreground); btfilter1->SetOutsideValue(0); StructuringElementType element1; element1.SetRadius(3); element1.CreateStructuringElement(); bDilate1->SetKernel(element1); bErode1->SetKernel(element1); //bDilate1->SetDilateValue(foreground); //these two lines solve the problem of non-255 values //bErode1->SetErodeValue(foreground); btfilter1->SetInput(m_itkImage.GetPointer()); bDilate1->SetInput(btfilter1->GetOutput()); bErode1->SetInput(btfilter1->GetOutput()); connector2->SetInput( /*bErode1*/ bDilate1->GetOutput() ); connector2->Update(); mask->DeepCopy(connector2->GetOutput()); image_view->SetInputData(mask); image_view->GetRenderer()->ResetCamera(); image_view->Render(); -- View this message in context: http://itk-users.7.n7.nabble.com/Issue-with-BinaryDilate-Erode-ImageFilter-with-not-0-255-binary-image-tp35774.html Sent from the ITK - Users mailing list archive at Nabble.com. From matt.mccormick at kitware.com Fri Jun 5 18:25:39 2015 From: matt.mccormick at kitware.com (Matt McCormick) Date: Fri, 5 Jun 2015 18:25:39 -0400 Subject: [ITK-users] Issue with BinaryDilate(Erode)ImageFilter with not "0/255" binary image In-Reply-To: <1433540973885-35774.post@n7.nabble.com> References: <1433540973885-35774.post@n7.nabble.com> Message-ID: Hi Zagwin, Yes, you will need to specify the foreground values for binary filters. The do not have a way to determine the values otherwise. Hope this helps, Matt On Fri, Jun 5, 2015 at 5:49 PM, zagwin wrote: > Hello, > > It seems I found an interesting problem (actually, I don't know if it is > real problem). > I found whenever I input an not 0/255 binary image, such as 0/1 image, or > 0/127 image, nothing changed (this can be solved by SetDilateValue(1)). > However, I thought it is two-value binary image, I don't need to set this > value as wiki example showed. Am I right? > > My simple code is as below: > > int foreground = 255; // I tried 1 and 127, not work > typedef signed short InputPixelType; > typedef unsigned char UCharPixelType; > static const unsigned int InputDimension = 2;//Dimension of image > typedef itk::Image< InputPixelType, InputDimension > InputImageType;//Image > Type > typedef itk::Image< UCharPixelType, InputDimension > UCharImageType; > > typedef itk::ImageFileReader ReaderType; > ReaderType::Pointer reader = ReaderType::New(); > m_itkImage = InputImageType::New(); > reader->SetFileName("MG0244.dcm"); > reader->Update(); > m_itkImage->Graft(reader->GetOutput()); > > > typedef itk::BinaryThresholdImageFilter > BinaryThresholdFilterType; > typedef itk::BinaryBallStructuringElement > StructuringElementType; > typedef itk::BinaryDilateImageFilter StructuringElementType> BinaryDilateFilterType; > typedef itk::BinaryErodeImageFilter StructuringElementType> BinaryErodeFilterType; > > typedef itk::ImageToVTKImageFilter ConnectorType2; > ConnectorType2::Pointer connector2 = ConnectorType2::New(); > vtkSmartPointer mask = vtkSmartPointer::New(); > > BinaryThresholdFilterType::Pointer btfilter1 = > BinaryThresholdFilterType::New(); > BinaryDilateFilterType::Pointer bDilate1 = > BinaryDilateFilterType::New(); > BinaryErodeFilterType::Pointer bErode1 = > BinaryErodeFilterType::New(); > > btfilter1->SetLowerThreshold(100); > btfilter1->SetUpperThreshold(500); > btfilter1->SetInsideValue(foreground); > btfilter1->SetOutsideValue(0); > > StructuringElementType element1; > element1.SetRadius(3); > element1.CreateStructuringElement(); > bDilate1->SetKernel(element1); > bErode1->SetKernel(element1); > //bDilate1->SetDilateValue(foreground); //these two lines solve the problem > of non-255 values > //bErode1->SetErodeValue(foreground); > > btfilter1->SetInput(m_itkImage.GetPointer()); > bDilate1->SetInput(btfilter1->GetOutput()); > bErode1->SetInput(btfilter1->GetOutput()); > > connector2->SetInput( /*bErode1*/ bDilate1->GetOutput() ); > connector2->Update(); > mask->DeepCopy(connector2->GetOutput()); > > image_view->SetInputData(mask); > image_view->GetRenderer()->ResetCamera(); > image_view->Render(); > > > > > > > > -- > View this message in context: http://itk-users.7.n7.nabble.com/Issue-with-BinaryDilate-Erode-ImageFilter-with-not-0-255-binary-image-tp35774.html > Sent from the ITK - Users mailing list archive at Nabble.com. > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users From zagwin at gmail.com Fri Jun 5 18:42:04 2015 From: zagwin at gmail.com (zagwin) Date: Fri, 5 Jun 2015 15:42:04 -0700 (MST) Subject: [ITK-users] Issue with BinaryDilate(Erode)ImageFilter with not "0/255" binary image In-Reply-To: References: <1433540973885-35774.post@n7.nabble.com> Message-ID: <1433544124454-35776.post@n7.nabble.com> Thanks very much! I checked all my codes, it seems I used 255 for all other binary filters, so I did not face this case before. Now I set foreground value for all filters. Thanks -- View this message in context: http://itk-users.7.n7.nabble.com/Issue-with-BinaryDilate-Erode-ImageFilter-with-not-0-255-binary-image-tp35774p35776.html Sent from the ITK - Users mailing list archive at Nabble.com. From liyihai2009 at qq.com Fri Jun 5 20:43:35 2015 From: liyihai2009 at qq.com (=?gb18030?B?ste6o9K7y9o=?=) Date: Sat, 6 Jun 2015 08:43:35 +0800 Subject: [ITK-users] How to handle large data Message-ID: I tried to segment 3D image (about 4GB) with ConnectedThresholdImageFilter?but my laptop?s memory isn?t enough (it is equiped with 4GB memory). Is there any solution for this conditon ? -------------- next part -------------- An HTML attachment was scrubbed... URL: From liyihai2009 at qq.com Fri Jun 5 21:08:49 2015 From: liyihai2009 at qq.com (=?gb18030?B?ste6o9K7y9o=?=) Date: Sat, 6 Jun 2015 09:08:49 +0800 Subject: [ITK-users] How to get skeleton of 3D image Message-ID: I have a 3D image of tubular object. To calculate the length of the tubular object, I want to get the skeleton of it firstly. I know that BinaryThinningImageFilter can computes one-pixel-wide edges of a 2D image. But I don't know whether is there any filter can compute one-pixel-wide edges of 3D image ? If not, how can I get the skeleton of 3D image ? -------------- next part -------------- An HTML attachment was scrubbed... URL: From arnaudgelas at gmail.com Mon Jun 8 05:43:20 2015 From: arnaudgelas at gmail.com (Arnaud Gelas) Date: Mon, 8 Jun 2015 11:43:20 +0200 Subject: [ITK-users] Segfault in Wiki Example: QuadEdgeMeshParameterizationFilter In-Reply-To: <1433516957921-35771.post@n7.nabble.com> References: <1433516957921-35771.post@n7.nabble.com> Message-ID: Hi Davis, The QuadEdgeMeshParameterizationFilter is a fixed boundary parameterization and requires one input mesh with at least one boundary, it could not work with a sphere? I have updated the documentation in this patch: http://review.source.kitware.com/#/c/19888/ and added an exception in this one: http://review.source.kitware.com/#/c/19890/ Thanks for reporting! Best, Arnaud > On 05 Jun 2015, at 17:09, DVigneault wrote: > > All-- > > While running the QuadEdgeMesh Parameterization example from the wiki [1] > using the provided spherical mesh, I got a segfault on > itkBorderQuadEdgeMeshFilter.hxx:75: > > InputIteratorGeom it = bdryEdge->BeginGeomLnext(); > > The options I used were ./program sphere.vtk 0 0 output.vtk > > After some investigation, I believe it may be that sphere.vtk has no > internal edges. Therefore, BorderQuadEdgeMeshFilter::Evaluate is returning > an empty std::list, and list->Begin() is eventually dereferenced on the > above line. Should an itkWarningMacro() or itkExceptionMacro() be placed > before the above line, checking whether the list is empty? Or should this > be on the user? > > [1] > http://www.itk.org/Wiki/ITK/Examples/Meshes/QuadEdgeMeshParameterizationFilter > > One other thing that's a bit confusing--if I pass ./program sphere.vtk 1 0 > output.vtk (using DISK_BORDER_TRANSFORM instead of SQUARE_BORDER_TRANSFORM), > there is no segfault in the wiki example. In the small program below, > however, it segfaults in either case. > > Here's a program that describes the problem: > > #include "itkRegularSphereMeshSource.h" > #include "itkBorderQuadEdgeMeshFilter.h" > > typedef itk::QuadEdgeMesh< double, 3 > TMesh; > typedef itk::RegularSphereMeshSource< TMesh > TSource; > typedef itk::QuadEdgeMeshBoundaryEdgesMeshFunction< TMesh > TBorderFunction; > typedef itk::BorderQuadEdgeMeshFilter< TMesh, TMesh > TBorder; > int main( int argc, char* argv[] ) > { > > TSource::Pointer source = TSource::New(); > source->Update(); > TMesh::Pointer mesh = source->GetOutput(); > > TBorderFunction::Pointer fn = TBorderFunction::New(); > TMesh::EdgeListPointerType list = fn->Evaluate( *(mesh) ); > std::cout << list->size() << std::endl; // 0 > // A sphere has no internal edges > // Returns a std::list size zero > > TBorder::Pointer border = TBorder::New(); > border->SetTransformType( TBorder::SQUARE_BORDER_TRANSFORM ); > // Segfaults even if I change this to DISK_BORDER_TRANSFORM > border->SetInput( mesh ); > border->Update(); // Segfault > // itkBorderQuadEdgeMeshFilter.hxx:110 > // empty std::list is assigned to oborder_it > // for loop is bypassed b/c list->begin() == list->end() > // InputQEType* output = *oborder_it; > // return output; from ComputeLongestBorder > // InputQEType *bdryEdge = ComputeLongestBorder(); > > // Segfault: > // itkBoarderQuadEdgeMeshFilter.hxx:75 > // InputIteratorGeom it = bdryEdge->BeginGeomLnext(); > > return EXIT_SUCCESS; > > } > > > > > -- > View this message in context: http://itk-users.7.n7.nabble.com/Segfault-in-Wiki-Example-QuadEdgeMeshParameterizationFilter-tp35771.html > Sent from the ITK - Users mailing list archive at Nabble.com. > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From arnaudgelas at gmail.com Mon Jun 8 07:38:17 2015 From: arnaudgelas at gmail.com (Arnaud Gelas) Date: Mon, 8 Jun 2015 13:38:17 +0200 Subject: [ITK-users] Segfault in Wiki Example: QuadEdgeMeshParameterizationFilter In-Reply-To: References: <1433516957921-35771.post@n7.nabble.com> Message-ID: <83BD2024-440F-4625-9F43-B1C5BB605762@gmail.com> BTW, here is an example on how you could cut a mesh into 2: http://itk.org/ITKExamples/src/Core/QuadEdgeMesh/CutMesh/Documentation.html It can be useful to test parameterization? > On 08 Jun 2015, at 11:43, Arnaud Gelas wrote: > > Hi Davis, > > The QuadEdgeMeshParameterizationFilter is a fixed boundary parameterization and requires one input mesh with at least one boundary, it could not work with a sphere? > > I have updated the documentation in this patch: > > http://review.source.kitware.com/#/c/19888/ > > and added an exception in this one: > > http://review.source.kitware.com/#/c/19890/ > > Thanks for reporting! > > Best, > Arnaud > >> On 05 Jun 2015, at 17:09, DVigneault > wrote: >> >> All-- >> >> While running the QuadEdgeMesh Parameterization example from the wiki [1] >> using the provided spherical mesh, I got a segfault on >> itkBorderQuadEdgeMeshFilter.hxx:75: >> >> InputIteratorGeom it = bdryEdge->BeginGeomLnext(); >> >> The options I used were ./program sphere.vtk 0 0 output.vtk >> >> After some investigation, I believe it may be that sphere.vtk has no >> internal edges. Therefore, BorderQuadEdgeMeshFilter::Evaluate is returning >> an empty std::list, and list->Begin() is eventually dereferenced on the >> above line. Should an itkWarningMacro() or itkExceptionMacro() be placed >> before the above line, checking whether the list is empty? Or should this >> be on the user? >> >> [1] >> http://www.itk.org/Wiki/ITK/Examples/Meshes/QuadEdgeMeshParameterizationFilter >> >> One other thing that's a bit confusing--if I pass ./program sphere.vtk 1 0 >> output.vtk (using DISK_BORDER_TRANSFORM instead of SQUARE_BORDER_TRANSFORM), >> there is no segfault in the wiki example. In the small program below, >> however, it segfaults in either case. >> >> Here's a program that describes the problem: >> >> #include "itkRegularSphereMeshSource.h" >> #include "itkBorderQuadEdgeMeshFilter.h" >> >> typedef itk::QuadEdgeMesh< double, 3 > TMesh; >> typedef itk::RegularSphereMeshSource< TMesh > TSource; >> typedef itk::QuadEdgeMeshBoundaryEdgesMeshFunction< TMesh > TBorderFunction; >> typedef itk::BorderQuadEdgeMeshFilter< TMesh, TMesh > TBorder; >> int main( int argc, char* argv[] ) >> { >> >> TSource::Pointer source = TSource::New(); >> source->Update(); >> TMesh::Pointer mesh = source->GetOutput(); >> >> TBorderFunction::Pointer fn = TBorderFunction::New(); >> TMesh::EdgeListPointerType list = fn->Evaluate( *(mesh) ); >> std::cout << list->size() << std::endl; // 0 >> // A sphere has no internal edges >> // Returns a std::list size zero >> >> TBorder::Pointer border = TBorder::New(); >> border->SetTransformType( TBorder::SQUARE_BORDER_TRANSFORM ); >> // Segfaults even if I change this to DISK_BORDER_TRANSFORM >> border->SetInput( mesh ); >> border->Update(); // Segfault >> // itkBorderQuadEdgeMeshFilter.hxx:110 >> // empty std::list is assigned to oborder_it >> // for loop is bypassed b/c list->begin() == list->end() >> // InputQEType* output = *oborder_it; >> // return output; from ComputeLongestBorder >> // InputQEType *bdryEdge = ComputeLongestBorder(); >> >> // Segfault: >> // itkBoarderQuadEdgeMeshFilter.hxx:75 >> // InputIteratorGeom it = bdryEdge->BeginGeomLnext(); >> >> return EXIT_SUCCESS; >> >> } >> >> >> >> >> -- >> View this message in context: http://itk-users.7.n7.nabble.com/Segfault-in-Wiki-Example-QuadEdgeMeshParameterizationFilter-tp35771.html >> Sent from the ITK - Users mailing list archive at Nabble.com. >> _____________________________________ >> 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://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Mon Jun 8 12:28:10 2015 From: matt.mccormick at kitware.com (Matt McCormick) Date: Mon, 8 Jun 2015 12:28:10 -0400 Subject: [ITK-users] How to get skeleton of 3D image In-Reply-To: References: Message-ID: Hello, The MinimalPathExtraction [1] module is now available in Git master [2] as a Remote Module [3]. It may be helpful for your problem. HTH, Matt [1] http://www.insight-journal.org/browse/publication/213 [2] http://www.itk.org/Wiki/ITK/Git/Download [3] http://www.itk.org/Wiki/ITK/Policy_and_Procedures_for_Adding_Remote_Modules On Fri, Jun 5, 2015 at 9:08 PM, ???? wrote: > I have a 3D image of tubular object. To calculate the length of the > tubular object, I want to get the skeleton of it firstly. I know that > BinaryThinningImageFilter can computes one-pixel-wide edges of a 2D image. > But I don't know whether is there any filter can compute one-pixel-wide > edges of 3D image ? If not, how can I get the skeleton of 3D image ? > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From zagwin at gmail.com Mon Jun 8 14:34:37 2015 From: zagwin at gmail.com (zagwin) Date: Mon, 8 Jun 2015 11:34:37 -0700 (MST) Subject: [ITK-users] itkConnectedThresholdImageFilter does not support Progress? Message-ID: <1433788477829-35782.post@n7.nabble.com> Hello, I made a minipipeline using MedianImageFilter, ConnectedThresholdImageFilter, and BinaryDilateImageFilter. My progress bar will increase from 0->0.5 slowly, and then stop 0.5 for a while, and jump to 0.75, and increase slowly to 1. So, I suppose the ConnectedThresholdImageFilter does not support progress. Am I right? or I made a mistake? In the ::GenerateData() { typename ProgressAccumulator::Pointer progress = ProgressAccumulator::New(); progress->SetMiniPipelineFilter(this); //Get InputImage const typename TInput::ConstPointer inputImage( this->GetInput() ); typedef itk::MedianImageFilter MedianImageFilterType; typedef itk::ConnectedThresholdImageFilter ConnectedThresholdFilterType; typedef itk::BinaryBallStructuringElement StructuringElementType; typedef itk::BinaryDilateImageFilter BinaryDilateFilterType; MedianImageFilterType::Pointer medianfilter = MedianImageFilterType::New(); ConnectedThresholdFilterType::Pointer ccthreshold = ConnectedThresholdFilterType::New(); BinaryDilateFilterType::Pointer bDilate = BinaryDilateFilterType::New(); progress->RegisterInternalFilter(medianfilter,.5f); progress->RegisterInternalFilter(ccthreshold, .25f); progress->RegisterInternalFilter(bDilate, .25f); ....... } -- View this message in context: http://itk-users.7.n7.nabble.com/itkConnectedThresholdImageFilter-does-not-support-Progress-tp35782.html Sent from the ITK - Users mailing list archive at Nabble.com. From carsonc at gmail.com Mon Jun 8 15:25:27 2015 From: carsonc at gmail.com (Cantwell Carson) Date: Mon, 8 Jun 2015 15:25:27 -0400 Subject: [ITK-users] Fwd: How to get skeleton of 3D image In-Reply-To: References: Message-ID: Try the routine by Hanno Homann. http://www.insight-journal.org/browse/publication/181 I don't know why this is not already in itk. It is the basis for the same routine in ImageJ and Python (skelet3d), but it is not included in the standard itk package. Good luck! On Jun 5, 2015 9:16 PM, "????" wrote: > I have a 3D image of tubular object. To calculate the length of the > tubular object, I want to get the skeleton of it firstly. I know that > BinaryThinningImageFilter can computes one-pixel-wide edges of a 2D image. > But I don't know whether is there any filter can compute one-pixel-wide > edges of 3D image ? If not, how can I get the skeleton of 3D image ? > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From blowekamp at mail.nih.gov Mon Jun 8 15:13:23 2015 From: blowekamp at mail.nih.gov (Bradley Lowekamp) Date: Mon, 08 Jun 2015 15:13:23 -0400 Subject: [ITK-users] itkConnectedThresholdImageFilter does not support Progress? In-Reply-To: <1433788477829-35782.post@n7.nabble.com> References: <1433788477829-35782.post@n7.nabble.com> Message-ID: Please make sure you are compiling your code in Release mode. It can make over a 10X performance difference. The median image filter is not fast for large regions. You may want to look into the FastApproximageRankImageFilter [1, 2], or just the RankImageFilter. You can look at how The ConnectedThresholdImageFitler reports progress in the code [3]. It does as good of a job as possible reporting progress. It will go smoothly for the number of pixels in the region, then just at the end for the number of pixels not visited. You may want to look into teh GrayscaleDilateImageFilter to do you binary morphology [4]. HTH, Brad [1] http://www.itk.org/Doxygen/html/classitk_1_1FastApproximateRankImageFilter.html [2] http://www.insight-journal.org/browse/publication/160 [3] https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Segmentation/RegionGrowing/include/itkConnectedThresholdImageFilter.hxx#L268-L328 [4] http://www.itk.org/Doxygen/html/classitk_1_1GrayscaleDilateImageFilter.html On Jun 8, 2015, at 2:34 PM, zagwin wrote: > Hello, > > I made a minipipeline using MedianImageFilter, > ConnectedThresholdImageFilter, and BinaryDilateImageFilter. My progress bar > will increase from 0->0.5 slowly, and then stop 0.5 for a while, and jump to > 0.75, and increase slowly to 1. So, I suppose the > ConnectedThresholdImageFilter does not support progress. Am I right? or I > made a mistake? > > In the ::GenerateData() > { > > typename ProgressAccumulator::Pointer progress = ProgressAccumulator::New(); > progress->SetMiniPipelineFilter(this); > //Get InputImage > const typename TInput::ConstPointer inputImage( this->GetInput() ); > > typedef itk::MedianImageFilter > MedianImageFilterType; > typedef itk::ConnectedThresholdImageFilter > ConnectedThresholdFilterType; > typedef itk::BinaryBallStructuringElement ImageDimension> StructuringElementType; > typedef itk::BinaryDilateImageFilter OutputImageType, StructuringElementType> BinaryDilateFilterType; > > MedianImageFilterType::Pointer medianfilter = > MedianImageFilterType::New(); > ConnectedThresholdFilterType::Pointer ccthreshold = > ConnectedThresholdFilterType::New(); > BinaryDilateFilterType::Pointer bDilate = > BinaryDilateFilterType::New(); > > progress->RegisterInternalFilter(medianfilter,.5f); > progress->RegisterInternalFilter(ccthreshold, .25f); > progress->RegisterInternalFilter(bDilate, .25f); > > ....... > } > > > > -- > View this message in context: http://itk-users.7.n7.nabble.com/itkConnectedThresholdImageFilter-does-not-support-Progress-tp35782.html > Sent from the ITK - Users mailing list archive at Nabble.com. > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From zagwin at gmail.com Mon Jun 8 17:21:00 2015 From: zagwin at gmail.com (zagwin) Date: Mon, 8 Jun 2015 14:21:00 -0700 (MST) Subject: [ITK-users] itkConnectedThresholdImageFilter does not support Progress? In-Reply-To: References: <1433788477829-35782.post@n7.nabble.com> Message-ID: <1433798460968-35785.post@n7.nabble.com> Hello Brad, Thanks for your suggestions. <1>I did compile my project in release mode, and the ConnectedThresholdImageFilter does not show progress. <2>I tried your suggested FastApproximageRankImageFilter, it works, however, very strange, it is much slower than using medianfilter. First, I check this using my project and see the progress of my progressBar. Second, I created a simple project with two functions, the first is to load image, the second is to run median and fast rank as this: ProcessData() { typedef itk::MedianImageFilter MedianFilterType; typedef itk::FastApproximateRankImageFilter FastRankFilterType; typedef InputImageType::SizeType ImageSizeType; MedianFilterType::Pointer smooth1 = MedianFilterType::New(); FastRankFilterType::Pointer smooth2 = FastRankFilterType::New(); ImageSizeType radius1; radius1.Fill(1); smooth1->SetRadius( radius1 ); smooth2->SetRadius( radius1 ); smooth1->SetInput(m_itkImage); smooth2->SetInput(m_itkImage); QTime time; time.start(); //ms int iter_num = 5; for (int i=0; i< iter_num; ++i) { smooth1->Modified(); smooth1->Update(); } int time_Diff = time.elapsed(); std::cerr << "Median time ms " << time_Diff << std::endl; time.start(); for (int i=0; i< iter_num; ++i) { smooth2->Modified(); smooth2->Update(); } time_Diff = time.elapsed(); std::cerr << "FastRank time ms " << time_Diff << std::endl; } The result is "Median time ms 90" and "FastRank time ms 27998" <3> I created simple project with one function to test ConnectedThresholdImageFilter. MainWindow::ProcessData() { typedef itk::ConnectedThresholdImageFilter ConnectedThresholdFilterType; typedef InputImageType::IndexType SeedIndexType; ConnectedThresholdFilterType::Pointer ccthreshold = ConnectedThresholdFilterType::New(); ItkQtProgress *progress = new ItkQtProgress(this); progress->Observe(ccthreshold.GetPointer()); connect(progress, SIGNAL(postValue(float)), this, SLOT(slot_progress(float))); ccthreshold->SetLower(-1000); ccthreshold->SetUpper(-300); ccthreshold->SetReplaceValue(255); SeedIndexType seed; seed[0] = 156; seed[1] = 250; ccthreshold->SetSeed(seed); ccthreshold->SetInput(m_itkImage); ccthreshold->Update(); } void MainWindow::slot_progress(float progress) { std::cout << "Progress value " << progress << std::endl; } The result is "Progress value 0" and "Progress value 1", no other value, it is the same as my "big" project using my progress bar. I also try this simple project to test others, such as MeadianFilter, it DOES have other value beside 0/1 <4> I don't understand, since the output of ConnectedThresholdFilter is Binary, why use GrayscaleDilateImageFilter other than BinaryDilateImageFilter? I think the BinaryDilateFilter should be faster, am I right? Bradley Lowekamp wrote > Please make sure you are compiling your code in Release mode. It can make > over a 10X performance difference. > > The median image filter is not fast for large regions. You may want to > look into the FastApproximageRankImageFilter [1, 2], or just the > RankImageFilter. > > You can look at how The ConnectedThresholdImageFitler reports progress in > the code [3]. It does as good of a job as possible reporting progress. It > will go smoothly for the number of pixels in the region, then just at the > end for the number of pixels not visited. > > You may want to look into teh GrayscaleDilateImageFilter to do you binary > morphology [4]. > > HTH, > Brad > > [1] > http://www.itk.org/Doxygen/html/classitk_1_1FastApproximateRankImageFilter.html > [2] http://www.insight-journal.org/browse/publication/160 > [3] > https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Segmentation/RegionGrowing/include/itkConnectedThresholdImageFilter.hxx#L268-L328 > [4] > http://www.itk.org/Doxygen/html/classitk_1_1GrayscaleDilateImageFilter.html -- View this message in context: http://itk-users.7.n7.nabble.com/itkConnectedThresholdImageFilter-does-not-support-Progress-tp35782p35785.html Sent from the ITK - Users mailing list archive at Nabble.com. From davis.vigneault at gmail.com Tue Jun 9 07:30:27 2015 From: davis.vigneault at gmail.com (DVigneault) Date: Tue, 9 Jun 2015 04:30:27 -0700 (MST) Subject: [ITK-users] Segfault in Wiki Example: QuadEdgeMeshParameterizationFilter In-Reply-To: <83BD2024-440F-4625-9F43-B1C5BB605762@gmail.com> References: <1433516957921-35771.post@n7.nabble.com> <83BD2024-440F-4625-9F43-B1C5BB605762@gmail.com> Message-ID: <1433849427767-7587459.post@n2.nabble.com> Arnaud-- Thanks again for the patches, and also the link to the wiki example! The link to your insight submission was especially helpful [1]. Once you're parameterized the mesh, is there any way to invert the transform? That is, can you either (a) given a position on the parameterized mesh, find the corresponding position on the original mesh or (b) after modifying the parameterized mesh, transform it back to the original mesh space? An example of what I'm talking about is on page 15 of "Surface Parameterization: A Tutorial and Survey" [2], referenced in your article ("remeshing"). I've looked through the public member functions of ParameterizationQuadEdgeMeshFilter [3] and BorderQuadEdgeMeshFilter [4] but haven't found anything that looks like it provides the functionality. Best, and thanks again, --Davis [1] http://www.insight-journal.org/browse/publication/202 [2] http://vcg.isti.cnr.it/Publications/2005/FH05/survey_mingle04.pdf [3] http://www.itk.org/Doxygen/html/classitk_1_1ParameterizationQuadEdgeMeshFilter.html [4] http://www.itk.org/Doxygen/html/classitk_1_1BorderQuadEdgeMeshFilter.html -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/ITK-users-Segfault-in-Wiki-Example-QuadEdgeMeshParameterizationFilter-tp7587442p7587459.html Sent from the ITK Insight Users mailing list archive at Nabble.com. From arnaudgelas at gmail.com Tue Jun 9 08:09:57 2015 From: arnaudgelas at gmail.com (Arnaud Gelas) Date: Tue, 9 Jun 2015 14:09:57 +0200 Subject: [ITK-users] Segfault in Wiki Example: QuadEdgeMeshParameterizationFilter In-Reply-To: <1433849427767-7587459.post@n2.nabble.com> References: <1433516957921-35771.post@n7.nabble.com> <83BD2024-440F-4625-9F43-B1C5BB605762@gmail.com> <1433849427767-7587459.post@n2.nabble.com> Message-ID: Davis, > On 09 Jun 2015, at 13:30, DVigneault wrote: > > Arnaud-- > > Thanks again for the patches, and also the link to the wiki example! The > link to your insight submission was especially helpful [1]. > > Once you're parameterized the mesh, is there any way to invert the > transform? That is, can you either (a) given a position on the > parameterized mesh, find the corresponding position on the original mesh or Yes, you need to find in which triangle the point is in. You can have a look at this insight journal paper to do it efficiently (especially, if you need to compute it extensively) http://www.insight-journal.org/browse/publication/851 Then, you compute the barycentric coordinate of that point in that triangle in 2D, you use the same barycentric coordinate on corresponding points in 3D to get the final point. > (b) after modifying the parameterized mesh, transform it back to the > original mesh space? You would use exactly the same approach as mentioned above HTH > An example of what I'm talking about is on page 15 of > "Surface Parameterization: A Tutorial and Survey" [2], referenced in your > article ("remeshing"). I've looked through the public member functions of > ParameterizationQuadEdgeMeshFilter [3] and BorderQuadEdgeMeshFilter [4] but > haven't found anything that looks like it provides the functionality. > > Best, and thanks again, > > --Davis > > [1] http://www.insight-journal.org/browse/publication/202 > [2] http://vcg.isti.cnr.it/Publications/2005/FH05/survey_mingle04.pdf > [3] > http://www.itk.org/Doxygen/html/classitk_1_1ParameterizationQuadEdgeMeshFilter.html > [4] > http://www.itk.org/Doxygen/html/classitk_1_1BorderQuadEdgeMeshFilter.html > > > > -- > View this message in context: http://itk-insight-users.2283740.n2.nabble.com/ITK-users-Segfault-in-Wiki-Example-QuadEdgeMeshParameterizationFilter-tp7587442p7587459.html > Sent from the ITK Insight Users mailing list archive at Nabble.com. > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From blowekamp at mail.nih.gov Tue Jun 9 10:16:29 2015 From: blowekamp at mail.nih.gov (Bradley Lowekamp) Date: Tue, 09 Jun 2015 10:16:29 -0400 Subject: [ITK-users] itkConnectedThresholdImageFilter does not support Progress? In-Reply-To: <1433798460968-35785.post@n7.nabble.com> References: <1433788477829-35782.post@n7.nabble.com> <1433798460968-35785.post@n7.nabble.com> Message-ID: <0A4D868B-6A45-457F-BABE-1E507FE70D30@mail.nih.gov> Hello, I used SimpleITK in an IPython Jupiter Notebook to explore some of your questions. It can be found here: http://nbviewer.ipython.org/github/blowekamp/SimpleITK-Notebook-Answers/blob/master/ConnectedThresholdAndOtherFilterPerformance.ipynb 2) I was able to reproduce you experiment that the Median filter was faster that either of the rank filters. However this is very dependent on the image size and the radius of the neighborhood. 3) I was able to confirm that the ConnectedThresholdImageFilter does report progress as the region is growing. This is either a problem with your Qt application or you have a very small region growing that is less the 1% of the image. 4) In the notebook I did a brief comparison of the Binary and Grayscale dilate. For binary images they will result in the same output. They implement different algorithms, so they have different performance characteristics. I'd recommend reading the InsightJournal article [1] [2], and their reference papers on the algorithms used. HTH, Brad [1] http://hdl.handle.net/1926/173 [2] http://hdl.handle.net/1926/308 On Jun 8, 2015, at 5:21 PM, zagwin wrote: > Hello Brad, > > Thanks for your suggestions. > <1>I did compile my project in release mode, and the > ConnectedThresholdImageFilter does not show progress. > > <2>I tried your suggested FastApproximageRankImageFilter, it works, however, > very strange, it is much slower than using medianfilter. > First, I check this using my project and see the progress of my progressBar. > Second, I created a simple project with two functions, the first is to load > image, the second is to run median and fast rank as this: > ProcessData() > { > typedef itk::MedianImageFilter > MedianFilterType; > typedef itk::FastApproximateRankImageFilter > FastRankFilterType; > typedef InputImageType::SizeType ImageSizeType; > > MedianFilterType::Pointer smooth1 = MedianFilterType::New(); > FastRankFilterType::Pointer smooth2 = FastRankFilterType::New(); > > ImageSizeType radius1; > radius1.Fill(1); > smooth1->SetRadius( radius1 ); > smooth2->SetRadius( radius1 ); > > smooth1->SetInput(m_itkImage); > smooth2->SetInput(m_itkImage); > > QTime time; > time.start(); //ms > int iter_num = 5; > for (int i=0; i< iter_num; ++i) > { > smooth1->Modified(); > smooth1->Update(); > } > int time_Diff = time.elapsed(); > std::cerr << "Median time ms " << time_Diff << std::endl; > > time.start(); > for (int i=0; i< iter_num; ++i) > { > smooth2->Modified(); > smooth2->Update(); > } > time_Diff = time.elapsed(); > std::cerr << "FastRank time ms " << time_Diff << std::endl; > } > The result is "Median time ms 90" and "FastRank time ms 27998" > > <3> I created simple project with one function to test > ConnectedThresholdImageFilter. > MainWindow::ProcessData() > { > typedef itk::ConnectedThresholdImageFilter UCharImageType> ConnectedThresholdFilterType; > typedef InputImageType::IndexType SeedIndexType; > > ConnectedThresholdFilterType::Pointer ccthreshold = > ConnectedThresholdFilterType::New(); > > ItkQtProgress *progress = new ItkQtProgress(this); > progress->Observe(ccthreshold.GetPointer()); > connect(progress, SIGNAL(postValue(float)), this, > SLOT(slot_progress(float))); > > ccthreshold->SetLower(-1000); > ccthreshold->SetUpper(-300); > ccthreshold->SetReplaceValue(255); > > SeedIndexType seed; > seed[0] = 156; > seed[1] = 250; > ccthreshold->SetSeed(seed); > > ccthreshold->SetInput(m_itkImage); > > ccthreshold->Update(); > } > void MainWindow::slot_progress(float progress) > { > std::cout << "Progress value " << progress << std::endl; > } > > The result is "Progress value 0" and "Progress value 1", no other value, it > is the same as my "big" project using my progress bar. > I also try this simple project to test others, such as MeadianFilter, it > DOES have other value beside 0/1 > > <4> I don't understand, since the output of ConnectedThresholdFilter is > Binary, why use GrayscaleDilateImageFilter other than > BinaryDilateImageFilter? I think the BinaryDilateFilter should be faster, am > I right? > > > Bradley Lowekamp wrote >> Please make sure you are compiling your code in Release mode. It can make >> over a 10X performance difference. >> >> The median image filter is not fast for large regions. You may want to >> look into the FastApproximageRankImageFilter [1, 2], or just the >> RankImageFilter. >> >> You can look at how The ConnectedThresholdImageFitler reports progress in >> the code [3]. It does as good of a job as possible reporting progress. It >> will go smoothly for the number of pixels in the region, then just at the >> end for the number of pixels not visited. >> >> You may want to look into teh GrayscaleDilateImageFilter to do you binary >> morphology [4]. >> >> HTH, >> Brad >> >> [1] >> http://www.itk.org/Doxygen/html/classitk_1_1FastApproximateRankImageFilter.html >> [2] http://www.insight-journal.org/browse/publication/160 >> [3] >> https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Segmentation/RegionGrowing/include/itkConnectedThresholdImageFilter.hxx#L268-L328 >> [4] >> http://www.itk.org/Doxygen/html/classitk_1_1GrayscaleDilateImageFilter.html > > > > > > -- > View this message in context: http://itk-users.7.n7.nabble.com/itkConnectedThresholdImageFilter-does-not-support-Progress-tp35782p35785.html > Sent from the ITK - Users mailing list archive at Nabble.com. > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From zagwin at gmail.com Tue Jun 9 12:47:39 2015 From: zagwin at gmail.com (zagwin) Date: Tue, 9 Jun 2015 09:47:39 -0700 (MST) Subject: [ITK-users] itkConnectedThresholdImageFilter does not support Progress? In-Reply-To: <0A4D868B-6A45-457F-BABE-1E507FE70D30@mail.nih.gov> References: <1433788477829-35782.post@n7.nabble.com> <1433798460968-35785.post@n7.nabble.com> <0A4D868B-6A45-457F-BABE-1E507FE70D30@mail.nih.gov> Message-ID: <1433868459913-35789.post@n7.nabble.com> Thank Brad, Thanks for your informative experiments. 2> Yes, when I increased the radius of the neighborhood (such as setting radius as 50 for 512*512 2D grey-level image), FastRankFilter will win. However, usually, I will only need to smooth in a small neighbor in 2D or 3D grey-level image. I think FastRankFilter will be useful when radius is big, or in high-dimension data. 3>You are right, my region is small compared to the whole data (However, it is bigger than 1%, I calculated it, around 5%). I changed parameters to region growing the "background" which occupied most parts of the image, it did report the progress. I will try to see if I can figure out a walk-around way to do it. 4>Thanks for the links and your experiments, I will read them to compare. and choose the right one for my specific application. Weldon -- View this message in context: http://itk-users.7.n7.nabble.com/itkConnectedThresholdImageFilter-does-not-support-Progress-tp35782p35789.html Sent from the ITK - Users mailing list archive at Nabble.com. From davis.vigneault at gmail.com Wed Jun 10 09:05:23 2015 From: davis.vigneault at gmail.com (DVigneault) Date: Wed, 10 Jun 2015 06:05:23 -0700 (MST) Subject: [ITK-users] Segfault in Wiki Example: QuadEdgeMeshParameterizationFilter In-Reply-To: References: <1433516957921-35771.post@n7.nabble.com> <83BD2024-440F-4625-9F43-B1C5BB605762@gmail.com> <1433849427767-7587459.post@n2.nabble.com> Message-ID: <1433941523063-7587463.post@n2.nabble.com> Arnaud-- Thank you for your help, and for the link to the Insight article! I was able to compile and use the Point In Circle [1] example without difficulty. I had a little more trouble with the Straight Walk [2] example. I've written reviews for both on IJ. I've reproduced below the part of the review describing the steps I needed to take to get the Straight Walk example working. 1. It appears that the submodule is not linked correctly in github. I needed to remove the .gitmodules file and add the submodule manually. Here is my StackOverflow question [3] which solved the problem. 2. I had to change WalkInTriangulation/CMakeLists.txt:6: include( ${USE_ITK_FILE}) ==> include( ${ITK_USE_FILE}) 3. At this point, CMake runs without errors; but when building I'm told that OrientationTest is missing. I assumed that OrientationTest is a wrapper for orient2d, and added the following function to itkWalkInTriangulationFunction.h: template< typename TPoint > double OrientationTest( TPoint a, TPoint b, TPoint c ) { double pa[2]; double pb[2]; double pc[2]; pa[0] = a[0]; pa[1] = a[1]; pb[0] = b[0]; pb[1] = b[1]; pc[0] = c[0]; pc[1] = c[1]; return orient2d(pa, pb, pc); } With those changes, the example seems to work correctly, though I haven't done thorough testing yet. Best, and thanks again, --Davis [1] https://github.com/midas-journal/midas-journal-843 [2] https://github.com/midas-journal/midas-journal-851 [3] http://stackoverflow.com/questions/30754878/recursively-cloning-a-git-repo-doesnt-pull-submodules/30756107#30756107 -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/ITK-users-Segfault-in-Wiki-Example-QuadEdgeMeshParameterizationFilter-tp7587442p7587463.html Sent from the ITK Insight Users mailing list archive at Nabble.com. From shrikantvc at gmail.com Wed Jun 10 12:41:13 2015 From: shrikantvc at gmail.com (shrikant) Date: Wed, 10 Jun 2015 09:41:13 -0700 (MST) Subject: [ITK-users] differences in the output of OptimizerType::ParameterType on different linux version In-Reply-To: References: <1433533919534-7587443.post@n2.nabble.com> Message-ID: <1433954473815-7587464.post@n2.nabble.com> Thank you very much for reply. Do you know which one is correct though? -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/differences-in-the-output-of-OptimizerType-ParameterType-on-different-linux-version-tp7587443p7587464.html Sent from the ITK Insight Users mailing list archive at Nabble.com. From matt.mccormick at kitware.com Wed Jun 10 13:16:27 2015 From: matt.mccormick at kitware.com (Matt McCormick) Date: Wed, 10 Jun 2015 13:16:27 -0400 Subject: [ITK-users] differences in the output of OptimizerType::ParameterType on different linux version In-Reply-To: <1433954473815-7587464.post@n2.nabble.com> References: <1433533919534-7587443.post@n2.nabble.com> <1433954473815-7587464.post@n2.nabble.com> Message-ID: Due to the discrete nature of computers, one or the other will be "more correct". To evaluate which libm is generating more desirable results, a quantitative metric, such as the mean distance between transformed fiducials, can be computed. Docker or a virtual machine can be used to guarantee more consistent results. The libm will be the same in this case. Hope this helps, Matt On Wed, Jun 10, 2015 at 12:41 PM, shrikant wrote: > Thank you very much for reply. > > Do you know which one is correct though? > > > > -- > View this message in context: > http://itk-insight-users.2283740.n2.nabble.com/differences-in-the-output-of-OptimizerType-ParameterType-on-different-linux-version-tp7587443p7587464.html > Sent from the ITK Insight Users mailing list archive at Nabble.com. > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Thu Jun 11 13:10:59 2015 From: matt.mccormick at kitware.com (Matt McCormick) Date: Thu, 11 Jun 2015 13:10:59 -0400 Subject: [ITK-users] ITK 4.8.0 Release Candidate 1 is ready for testing! Message-ID: On behalf of the Insight Toolkit community, we are proud to announce that ITK 4.8.0 release candidate 1 has been tagged and is available for testing! Please take this opportunity to test the new features in the release candidate. To obtain the source code, git clone http://itk.org/ITK.git cd ITK git checkout -q --detach v4.8rc01 For more details, please see the Git documentation [1]. A few selected highlights for this release: - New remote modules: BridgeNumPy, LabelErodeDilate, and ParabolicMorphology. - itk::FFTPadImageFilter to automatically pad images for the FFT implementation?s supported greatest prime factor - Additional point set registration capabilities. - More modules can be built as shared libraries. - GDCM, MetaIO, KWSys, MINC have been updated to their latest upstream versions. - Python wrapping is in excellent shape and works with the latest GCC, Clang, and MSVC. - Experimental cross-compilation support for Windows (MinGW-w64), ARMv6 (Raspberry Pi), ARMv7 (Android), ppc64le (POWER8), and JavaScript (Emscripten). A more complete, detailed set of release notes will follow in subsequent release candidates. Please test the release candidate and share your experiences on the mailing list, issue tracker, and Gerrit Code Review. Since GDCM has seen a major upgrade to the latest version, please exercise DICOM IO, and be on the lookout for regressions. An Experimental build, which demonstrates how the test suite performs on your local build system, can be submitted to the dashboard [2] with: mkdir ../ITK-build cd ../ITK-build cmake ../ITK ctest -j 4 -M Experimental -T Configure -T Build -T Test -T Submit Notify the mailing list if there are any unexpected failures. Testing your own applications against the RC is also appreciated. Congratulations and well done to the 31 contributors to this release. We would especially like to recognize the new contributors, David Froger, Cyril Mory, Dzenan Zukic, Ivan Setiawan, Jan Bergmeier, Rolf Eike Beer, Davis Vigneault, Gary JIA, and Alexander Hewer. The final release will be approximately three week from now. [1] http://www.itk.org/Wiki/ITK/Git [2] http://open.cdash.org/index.php?project=Insight ----------------------------------------------------- Errors or omissions? Please fix them here: https://docs.google.com/document/d/1AQolOw7Hpn7SCRg0LjH53nxdWJe2gJTR0ngOyg3PWxI/edit?usp=sharing From Denis.Abu-Sammour at medma.uni-heidelberg.de Fri Jun 12 03:07:15 2015 From: Denis.Abu-Sammour at medma.uni-heidelberg.de (Abu-Sammour, Denis) Date: Fri, 12 Jun 2015 09:07:15 +0200 Subject: [ITK-users] Neighborhood Iterators moving at intervals Message-ID: <5E843F0B86B47846B72559B57A54F96217C759CE86@MBX02.ad.uni-heidelberg.de> Hello, Thanks for your time in advance. So what I am trying to do is to iterate through the region of the image with a neighborhood iterator but instead of letting the center pixel of the neighborhood iterator visit all image pixels I want it sort of jump to pixels spaced at constant intervals. So say I force the Neighborhood iterator to start at pixel (10,10) by using " Iterator.SetLocation() " and assuming a constant step of 10, how can I force the neighborhood iterator to jump to pixel (20,10) for the 2nd iteration then to pixel (30,10) at the 3rd iteration and so on.. ? I tried defining an Offset " itk::Offset <2> BlockOffset " such that " BlockOffset[0] = 10 " and " BlockOffset[1] = 10 ". Plugging that into the Neighborhood Iterator for loop " BlockIterator += (BlockOffset) " I found out that the neighborhood will jump in a diagonal manner through the image. Afterwards, I redefined " BlockOffset[0] = 10 " while " BlockOffset[1] = 0 ", the iterator moved as planned in the x-direction jumping at regular steps of 10 pixels as needed however, it did not move to the next row of the image i.e. the neighborhood iterator kept moving in the x-direction even after exceeding the image x-dimension until a RunTime error occurred! I tried to introduce " NeedToUseBoundaryConditionOn() " and a Face Calculator " itk::ImageBoundaryFacesCalculator " with no success. Please note the region supplied to the iterator is well defined ( as a OutputImage->GetLargestPossibleRegion() ) and the problem did not occur when I used the regular Neighborhood Iterator which starts at " BlockIterator.GoToBegin() " and incremented 1 pixel at a time (BlockIterator++). It appears that the Neighborhood iterator algorithm moves to the next row only if it encounters the pixel that is just outside the required region, therefore, when jumping at particular steps this pixel is almost never visited instead the iterator jumps to a pixel that is some distance outside the requested region and thus it does not go to the next row. So far I was forced to use the latter approach (starting at the 1st pixel in the image and incrementing by 1 pixel at each neighborhood iteration) with Getting the Image Index of the center of the Neighborhood iterator at the current iteration, checking wither it is at the desired location, and proceeding with computations if it is the case: for (BlockIterator.GoToBegin(); !BlockIterator.IsAtEnd(); BlockIterator++) { BlockCenter = BlockIt.GetIndex(); if (BlockCenter[0] % StepSize == 0 && BlockCenter[1] % StepSize == 0 && BlockCenter[0] != 0 && BlockCenter[1] != 0) { //Proceed with computations } } However, this approach is hardly efficient. Please Advise. Regards Denis -------------- next part -------------- An HTML attachment was scrubbed... URL: From coyarzunlaura at googlemail.com Fri Jun 12 07:52:46 2015 From: coyarzunlaura at googlemail.com (Cristina Oyarzun) Date: Fri, 12 Jun 2015 13:52:46 +0200 Subject: [ITK-users] CFP: MICCAI CLIP 2015. Deadline approaching! Message-ID: CALL FOR PAPERS MICCAI 2015 Workshop on Clinical Image-based Procedures: Translational Research in Medical Imaging October 5, 2015 Munich, Germany Website:http://miccai-clip.org/ ============================== ========================================== SCOPE The outstanding proliferation of medical image applications has created a need for greater study and scrutiny of the clinical application and validation of such methods. New strategies are essential to ensure a smooth and effective translation of computational image-based techniques into the clinic. For these reasons CLIP 2015?s major focus is on *translational research *filling the gaps between basic science and clinical applications. A highlight of the workshop is the subject of *strategies for personalized medicine *to enhance diagnosis, treatment and interventions. Authors are encouraged to submit work centered on specific clinical applications, including techniques and procedures based on comprehensive clinical image data. Submissions related to applications already in use and evaluated by clinical users are particularly encouraged. The event will bring together world-class specialists to present ways to strengthen links between computer scientists and engineers, and clinicians. TOPICS *Strategies for patient-specific and anatomical modeling to support planning and interventions *Clinical studies employing advanced image-guided methods *Clinical translation and validation of image-guided systems *Current challenges and emerging techniques in image-based procedures *Identification of parameters and error analysis in image-based procedures *Multimodal image integration for modeling, planning and guidance *Clinical applications in open and minimally invasive procedures PAPER SUBMISSION Papers will be limited to eight pages following the MICCAI submission guidelines. Prospective authors should refer to the Paper Submission section on the workshop website for details on how to submit papers to be presented at the workshop. All submissions will be peer-reviewed by at least 2 members of the program committee. The selection of the papers will be based on the significance of results, novelty, technical merit, relevance and clarity of presentation. Papers will be presented in a day long single track workshop starting with plenary sessions. Accepted papers will be published as a post-proceedings volume in the Springer Lecture Notes in Computer Science (LNCS) series after the workshop. WORKSHOP FORMAT Accepted papers will be presented in a day long single track workshop. The final program will consist of invited speakers and original papers with time allocated for discussions. Electronic proceedings will be arranged for all of the papers presented at the workshop. IMPORTANT DATES * June 19, 2015: Paper submission due date * July 17, 2015: Notification of acceptance CONTACT Inquires about the workshop should be sent to the Information Desk (info@ miccai-clip.org). ORGANIZERS (in alphabetical order) Klaus Drechsler (Fraunhofer IGD, Germany) Marius Erdt (Fraunhofer IDM at NTU, Singapore) Miguel Gonz?lez Ballester (ICREA - Universitat Pompeu Fabra, Spain) Marius George Linguraru (Children's National Medical Center, USA) Cristina Oyarzun Laura (Fraunhofer IGD, Germany) Yoshinobu Sato (Nara Institute of Science and Technology, Japan) Raj Shekhar (Children's National Medical Center, USA) Stefan Wesarg (Fraunhofer IGD, Germany) ======================================================================== -------------- next part -------------- An HTML attachment was scrubbed... URL: From arnaudgelas at gmail.com Fri Jun 12 07:54:29 2015 From: arnaudgelas at gmail.com (Arnaud Gelas) Date: Fri, 12 Jun 2015 13:54:29 +0200 Subject: [ITK-users] Segfault in Wiki Example: QuadEdgeMeshParameterizationFilter In-Reply-To: <1433941523063-7587463.post@n2.nabble.com> References: <1433516957921-35771.post@n7.nabble.com> <83BD2024-440F-4625-9F43-B1C5BB605762@gmail.com> <1433849427767-7587459.post@n2.nabble.com> <1433941523063-7587463.post@n2.nabble.com> Message-ID: <973117F9-B69D-4DC1-9EB9-5F62D743E86B@gmail.com> Hi Davis, Could you make pull requests to fix this code, please? Not sure who can accept pull request for midas-journal account though :-/? If that?s not easily doable, we could import these contributions in the InsightSoftwareConsortium?s organization. Best Arnaud > On 10 Jun 2015, at 15:05, DVigneault wrote: > > Arnaud-- > > Thank you for your help, and for the link to the Insight article! I was > able to compile and use the Point In Circle [1] example without difficulty. > I had a little more trouble with the Straight Walk [2] example. I've > written reviews for both on IJ. I've reproduced below the part of the > review describing the steps I needed to take to get the Straight Walk > example working. > > 1. It appears that the submodule is not linked correctly in github. I > needed to remove the .gitmodules file and add the submodule manually. Here > is my StackOverflow question [3] which solved the problem. > 2. I had to change WalkInTriangulation/CMakeLists.txt:6: > include( ${USE_ITK_FILE}) ==> include( ${ITK_USE_FILE}) > 3. At this point, CMake runs without errors; but when building I'm told > that OrientationTest is missing. I assumed that OrientationTest is a > wrapper for orient2d, and added the following function to > itkWalkInTriangulationFunction.h: > > template< typename TPoint > > double > OrientationTest( TPoint a, TPoint b, TPoint c ) > { > double pa[2]; > double pb[2]; > double pc[2]; > > pa[0] = a[0]; > pa[1] = a[1]; > > pb[0] = b[0]; > pb[1] = b[1]; > > pc[0] = c[0]; > pc[1] = c[1]; > > return orient2d(pa, pb, pc); > > } > > With those changes, the example seems to work correctly, though I haven't > done thorough testing yet. > > Best, and thanks again, > > --Davis > > [1] https://github.com/midas-journal/midas-journal-843 > [2] https://github.com/midas-journal/midas-journal-851 > [3] > http://stackoverflow.com/questions/30754878/recursively-cloning-a-git-repo-doesnt-pull-submodules/30756107#30756107 > > > > -- > View this message in context: http://itk-insight-users.2283740.n2.nabble.com/ITK-users-Segfault-in-Wiki-Example-QuadEdgeMeshParameterizationFilter-tp7587442p7587463.html > Sent from the ITK Insight Users mailing list archive at Nabble.com. > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users From matt.mccormick at kitware.com Fri Jun 12 08:37:33 2015 From: matt.mccormick at kitware.com (Matt McCormick) Date: Fri, 12 Jun 2015 08:37:33 -0400 Subject: [ITK-users] Segfault in Wiki Example: QuadEdgeMeshParameterizationFilter In-Reply-To: <973117F9-B69D-4DC1-9EB9-5F62D743E86B@gmail.com> References: <1433516957921-35771.post@n7.nabble.com> <83BD2024-440F-4625-9F43-B1C5BB605762@gmail.com> <1433849427767-7587459.post@n2.nabble.com> <1433941523063-7587463.post@n2.nabble.com> <973117F9-B69D-4DC1-9EB9-5F62D743E86B@gmail.com> Message-ID: Hi Davis, Arnaud, I have forked the repositories to: https://github.com/InsightSoftwareConsortium/itkVoronoiQuadEdgeMeshFilter https://github.com/InsightSoftwareConsortium/ITKPointInCircle if you want to develop there. HTH, Matt On Fri, Jun 12, 2015 at 7:54 AM, Arnaud Gelas wrote: > Hi Davis, > > Could you make pull requests to fix this code, please? > > Not sure who can accept pull request for midas-journal account though :-/? > If that?s not easily doable, we could import these contributions in the InsightSoftwareConsortium?s organization. > > Best > Arnaud > >> On 10 Jun 2015, at 15:05, DVigneault wrote: >> >> Arnaud-- >> >> Thank you for your help, and for the link to the Insight article! I was >> able to compile and use the Point In Circle [1] example without difficulty. >> I had a little more trouble with the Straight Walk [2] example. I've >> written reviews for both on IJ. I've reproduced below the part of the >> review describing the steps I needed to take to get the Straight Walk >> example working. >> >> 1. It appears that the submodule is not linked correctly in github. I >> needed to remove the .gitmodules file and add the submodule manually. Here >> is my StackOverflow question [3] which solved the problem. >> 2. I had to change WalkInTriangulation/CMakeLists.txt:6: >> include( ${USE_ITK_FILE}) ==> include( ${ITK_USE_FILE}) >> 3. At this point, CMake runs without errors; but when building I'm told >> that OrientationTest is missing. I assumed that OrientationTest is a >> wrapper for orient2d, and added the following function to >> itkWalkInTriangulationFunction.h: >> >> template< typename TPoint > >> double >> OrientationTest( TPoint a, TPoint b, TPoint c ) >> { >> double pa[2]; >> double pb[2]; >> double pc[2]; >> >> pa[0] = a[0]; >> pa[1] = a[1]; >> >> pb[0] = b[0]; >> pb[1] = b[1]; >> >> pc[0] = c[0]; >> pc[1] = c[1]; >> >> return orient2d(pa, pb, pc); >> >> } >> >> With those changes, the example seems to work correctly, though I haven't >> done thorough testing yet. >> >> Best, and thanks again, >> >> --Davis >> >> [1] https://github.com/midas-journal/midas-journal-843 >> [2] https://github.com/midas-journal/midas-journal-851 >> [3] >> http://stackoverflow.com/questions/30754878/recursively-cloning-a-git-repo-doesnt-pull-submodules/30756107#30756107 >> >> >> >> -- >> View this message in context: http://itk-insight-users.2283740.n2.nabble.com/ITK-users-Segfault-in-Wiki-Example-QuadEdgeMeshParameterizationFilter-tp7587442p7587463.html >> Sent from the ITK Insight Users mailing list archive at Nabble.com. >> _____________________________________ >> 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://public.kitware.com/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://public.kitware.com/mailman/listinfo/insight-users From davis.vigneault at gmail.com Fri Jun 12 09:26:41 2015 From: davis.vigneault at gmail.com (Davis Vigneault) Date: Fri, 12 Jun 2015 14:26:41 +0100 Subject: [ITK-users] Segfault in Wiki Example: QuadEdgeMeshParameterizationFilter In-Reply-To: References: <1433516957921-35771.post@n7.nabble.com> <83BD2024-440F-4625-9F43-B1C5BB605762@gmail.com> <1433849427767-7587459.post@n2.nabble.com> <1433941523063-7587463.post@n2.nabble.com> <973117F9-B69D-4DC1-9EB9-5F62D743E86B@gmail.com> Message-ID: Matt-- The changes I had were actually for the WalkInTriangulation example [1]. Did you mean to fork that instead of itkVoroniQuadEdgeMeshFilter? In that fork, the OrientationTest function missing from the IJ submission seems to have been refactored as the Orientation2DFunction class [2]. (Please let me know if I've misunderstood what you intended.) Best, and thanks! --Davis [1] https://github.com/midas-journal/midas-journal-851 [2] https://github.com/ComplexSystemsModeling/itkVoronoiQuadEdgeMeshFilter/blob/master/Modules/Predicates/include/itkOrientation2DFunction.h On Fri, Jun 12, 2015 at 1:37 PM, Matt McCormick wrote: > Hi Davis, Arnaud, > > I have forked the repositories to: > > > https://github.com/InsightSoftwareConsortium/itkVoronoiQuadEdgeMeshFilter > https://github.com/InsightSoftwareConsortium/ITKPointInCircle > > if you want to develop there. > > HTH, > Matt > > On Fri, Jun 12, 2015 at 7:54 AM, Arnaud Gelas > wrote: > > Hi Davis, > > > > Could you make pull requests to fix this code, please? > > > > Not sure who can accept pull request for midas-journal account though > :-/? > > If that?s not easily doable, we could import these contributions in the > InsightSoftwareConsortium?s organization. > > > > Best > > Arnaud > > > >> On 10 Jun 2015, at 15:05, DVigneault wrote: > >> > >> Arnaud-- > >> > >> Thank you for your help, and for the link to the Insight article! I was > >> able to compile and use the Point In Circle [1] example without > difficulty. > >> I had a little more trouble with the Straight Walk [2] example. I've > >> written reviews for both on IJ. I've reproduced below the part of the > >> review describing the steps I needed to take to get the Straight Walk > >> example working. > >> > >> 1. It appears that the submodule is not linked correctly in github. I > >> needed to remove the .gitmodules file and add the submodule manually. > Here > >> is my StackOverflow question [3] which solved the problem. > >> 2. I had to change WalkInTriangulation/CMakeLists.txt:6: > >> include( ${USE_ITK_FILE}) ==> include( ${ITK_USE_FILE}) > >> 3. At this point, CMake runs without errors; but when building I'm told > >> that OrientationTest is missing. I assumed that OrientationTest is a > >> wrapper for orient2d, and added the following function to > >> itkWalkInTriangulationFunction.h: > >> > >> template< typename TPoint > > >> double > >> OrientationTest( TPoint a, TPoint b, TPoint c ) > >> { > >> double pa[2]; > >> double pb[2]; > >> double pc[2]; > >> > >> pa[0] = a[0]; > >> pa[1] = a[1]; > >> > >> pb[0] = b[0]; > >> pb[1] = b[1]; > >> > >> pc[0] = c[0]; > >> pc[1] = c[1]; > >> > >> return orient2d(pa, pb, pc); > >> > >> } > >> > >> With those changes, the example seems to work correctly, though I > haven't > >> done thorough testing yet. > >> > >> Best, and thanks again, > >> > >> --Davis > >> > >> [1] https://github.com/midas-journal/midas-journal-843 > >> [2] https://github.com/midas-journal/midas-journal-851 > >> [3] > >> > http://stackoverflow.com/questions/30754878/recursively-cloning-a-git-repo-doesnt-pull-submodules/30756107#30756107 > >> > >> > >> > >> -- > >> View this message in context: > http://itk-insight-users.2283740.n2.nabble.com/ITK-users-Segfault-in-Wiki-Example-QuadEdgeMeshParameterizationFilter-tp7587442p7587463.html > >> Sent from the ITK Insight Users mailing list archive at Nabble.com. > >> _____________________________________ > >> 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://public.kitware.com/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://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Fri Jun 12 09:31:56 2015 From: matt.mccormick at kitware.com (Matt McCormick) Date: Fri, 12 Jun 2015 09:31:56 -0400 Subject: [ITK-users] Segfault in Wiki Example: QuadEdgeMeshParameterizationFilter In-Reply-To: References: <1433516957921-35771.post@n7.nabble.com> <83BD2024-440F-4625-9F43-B1C5BB605762@gmail.com> <1433849427767-7587459.post@n2.nabble.com> <1433941523063-7587463.post@n2.nabble.com> <973117F9-B69D-4DC1-9EB9-5F62D743E86B@gmail.com> Message-ID: Hi Davis, Sorry -- the misunderstanding was on my part :-). Here is the WalkInTriagulation repository then: https://github.com/InsightSoftwareConsortium/ITKWalkInTriangulation Thanks! Matt On Fri, Jun 12, 2015 at 9:26 AM, Davis Vigneault wrote: > Matt-- > > The changes I had were actually for the WalkInTriangulation example [1]. > Did you mean to fork that instead of itkVoroniQuadEdgeMeshFilter? In that > fork, the OrientationTest function missing from the IJ submission seems to > have been refactored as the Orientation2DFunction class [2]. (Please let me > know if I've misunderstood what you intended.) > > Best, and thanks! > > --Davis > > [1] https://github.com/midas-journal/midas-journal-851 > [2] > https://github.com/ComplexSystemsModeling/itkVoronoiQuadEdgeMeshFilter/blob/master/Modules/Predicates/include/itkOrientation2DFunction.h > > On Fri, Jun 12, 2015 at 1:37 PM, Matt McCormick > wrote: >> >> Hi Davis, Arnaud, >> >> I have forked the repositories to: >> >> >> https://github.com/InsightSoftwareConsortium/itkVoronoiQuadEdgeMeshFilter >> https://github.com/InsightSoftwareConsortium/ITKPointInCircle >> >> if you want to develop there. >> >> HTH, >> Matt >> >> On Fri, Jun 12, 2015 at 7:54 AM, Arnaud Gelas >> wrote: >> > Hi Davis, >> > >> > Could you make pull requests to fix this code, please? >> > >> > Not sure who can accept pull request for midas-journal account though >> > :-/? >> > If that?s not easily doable, we could import these contributions in the >> > InsightSoftwareConsortium?s organization. >> > >> > Best >> > Arnaud >> > >> >> On 10 Jun 2015, at 15:05, DVigneault wrote: >> >> >> >> Arnaud-- >> >> >> >> Thank you for your help, and for the link to the Insight article! I >> >> was >> >> able to compile and use the Point In Circle [1] example without >> >> difficulty. >> >> I had a little more trouble with the Straight Walk [2] example. I've >> >> written reviews for both on IJ. I've reproduced below the part of the >> >> review describing the steps I needed to take to get the Straight Walk >> >> example working. >> >> >> >> 1. It appears that the submodule is not linked correctly in github. I >> >> needed to remove the .gitmodules file and add the submodule manually. >> >> Here >> >> is my StackOverflow question [3] which solved the problem. >> >> 2. I had to change WalkInTriangulation/CMakeLists.txt:6: >> >> include( ${USE_ITK_FILE}) ==> include( ${ITK_USE_FILE}) >> >> 3. At this point, CMake runs without errors; but when building I'm >> >> told >> >> that OrientationTest is missing. I assumed that OrientationTest is a >> >> wrapper for orient2d, and added the following function to >> >> itkWalkInTriangulationFunction.h: >> >> >> >> template< typename TPoint > >> >> double >> >> OrientationTest( TPoint a, TPoint b, TPoint c ) >> >> { >> >> double pa[2]; >> >> double pb[2]; >> >> double pc[2]; >> >> >> >> pa[0] = a[0]; >> >> pa[1] = a[1]; >> >> >> >> pb[0] = b[0]; >> >> pb[1] = b[1]; >> >> >> >> pc[0] = c[0]; >> >> pc[1] = c[1]; >> >> >> >> return orient2d(pa, pb, pc); >> >> >> >> } >> >> >> >> With those changes, the example seems to work correctly, though I >> >> haven't >> >> done thorough testing yet. >> >> >> >> Best, and thanks again, >> >> >> >> --Davis >> >> >> >> [1] https://github.com/midas-journal/midas-journal-843 >> >> [2] https://github.com/midas-journal/midas-journal-851 >> >> [3] >> >> >> >> http://stackoverflow.com/questions/30754878/recursively-cloning-a-git-repo-doesnt-pull-submodules/30756107#30756107 >> >> >> >> >> >> >> >> -- >> >> View this message in context: >> >> http://itk-insight-users.2283740.n2.nabble.com/ITK-users-Segfault-in-Wiki-Example-QuadEdgeMeshParameterizationFilter-tp7587442p7587463.html >> >> Sent from the ITK Insight Users mailing list archive at Nabble.com. >> >> _____________________________________ >> >> 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://public.kitware.com/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://public.kitware.com/mailman/listinfo/insight-users > > From davis.vigneault at gmail.com Fri Jun 12 10:03:28 2015 From: davis.vigneault at gmail.com (Davis Vigneault) Date: Fri, 12 Jun 2015 15:03:28 +0100 Subject: [ITK-users] Segfault in Wiki Example: QuadEdgeMeshParameterizationFilter In-Reply-To: References: <1433516957921-35771.post@n7.nabble.com> <83BD2024-440F-4625-9F43-B1C5BB605762@gmail.com> <1433849427767-7587459.post@n2.nabble.com> <1433941523063-7587463.post@n2.nabble.com> <973117F9-B69D-4DC1-9EB9-5F62D743E86B@gmail.com> Message-ID: Thanks very much, Matt! I've just pushed the changes (in the normal git way, not using gerrit-push--I hope that's what I was meant to do). Best, and thanks, --Davis On Fri, Jun 12, 2015 at 2:31 PM, Matt McCormick wrote: > Hi Davis, > > Sorry -- the misunderstanding was on my part :-). Here is the > WalkInTriagulation repository then: > > https://github.com/InsightSoftwareConsortium/ITKWalkInTriangulation > > Thanks! > Matt > > On Fri, Jun 12, 2015 at 9:26 AM, Davis Vigneault > wrote: > > Matt-- > > > > The changes I had were actually for the WalkInTriangulation example [1]. > > Did you mean to fork that instead of itkVoroniQuadEdgeMeshFilter? In > that > > fork, the OrientationTest function missing from the IJ submission seems > to > > have been refactored as the Orientation2DFunction class [2]. (Please > let me > > know if I've misunderstood what you intended.) > > > > Best, and thanks! > > > > --Davis > > > > [1] https://github.com/midas-journal/midas-journal-851 > > [2] > > > https://github.com/ComplexSystemsModeling/itkVoronoiQuadEdgeMeshFilter/blob/master/Modules/Predicates/include/itkOrientation2DFunction.h > > > > On Fri, Jun 12, 2015 at 1:37 PM, Matt McCormick < > matt.mccormick at kitware.com> > > wrote: > >> > >> Hi Davis, Arnaud, > >> > >> I have forked the repositories to: > >> > >> > >> > https://github.com/InsightSoftwareConsortium/itkVoronoiQuadEdgeMeshFilter > >> https://github.com/InsightSoftwareConsortium/ITKPointInCircle > >> > >> if you want to develop there. > >> > >> HTH, > >> Matt > >> > >> On Fri, Jun 12, 2015 at 7:54 AM, Arnaud Gelas > >> wrote: > >> > Hi Davis, > >> > > >> > Could you make pull requests to fix this code, please? > >> > > >> > Not sure who can accept pull request for midas-journal account though > >> > :-/? > >> > If that?s not easily doable, we could import these contributions in > the > >> > InsightSoftwareConsortium?s organization. > >> > > >> > Best > >> > Arnaud > >> > > >> >> On 10 Jun 2015, at 15:05, DVigneault > wrote: > >> >> > >> >> Arnaud-- > >> >> > >> >> Thank you for your help, and for the link to the Insight article! I > >> >> was > >> >> able to compile and use the Point In Circle [1] example without > >> >> difficulty. > >> >> I had a little more trouble with the Straight Walk [2] example. I've > >> >> written reviews for both on IJ. I've reproduced below the part of > the > >> >> review describing the steps I needed to take to get the Straight Walk > >> >> example working. > >> >> > >> >> 1. It appears that the submodule is not linked correctly in > github. I > >> >> needed to remove the .gitmodules file and add the submodule manually. > >> >> Here > >> >> is my StackOverflow question [3] which solved the problem. > >> >> 2. I had to change WalkInTriangulation/CMakeLists.txt:6: > >> >> include( ${USE_ITK_FILE}) ==> include( ${ITK_USE_FILE}) > >> >> 3. At this point, CMake runs without errors; but when building I'm > >> >> told > >> >> that OrientationTest is missing. I assumed that OrientationTest is a > >> >> wrapper for orient2d, and added the following function to > >> >> itkWalkInTriangulationFunction.h: > >> >> > >> >> template< typename TPoint > > >> >> double > >> >> OrientationTest( TPoint a, TPoint b, TPoint c ) > >> >> { > >> >> double pa[2]; > >> >> double pb[2]; > >> >> double pc[2]; > >> >> > >> >> pa[0] = a[0]; > >> >> pa[1] = a[1]; > >> >> > >> >> pb[0] = b[0]; > >> >> pb[1] = b[1]; > >> >> > >> >> pc[0] = c[0]; > >> >> pc[1] = c[1]; > >> >> > >> >> return orient2d(pa, pb, pc); > >> >> > >> >> } > >> >> > >> >> With those changes, the example seems to work correctly, though I > >> >> haven't > >> >> done thorough testing yet. > >> >> > >> >> Best, and thanks again, > >> >> > >> >> --Davis > >> >> > >> >> [1] https://github.com/midas-journal/midas-journal-843 > >> >> [2] https://github.com/midas-journal/midas-journal-851 > >> >> [3] > >> >> > >> >> > http://stackoverflow.com/questions/30754878/recursively-cloning-a-git-repo-doesnt-pull-submodules/30756107#30756107 > >> >> > >> >> > >> >> > >> >> -- > >> >> View this message in context: > >> >> > http://itk-insight-users.2283740.n2.nabble.com/ITK-users-Segfault-in-Wiki-Example-QuadEdgeMeshParameterizationFilter-tp7587442p7587463.html > >> >> Sent from the ITK Insight Users mailing list archive at Nabble.com. > >> >> _____________________________________ > >> >> 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://public.kitware.com/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://public.kitware.com/mailman/listinfo/insight-users > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From porterj at wusm.wustl.edu Fri Jun 12 11:03:29 2015 From: porterj at wusm.wustl.edu (Porter, Justin) Date: Fri, 12 Jun 2015 15:03:29 +0000 Subject: [ITK-users] Python Bindings, Templates, and ConfidenceConnectedImageFilter Message-ID: <57C178B3-48AD-4CE3-A305-C8B68FF735C8@wusm.wustl.edu> An HTML attachment was scrubbed... URL: From michkapopoff at gmail.com Fri Jun 12 11:26:25 2015 From: michkapopoff at gmail.com (Michka Popoff) Date: Fri, 12 Jun 2015 17:26:25 +0200 Subject: [ITK-users] Python Bindings, Templates, and ConfidenceConnectedImageFilter In-Reply-To: <57C178B3-48AD-4CE3-A305-C8B68FF735C8@wusm.wustl.edu> References: <57C178B3-48AD-4CE3-A305-C8B68FF735C8@wusm.wustl.edu> Message-ID: <76883BA8-9D09-4D5B-9294-336FE6D399E0@gmail.com> Hi one good way to know which types are available is to use the GetTypes method on your template (before calling New). This method way introduced in 4.7 or after, I don't remember. But it is definitively available in 4.8 rc 1. I am not in front on a computer so please check this out yourself. Looking at the code we wrap float combinations here: https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Segmentation/RegionGrowing/wrapping/itkConfidenceConnectedImageFilter.wrap Michka Envoy? de mon iPhone > Le 12 juin 2015 ? 17:03, Porter, Justin a ?crit : > > Hey all, > > I?m just getting started with ITK, and I?m using the python bindings, which are really awesome. It looks like it was a fair bit of work to get such a heavily templated library to work in Python, but it?s really nice to be able to build scripts in python! > > I set out to reimplement Slicer?s ?Simple Region Growing Segmentation? using ITK-Python, but I keep getting an error when I try to define a ConfidenceConnectedImageFilter template on a 3d float (and double, too). IMG_F == itk.Image[itk.F, 3] elsewhere in the script. > >> Traceback (most recent call last): >> File "simple_region_growing_segmentation.py", line 169, in >> sys.exit(main(sys.argv)) >> File "simple_region_growing_segmentation.py", line 154, in main >> args.seed) >> File "simple_region_growing_segmentation.py", line 98, in attach_connect >> ccif = ConfidenceConnectedImageFilter[IMG_F, IMG_F].New() >> File "/home/jporter/usr/local/ITK/bin/Wrapping/Generators/Python/itkTemplate.py", line 263, in __getitem__ >> (str(parameters), self.__name__)) >> KeyError: "itkTemplate : No template (, ) for the itk::ConfidenceConnectedImageFilter class" > > I?m pretty sure I built the bindings appropriately to get float support: > >> cmake -DITK_USE_REVIEW=ON -DITK_WRAP_PYTHON=ON -DBUILD_SHARED_LIBS=ON -DITK_LEGACY_SILENT=ON -DITK_WRAP_float=ON -DITK_WRAP_rgb_unsigned_char=ON -DITK_WRAP_vector_double=ON -DITK_WRAP_complex_double=ON -DITK_WRAP_double=ON > > Interestingly, I can build a CurvatureFlowImageFilter or a CastImageFilter templated against 3d floats. I can also instantiate a ConfidenceConnectedImageFilter templated against itk.UC (presumably unsigned char?). That made me think that it?s not possible to build a ConfidenceConnectedImageFilter templated on floats, but the ConfidenceConnected example segmentation script does just that. > > I?d love to hear thought/suggestions as to how I can proceed! > > Cheers, > Justin > > > The materials in this message are private and may contain Protected Healthcare Information or other information of a sensitive nature. If you are not the intended recipient, be advised that any unauthorized use, disclosure, copying or the taking of any action in reliance on the contents of this information is strictly prohibited. If you have received this email in error, please immediately notify the sender via telephone or return mail. > > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Fri Jun 12 12:12:17 2015 From: matt.mccormick at kitware.com (Matt McCormick) Date: Fri, 12 Jun 2015 12:12:17 -0400 Subject: [ITK-users] Segfault in Wiki Example: QuadEdgeMeshParameterizationFilter In-Reply-To: References: <1433516957921-35771.post@n7.nabble.com> <83BD2024-440F-4625-9F43-B1C5BB605762@gmail.com> <1433849427767-7587459.post@n2.nabble.com> <1433941523063-7587463.post@n2.nabble.com> <973117F9-B69D-4DC1-9EB9-5F62D743E86B@gmail.com> Message-ID: Excellent, yes! You should be able to push directly. On Fri, Jun 12, 2015 at 10:03 AM, Davis Vigneault wrote: > Thanks very much, Matt! > > I've just pushed the changes (in the normal git way, not using > gerrit-push--I hope that's what I was meant to do). > > Best, and thanks, > > --Davis > > On Fri, Jun 12, 2015 at 2:31 PM, Matt McCormick > wrote: >> >> Hi Davis, >> >> Sorry -- the misunderstanding was on my part :-). Here is the >> WalkInTriagulation repository then: >> >> https://github.com/InsightSoftwareConsortium/ITKWalkInTriangulation >> >> Thanks! >> Matt >> >> On Fri, Jun 12, 2015 at 9:26 AM, Davis Vigneault >> wrote: >> > Matt-- >> > >> > The changes I had were actually for the WalkInTriangulation example [1]. >> > Did you mean to fork that instead of itkVoroniQuadEdgeMeshFilter? In >> > that >> > fork, the OrientationTest function missing from the IJ submission seems >> > to >> > have been refactored as the Orientation2DFunction class [2]. (Please >> > let me >> > know if I've misunderstood what you intended.) >> > >> > Best, and thanks! >> > >> > --Davis >> > >> > [1] https://github.com/midas-journal/midas-journal-851 >> > [2] >> > >> > https://github.com/ComplexSystemsModeling/itkVoronoiQuadEdgeMeshFilter/blob/master/Modules/Predicates/include/itkOrientation2DFunction.h >> > >> > On Fri, Jun 12, 2015 at 1:37 PM, Matt McCormick >> > >> > wrote: >> >> >> >> Hi Davis, Arnaud, >> >> >> >> I have forked the repositories to: >> >> >> >> >> >> >> >> https://github.com/InsightSoftwareConsortium/itkVoronoiQuadEdgeMeshFilter >> >> https://github.com/InsightSoftwareConsortium/ITKPointInCircle >> >> >> >> if you want to develop there. >> >> >> >> HTH, >> >> Matt >> >> >> >> On Fri, Jun 12, 2015 at 7:54 AM, Arnaud Gelas >> >> wrote: >> >> > Hi Davis, >> >> > >> >> > Could you make pull requests to fix this code, please? >> >> > >> >> > Not sure who can accept pull request for midas-journal account though >> >> > :-/? >> >> > If that?s not easily doable, we could import these contributions in >> >> > the >> >> > InsightSoftwareConsortium?s organization. >> >> > >> >> > Best >> >> > Arnaud >> >> > >> >> >> On 10 Jun 2015, at 15:05, DVigneault >> >> >> wrote: >> >> >> >> >> >> Arnaud-- >> >> >> >> >> >> Thank you for your help, and for the link to the Insight article! I >> >> >> was >> >> >> able to compile and use the Point In Circle [1] example without >> >> >> difficulty. >> >> >> I had a little more trouble with the Straight Walk [2] example. >> >> >> I've >> >> >> written reviews for both on IJ. I've reproduced below the part of >> >> >> the >> >> >> review describing the steps I needed to take to get the Straight >> >> >> Walk >> >> >> example working. >> >> >> >> >> >> 1. It appears that the submodule is not linked correctly in github. >> >> >> I >> >> >> needed to remove the .gitmodules file and add the submodule >> >> >> manually. >> >> >> Here >> >> >> is my StackOverflow question [3] which solved the problem. >> >> >> 2. I had to change WalkInTriangulation/CMakeLists.txt:6: >> >> >> include( ${USE_ITK_FILE}) ==> include( ${ITK_USE_FILE}) >> >> >> 3. At this point, CMake runs without errors; but when building I'm >> >> >> told >> >> >> that OrientationTest is missing. I assumed that OrientationTest is >> >> >> a >> >> >> wrapper for orient2d, and added the following function to >> >> >> itkWalkInTriangulationFunction.h: >> >> >> >> >> >> template< typename TPoint > >> >> >> double >> >> >> OrientationTest( TPoint a, TPoint b, TPoint c ) >> >> >> { >> >> >> double pa[2]; >> >> >> double pb[2]; >> >> >> double pc[2]; >> >> >> >> >> >> pa[0] = a[0]; >> >> >> pa[1] = a[1]; >> >> >> >> >> >> pb[0] = b[0]; >> >> >> pb[1] = b[1]; >> >> >> >> >> >> pc[0] = c[0]; >> >> >> pc[1] = c[1]; >> >> >> >> >> >> return orient2d(pa, pb, pc); >> >> >> >> >> >> } >> >> >> >> >> >> With those changes, the example seems to work correctly, though I >> >> >> haven't >> >> >> done thorough testing yet. >> >> >> >> >> >> Best, and thanks again, >> >> >> >> >> >> --Davis >> >> >> >> >> >> [1] https://github.com/midas-journal/midas-journal-843 >> >> >> [2] https://github.com/midas-journal/midas-journal-851 >> >> >> [3] >> >> >> >> >> >> >> >> >> http://stackoverflow.com/questions/30754878/recursively-cloning-a-git-repo-doesnt-pull-submodules/30756107#30756107 >> >> >> >> >> >> >> >> >> >> >> >> -- >> >> >> View this message in context: >> >> >> >> >> >> http://itk-insight-users.2283740.n2.nabble.com/ITK-users-Segfault-in-Wiki-Example-QuadEdgeMeshParameterizationFilter-tp7587442p7587463.html >> >> >> Sent from the ITK Insight Users mailing list archive at Nabble.com. >> >> >> _____________________________________ >> >> >> 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://public.kitware.com/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://public.kitware.com/mailman/listinfo/insight-users >> > >> > > > From porterj at wusm.wustl.edu Fri Jun 12 12:37:09 2015 From: porterj at wusm.wustl.edu (Porter, Justin) Date: Fri, 12 Jun 2015 16:37:09 +0000 Subject: [ITK-users] Python Bindings, Templates, and ConfidenceConnectedImageFilter In-Reply-To: <76883BA8-9D09-4D5B-9294-336FE6D399E0@gmail.com> References: <57C178B3-48AD-4CE3-A305-C8B68FF735C8@wusm.wustl.edu> <76883BA8-9D09-4D5B-9294-336FE6D399E0@gmail.com> Message-ID: An HTML attachment was scrubbed... URL: From michkapopoff at gmail.com Fri Jun 12 12:53:18 2015 From: michkapopoff at gmail.com (Michka Popoff) Date: Fri, 12 Jun 2015 18:53:18 +0200 Subject: [ITK-users] Python Bindings, Templates, and ConfidenceConnectedImageFilter In-Reply-To: References: <57C178B3-48AD-4CE3-A305-C8B68FF735C8@wusm.wustl.edu> <76883BA8-9D09-4D5B-9294-336FE6D399E0@gmail.com> Message-ID: <7F6F656F-0DB6-41BE-A1D3-F439653691FA@gmail.com> The types that are wrapped are defined in the .wrap file I linked to before. You may change the WRAP_ITK_INT to WRAP_ITK_SCALAR in this file. In fact we do not wrap all types out of the box because this increases compilation time. A patch is welcome of course. I'll be off the internet during the weekend, maybe others will help you if you have further questions. Cheers Michka Envoy? de mon iPhone > Le 12 juin 2015 ? 18:37, Porter, Justin a ?crit : > > Thanks for your quick and helpful response! > > Whatever version of ITK I am running has the GetTypes method, and it looks like ConfidenceConnectedImageFilter allows 2 and 3 dimensional doubles, floats, SS, and UC on the input end, but only 2 and 3 dimensional UC and SS as output types. > > The output from ConfidenceConnectedImageFilter.GetTypes(): > >> >> Options: >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] > > Is this by design? In the example script, both the input and the output for ConfidenceConnectedImageFilter are 3d floats? > > If not, I would be happy to try to fix the issue and commit a fix if there are guidelines somewhere for doing so. > > Cheers, > Justin > >> On Jun 12, 2015, at 10:26 AM, Michka Popoff wrote: >> >> Hi >> >> one good way to know which types are available is to use the GetTypes method on your template (before calling New). This method way introduced in 4.7 or after, I don't remember. But it is definitively available in 4.8 rc 1. >> >> I am not in front on a computer so please check this out yourself. Looking at the code we wrap float combinations here: >> https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Segmentation/RegionGrowing/wrapping/itkConfidenceConnectedImageFilter.wrap >> >> Michka >> >> >> >> Envoy? de mon iPhone >> >> Le 12 juin 2015 ? 17:03, Porter, Justin a ?crit : >> >>> Hey all, >>> >>> I?m just getting started with ITK, and I?m using the python bindings, which are really awesome. It looks like it was a fair bit of work to get such a heavily templated library to work in Python, but it?s really nice to be able to build scripts in python! >>> >>> I set out to reimplement Slicer?s ?Simple Region Growing Segmentation? using ITK-Python, but I keep getting an error when I try to define a ConfidenceConnectedImageFilter template on a 3d float (and double, too). IMG_F == itk.Image[itk.F, 3] elsewhere in the script. >>> >>>> Traceback (most recent call last): >>>> File "simple_region_growing_segmentation.py", line 169, in >>>> sys.exit(main(sys.argv)) >>>> File "simple_region_growing_segmentation.py", line 154, in main >>>> args.seed) >>>> File "simple_region_growing_segmentation.py", line 98, in attach_connect >>>> ccif = ConfidenceConnectedImageFilter[IMG_F, IMG_F].New() >>>> File "/home/jporter/usr/local/ITK/bin/Wrapping/Generators/Python/itkTemplate.py", line 263, in __getitem__ >>>> (str(parameters), self.__name__)) >>>> KeyError: "itkTemplate : No template (, ) for the itk::ConfidenceConnectedImageFilter class" >>> >>> I?m pretty sure I built the bindings appropriately to get float support: >>> >>>> cmake -DITK_USE_REVIEW=ON -DITK_WRAP_PYTHON=ON -DBUILD_SHARED_LIBS=ON -DITK_LEGACY_SILENT=ON -DITK_WRAP_float=ON -DITK_WRAP_rgb_unsigned_char=ON -DITK_WRAP_vector_double=ON -DITK_WRAP_complex_double=ON -DITK_WRAP_double=ON >>> >>> Interestingly, I can build a CurvatureFlowImageFilter or a CastImageFilter templated against 3d floats. I can also instantiate a ConfidenceConnectedImageFilter templated against itk.UC (presumably unsigned char?). That made me think that it?s not possible to build a ConfidenceConnectedImageFilter templated on floats, but the ConfidenceConnected example segmentation script does just that. >>> >>> I?d love to hear thought/suggestions as to how I can proceed! >>> >>> Cheers, >>> Justin >>> >>> >>> >>> The materials in this message are private and may contain Protected Healthcare Information or other information of a sensitive nature. If you are not the intended recipient, be advised that any unauthorized use, disclosure, copying or the taking of any action in reliance on the contents of this information is strictly prohibited. If you have received this email in error, please immediately notify the sender via telephone or return mail. >>> >>> _____________________________________ >>> 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://public.kitware.com/mailman/listinfo/insight-users > > > > The materials in this message are private and may contain Protected Healthcare Information or other information of a sensitive nature. If you are not the intended recipient, be advised that any unauthorized use, disclosure, copying or the taking of any action in reliance on the contents of this information is strictly prohibited. If you have received this email in error, please immediately notify the sender via telephone or return mail. -------------- next part -------------- An HTML attachment was scrubbed... URL: From blowekamp at mail.nih.gov Fri Jun 12 13:05:23 2015 From: blowekamp at mail.nih.gov (Bradley Lowekamp) Date: Fri, 12 Jun 2015 13:05:23 -0400 Subject: [ITK-users] Python Bindings, Templates, and ConfidenceConnectedImageFilter In-Reply-To: References: <57C178B3-48AD-4CE3-A305-C8B68FF735C8@wusm.wustl.edu> <76883BA8-9D09-4D5B-9294-336FE6D399E0@gmail.com> Message-ID: Justin, The output of the ConfidenceConnectedImageFilter is a binary image. The output image only has 2 value the background ( 0 ) and the "ReplaceValue". While the templated code with a float output pixel would allow you to set the replace value to say an approximation of PI, the output image would still just have two value. Using a unsigned char output pixel type works for most normal cases. If not casting the output is not too hard. Brad On Jun 12, 2015, at 12:37 PM, Porter, Justin wrote: > Thanks for your quick and helpful response! > > Whatever version of ITK I am running has the GetTypes method, and it looks like ConfidenceConnectedImageFilter allows 2 and 3 dimensional doubles, floats, SS, and UC on the input end, but only 2 and 3 dimensional UC and SS as output types. > > The output from ConfidenceConnectedImageFilter.GetTypes(): > >> >> Options: >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] >> [, ] > > Is this by design? In the example script, both the input and the output for ConfidenceConnectedImageFilter are 3d floats? > > If not, I would be happy to try to fix the issue and commit a fix if there are guidelines somewhere for doing so. > > Cheers, > Justin > >> On Jun 12, 2015, at 10:26 AM, Michka Popoff wrote: >> >> Hi >> >> one good way to know which types are available is to use the GetTypes method on your template (before calling New). This method way introduced in 4.7 or after, I don't remember. But it is definitively available in 4.8 rc 1. >> >> I am not in front on a computer so please check this out yourself. Looking at the code we wrap float combinations here: >> https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Segmentation/RegionGrowing/wrapping/itkConfidenceConnectedImageFilter.wrap >> >> Michka >> >> >> >> Envoy? de mon iPhone >> >> Le 12 juin 2015 ? 17:03, Porter, Justin a ?crit : >> >>> Hey all, >>> >>> I?m just getting started with ITK, and I?m using the python bindings, which are really awesome. It looks like it was a fair bit of work to get such a heavily templated library to work in Python, but it?s really nice to be able to build scripts in python! >>> >>> I set out to reimplement Slicer?s ?Simple Region Growing Segmentation? using ITK-Python, but I keep getting an error when I try to define a ConfidenceConnectedImageFilter template on a 3d float (and double, too). IMG_F == itk.Image[itk.F, 3] elsewhere in the script. >>> >>>> Traceback (most recent call last): >>>> File "simple_region_growing_segmentation.py", line 169, in >>>> sys.exit(main(sys.argv)) >>>> File "simple_region_growing_segmentation.py", line 154, in main >>>> args.seed) >>>> File "simple_region_growing_segmentation.py", line 98, in attach_connect >>>> ccif = ConfidenceConnectedImageFilter[IMG_F, IMG_F].New() >>>> File "/home/jporter/usr/local/ITK/bin/Wrapping/Generators/Python/itkTemplate.py", line 263, in __getitem__ >>>> (str(parameters), self.__name__)) >>>> KeyError: "itkTemplate : No template (, ) for the itk::ConfidenceConnectedImageFilter class" >>> >>> I?m pretty sure I built the bindings appropriately to get float support: >>> >>>> cmake -DITK_USE_REVIEW=ON -DITK_WRAP_PYTHON=ON -DBUILD_SHARED_LIBS=ON -DITK_LEGACY_SILENT=ON -DITK_WRAP_float=ON -DITK_WRAP_rgb_unsigned_char=ON -DITK_WRAP_vector_double=ON -DITK_WRAP_complex_double=ON -DITK_WRAP_double=ON >>> >>> Interestingly, I can build a CurvatureFlowImageFilter or a CastImageFilter templated against 3d floats. I can also instantiate a ConfidenceConnectedImageFilter templated against itk.UC (presumably unsigned char?). That made me think that it?s not possible to build a ConfidenceConnectedImageFilter templated on floats, but the ConfidenceConnected example segmentation script does just that. >>> >>> I?d love to hear thought/suggestions as to how I can proceed! >>> >>> Cheers, >>> Justin >>> >>> >>> >>> The materials in this message are private and may contain Protected Healthcare Information or other information of a sensitive nature. If you are not the intended recipient, be advised that any unauthorized use, disclosure, copying or the taking of any action in reliance on the contents of this information is strictly prohibited. If you have received this email in error, please immediately notify the sender via telephone or return mail. >>> >>> _____________________________________ >>> 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://public.kitware.com/mailman/listinfo/insight-users > > > > > The materials in this message are private and may contain Protected Healthcare Information or other information of a sensitive nature. If you are not the intended recipient, be advised that any unauthorized use, disclosure, copying or the taking of any action in reliance on the contents of this information is strictly prohibited. If you have received this email in error, please immediately notify the sender via telephone or return mail. > > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From porterj at wusm.wustl.edu Fri Jun 12 13:25:20 2015 From: porterj at wusm.wustl.edu (Porter, Justin) Date: Fri, 12 Jun 2015 17:25:20 +0000 Subject: [ITK-users] Python Bindings, Templates, and ConfidenceConnectedImageFilter In-Reply-To: References: <57C178B3-48AD-4CE3-A305-C8B68FF735C8@wusm.wustl.edu> <76883BA8-9D09-4D5B-9294-336FE6D399E0@gmail.com> Message-ID: <97AAF36B-9034-4F38-9C2C-59B233EA0212@wusm.wustl.edu> An HTML attachment was scrubbed... URL: From carminepagliaro at gmail.com Mon Jun 15 06:39:51 2015 From: carminepagliaro at gmail.com (Carmine Pagliaro) Date: Mon, 15 Jun 2015 12:39:51 +0200 Subject: [ITK-users] SC Registration Message-ID: Hi all, i'm a new user, well sorry for my inexperience. I'm looking for a method that allow me to register two image starting from some points. Example: I've got two different mri image (image_a; image_b), I set two points (p1_a; p2_a (in red in the image attached)) in the image_a, then i set two points (p1_b; p2_b (in red in the image attached)) in the image_b. well my registration process have to align the two image considering align p1_a=p1_b (some location in the registered result image) & p2_a=p2_b. -- Carmine Pagliaro *Life is for sharing.* -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Senzanome.png Type: image/png Size: 101612 bytes Desc: not available URL: From Denis.Abu-Sammour at medma.uni-heidelberg.de Mon Jun 15 09:50:58 2015 From: Denis.Abu-Sammour at medma.uni-heidelberg.de (Abu-Sammour, Denis) Date: Mon, 15 Jun 2015 15:50:58 +0200 Subject: [ITK-users] Writing my own registration metric Message-ID: <5E843F0B86B47846B72559B57A54F96217C759CF98@MBX02.ad.uni-heidelberg.de> Hello, Thank you for your time in advance. I am trying to implement a new registration metric which is based on a patch-based computation of gradient orientations i.e. subdividing images into sub-regions or cells and compute a histogram based on the orientations of the gradients inside each patch. I was told that the best way to proceed is to sneak into one of the implemented metrics in itk (to use the power of the source!). Accordingly I looked into one of the easiest metrics available namely "itkMeanSquaresImageToImageMetricv4" and found out that it is implemented using 4 different header files namely: "itkMeanSquaresImageToImageMetricv4.h", "itkMeanSquaresImageToImageMetricv4.hxx", "itkMeanSquaresImageToImageMetricv4GetValueAndDerivativeThreader.h", and "itkMeanSquaresImageToImageMetricv4GetValueAndDerivativeThreader.hxx". The 1st header file says: "see MeanSquaresImageToImageMetricv4GetValueAndDerivativeThreader::ProcessPoint for algorithm implementation". When looking into that file it is noted that the values passed to that method are image pixel types ("movingImageValue" and "fixedImageValue") and NOT the images themselves. Unfortunately, in my case -as described above- the metric computation depends on patches (cells) rather than on single pixel values. Therefore, Is there a way to pass on the images themselves to the ProcessPoint method? Or alternatively is there another metric that also depends on patch-based computation where the images themselves are getting passed on to the ProcessPoint method? Any suggestion would be appreciated. Kind regards Denis -------------- next part -------------- An HTML attachment was scrubbed... URL: From blowekamp at mail.nih.gov Mon Jun 15 10:00:21 2015 From: blowekamp at mail.nih.gov (Bradley Lowekamp) Date: Mon, 15 Jun 2015 10:00:21 -0400 Subject: [ITK-users] [ITK] Writing my own registration metric In-Reply-To: <5E843F0B86B47846B72559B57A54F96217C759CF98@MBX02.ad.uni-heidelberg.de> References: <5E843F0B86B47846B72559B57A54F96217C759CF98@MBX02.ad.uni-heidelberg.de> Message-ID: Hello, You should look into the ANTSNeighborhoodCorrelationImageToImageMetricv4 [1] and the reference paper on the method. This is another neighborhood based metric. From an ITK design perspective, the sample of the image is independent of the metric. For your subdividing, you may find that the regular grid sampling in the ImageToImageRegistrationMethodv4 to be suitable, or you may want to try a random sampling. HTH, Brad [1] http://www.itk.org/Doxygen/html/classitk_1_1ANTSNeighborhoodCorrelationImageToImageMetricv4.html On Jun 15, 2015, at 9:50 AM, Abu-Sammour, Denis wrote: > Hello, > > Thank you for your time in advance. > > I am trying to implement a new registration metric which is based on a patch-based computation of gradient orientations i.e. subdividing images into sub-regions or cells and compute a histogram based on the orientations of the gradients inside each patch. I was told that the best way to proceed is to sneak into one of the implemented metrics in itk (to use the power of the source!). > Accordingly I looked into one of the easiest metrics available namely ?itkMeanSquaresImageToImageMetricv4? and found out that it is implemented using 4 different header files namely: ?itkMeanSquaresImageToImageMetricv4.h?,?itkMeanSquaresImageToImageMetricv4.hxx?, ?itkMeanSquaresImageToImageMetricv4GetValueAndDerivativeThreader.h?, and ?itkMeanSquaresImageToImageMetricv4GetValueAndDerivativeThreader.hxx?. > > The 1st header file says: ?see MeanSquaresImageToImageMetricv4GetValueAndDerivativeThreader::ProcessPoint for algorithm implementation?. When looking into that file it is noted that the values passed to that method are image pixel types (?movingImageValue? and ?fixedImageValue?) and NOT the images themselves. Unfortunately, in my case ?as described above- the metric computation depends on patches (cells) rather than on single pixel values. Therefore, Is there a way to pass on the images themselves to the ProcessPoint method? Or alternatively is there another metric that also depends on patch-based computation where the images themselves are getting passed on to the ProcessPoint method? > > Any suggestion would be appreciated. > > Kind regards > > Denis > > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community -------------- next part -------------- An HTML attachment was scrubbed... URL: From carminepagliaro at gmail.com Tue Jun 16 10:24:31 2015 From: carminepagliaro at gmail.com (Carmine Pagliaro) Date: Tue, 16 Jun 2015 16:24:31 +0200 Subject: [ITK-users] Fwd: SC Registration In-Reply-To: References: Message-ID: ---------- Forwarded message ---------- From: Carmine Pagliaro Date: 2015-06-15 12:39 GMT+02:00 Subject: SC Registration To: insight-users at itk.org Hi all, i'm a new user, well sorry for my inexperience. I'm looking for a method that allow me to register two image starting from some points. Example: I've got two different mri image (image_a; image_b), I set two points (p1_a; p2_a (in red in the image attached)) in the image_a, then i set two points (p1_b; p2_b (in red in the image attached)) in the image_b. well my registration process have to align the two image considering align p1_a=p1_b (some location in the registered result image) & p2_a=p2_b. -- Carmine Pagliaro *Life is for sharing.* -- Carmine Pagliaro *Life is for sharing.* -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Senzanome.png Type: image/png Size: 101612 bytes Desc: not available URL: From IKakadia at Central.UH.EDU Tue Jun 16 15:38:48 2015 From: IKakadia at Central.UH.EDU (Kakadiaris, Ioannis A) Date: Tue, 16 Jun 2015 14:38:48 -0500 Subject: [ITK-users] JOB: Registration/Augmented Reality: Postdoctoral Position at University of Houston Message-ID: Registration/Augmented Reality: Postdoctoral Position at University of Houston A postdoctoral position is available immediately at University of Houston in the Computational Biomedicine Lab (www.cbl.uh.edu). Applicants should hold a PhD in Computer Science, Electrical Engineering, Applied Mathematics or a related field focusing on Computer Vision with a solid background of point/surface/image registration techniques and expert programming skills. The successful applicants will have solid research, interpersonal, and communication skills. We are seeking exceptional and highly motivated individuals who enjoy working in a multidisciplinary research environment. The positions entail research in augmented reality in collaboration with researchers from the Texas Medical Center. The candidate will benefit from mentorship of a diverse research team and will be exposed to cutting-edge technology. The salary compensation is very competitive. For consideration, please submit your application preferably in one single PDF-document including cover letter, a full CV, a statement of research interests and career goals and the names and email addresses of three references to ioannisk at uh.edu, with subject line "PDF: (your name)". For more information please email Prof. Kakadiaris (ioannisk at uh.edu). Houston offers an outstanding environment for research and professional opportunities for growth and collaboration, including the largest medical center in the country. UH is an equal employment opportunity employer and smoke-free environment. Women and minority candidates are strongly encouraged to apply. -------------- next part -------------- An HTML attachment was scrubbed... URL: From justinrporter at wustl.edu Wed Jun 17 17:29:40 2015 From: justinrporter at wustl.edu (Porter, Justin) Date: Wed, 17 Jun 2015 21:29:40 +0000 Subject: [ITK-users] ShapeDetectionLevelSet Segmentation Message-ID: <4914CFAC-63D2-460F-AC6C-598941B0D519@wusm.wustl.edu> An HTML attachment was scrubbed... URL: From coyarzunlaura at googlemail.com Thu Jun 18 10:01:48 2015 From: coyarzunlaura at googlemail.com (Cristina Oyarzun) Date: Thu, 18 Jun 2015 16:01:48 +0200 Subject: [ITK-users] MICCAI CLIP 2015: Deadline Extended!! Message-ID: CALL FOR PAPERS MICCAI 2015 Workshop on Clinical Image-based Procedures: Translational Research in Medical Imaging October 5, 2015 Munich, Germany Website:http://miccai-clip.org/ ============================== ========================================== SCOPE The outstanding proliferation of medical image applications has created a need for greater study and scrutiny of the clinical application and validation of such methods. New strategies are essential to ensure a smooth and effective translation of computational image-based techniques into the clinic. For these reasons CLIP 2015?s major focus is on *translational research *filling the gaps between basic science and clinical applications. A highlight of the workshop is the subject of *strategies for personalized medicine *to enhance diagnosis, treatment and interventions. Authors are encouraged to submit work centered on specific clinical applications, including techniques and procedures based on comprehensive clinical image data. Submissions related to applications already in use and evaluated by clinical users are particularly encouraged. The event will bring together world-class specialists to present ways to strengthen links between computer scientists and engineers, and clinicians. TOPICS *Strategies for patient-specific and anatomical modeling to support planning and interventions *Clinical studies employing advanced image-guided methods *Clinical translation and validation of image-guided systems *Current challenges and emerging techniques in image-based procedures *Identification of parameters and error analysis in image-based procedures *Multimodal image integration for modeling, planning and guidance *Clinical applications in open and minimally invasive procedures PAPER SUBMISSION Papers will be limited to eight pages following the MICCAI submission guidelines. Prospective authors should refer to the Paper Submission section on the workshop website for details on how to submit papers to be presented at the workshop. All submissions will be peer-reviewed by at least 2 members of the program committee. The selection of the papers will be based on the significance of results, novelty, technical merit, relevance and clarity of presentation. Papers will be presented in a day long single track workshop starting with plenary sessions. Accepted papers will be published as a post-proceedings volume in the Springer Lecture Notes in Computer Science (LNCS) series after the workshop. WORKSHOP FORMAT Accepted papers will be presented in a day long single track workshop. The final program will consist of invited speakers and original papers with time allocated for discussions. Electronic proceedings will be arranged for all of the papers presented at the workshop. IMPORTANT DATES * June 29, 2015: Paper submission due date * July 17, 2015: Notification of acceptance CONTACT Inquires about the workshop should be sent to the Information Desk (info@ miccai-clip.org). ORGANIZERS (in alphabetical order) Klaus Drechsler (Fraunhofer IGD, Germany) Marius Erdt (Fraunhofer IDM at NTU, Singapore) Miguel Gonz?lez Ballester (ICREA - Universitat Pompeu Fabra, Spain) Marius George Linguraru (Children's National Medical Center, USA) Cristina Oyarzun Laura (Fraunhofer IGD, Germany) Yoshinobu Sato (Nara Institute of Science and Technology, Japan) Raj Shekhar (Children's National Medical Center, USA) Stefan Wesarg (Fraunhofer IGD, Germany) ======================================================================== -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Thu Jun 18 12:29:43 2015 From: matt.mccormick at kitware.com (Matt McCormick) Date: Thu, 18 Jun 2015 12:29:43 -0400 Subject: [ITK-users] [ANNOUNCE] ITK 4.8.0 Release Candidate 2 is ready for testing! Message-ID: On behalf of the Insight Toolkit community, we are proud to announce that ITK 4.8.0 release candidate 2 has been tagged and is available for testing! Please take this opportunity to test the new features in the release candidate. To obtain the source code, git clone http://itk.org/ITK.git cd ITK git checkout -q --detach v4.8rc02 For more details, please see the Git documentation [1]. A few selected highlights for this release: - New remote modules: BridgeNumPy, LabelErodeDilate, ParabolicMorphology, MinimalPathExtraction - itk::FFTPadImageFilter to automatically pad images for the FFT implementation?s supported greatest prime factor - Additional point set registration capabilities. - More modules can be built as shared libraries. - GDCM, MetaIO, KWSys, MINC have been updated to their latest upstream versions. - Python wrapping is in excellent shape and works with the latest GCC, Clang, and MSVC. - Experimental cross-compilation support for Windows (MinGW-w64), ARMv6 (Raspberry Pi), ARMv7 (Android), ppc64le (POWER8), and JavaScript (Emscripten). A more complete, detailed set of release notes will follow in subsequent release candidates. Please test the release candidate and share your experiences on the mailing list, issue tracker, and Gerrit Code Review. Since GDCM has seen a major upgrade to the latest version, please exercise DICOM IO, and be on the lookout for regressions. An Experimental build, which demonstrates how the test suite performs on your local build system, can be submitted to the dashboard [2] with: mkdir ../ITK-build cd ../ITK-build cmake ../ITK ctest -j 4 -M Experimental -T Configure -T Build -T Test -T Submit Notify the mailing list if there are any unexpected failures. Testing your own applications against the RC is also appreciated. Congratulations and well done to the 31 contributors to this release. We would especially like to recognize the new contributors, David Froger, Cyril Mory, Dzenan Zukic, Ivan Setiawan, Jan Bergmeier, Rolf Eike Beer, Davis Vigneault, Gary JIA, and Alexander Hewer. The final release will be approximately three weeks from now. [1] http://www.itk.org/Wiki/ITK/Git [2] http://open.cdash.org/index.php?project=Insight Changes from v4.8rc01..v4.8rc02 ------------------------------------------------ Arnaud Gelas (2): BUG: memory leaks when calling itk::Mesh::Graft BUG: fix memory leaks in BorderQuadEdgeMeshFilter using itk::AutoPointer Bradley Lowekamp (1): Revert selection "ENH: Add shared libraries for ITK libraries" Davis Vigneault (1): STYLE: Minor typographical changes in ParameterizationQuadEdgeMeshFilter D?enan Zuki? (1): DOC: Improve docs for ConnectedComponentImageFilter Hans Johnson (1): STYLE: Use consistent names in template parameters Sean McBride (2): COMP: Update MINC to upstream 85145dca36 BUG: updated MINC to a77da29 ----------------------------------------------------- Errors or omissions? Please fix them here: https://docs.google.com/document/d/1AQolOw7Hpn7SCRg0LjH53nxdWJe2gJTR0ngOyg3PWxI/edit?usp=sharing From vikimcg at gmail.com Fri Jun 19 03:35:40 2015 From: vikimcg at gmail.com (Viki MCG) Date: Fri, 19 Jun 2015 09:35:40 +0200 Subject: [ITK-users] Why does GeodesicActiveContourShapePriorLevelSetImageFilter not take into account the PCA model? Message-ID: I'm trying to find a vertebra in an image. I decided to use GeodesicActiveContourShapePriorLevelSetImageFilter. The code is right below. typedef itk::GeodesicActiveContourShapePriorLevelSetImageFilter GeodesicActiveContourFilterType; GeodesicActiveContourFilterType::Pointer geodesicActiveContour =GeodesicActiveContourFilterType::New(); geodesicActiveContour->SetPropagationScaling( propagationScaling ); geodesicActiveContour->SetShapePriorScaling( shapePriorScaling ); geodesicActiveContour->SetCurvatureScaling( curvatureScaling); geodesicActiveContour->SetAdvectionScaling( advectionScaling); In order to check my model, I cleaned an image and painted the background in grey so the vertebra limits were pretty clear. But, although the vertebra should be easy to find, I can't do it unless I choose a very low shapePriorScaling parameter. For example: propagationScaling=7 shapePriorScaling=0.01 curvatureScaling=5 advectionScaling=15 This is why I imagine that my PCA model is wrong. To create it I read two sources: https://github.com/midas-journal/midas-journal-812/blob/master/ActiveShapeModel/Create2DActiveShapeModel/2dasm.cxx http://itk.org/Wiki/ITK/Examples/WishList/Segmentation/EstimatePCAModel I realized that the way both author normalize PCs are different, and since this is an important issue in GeodesicActiveContourShapePriorLevelSetImageFilter (it prefers normalized eigen vectors), I think that maybe I do it in a wrong way. ...Segmentation/EstimatePCAModel: here the author strangely divides every output of the filter (even the mean image) by the first eigen value and multiply it by the eigen value corresponding to the previous eigen vector. my_Estimatortype::VectorOfDoubleType v=filter->GetEigenValues(); double sv_mean=sqrt(v[0]); for ( unsigned int k = 0; k < nb_modes; k++ ) { double sv=sqrt(v[k]); double sv_n=sv/sv_mean; std::cout << "writing: " << outFileNames[k] << std::endl; std::cout << "svd[" << k << "]: " << sv << " norm: " << sv_n << std::endl; WriterType::Pointer writer = WriterType::New(); writer->SetFileName( outFileNames[k].c_str() ); scaler->SetInput(filter->GetOutput(k)); scaler->SetConstant(sv_n); writer->SetInput( scaler->GetOutput() ); writer->Update(); } ...Create2DActiveShapeModel/2dasm.cxx: here the author divides every eigen vector by the sqrt of its eigen value. for(unsigned int i = 0; i < NUMPC; i++) { //normalizing the images DivideFilterType::Pointer divider = DivideFilterType::New(); divider->SetInput(model->GetOutput(i+1)); divider->SetScale(1.0/sqrt(eigenValues(i))); WriterType::Pointer myWriter = WriterType::New(); myWriter->SetFileName(outputImageNames[i].c_str()); myWriter->SetInput(divider->GetOutput()); myWriter->Update(); } My final code was: double sv_biggest=sqrt(autoVal(0)); for(unsigned int i=1;i<=numPC;i++){ ShiftScaleFilterType::Pointer escale=ShiftScaleFilterType::New(); escale->SetInput(model->GetOutput(i)); double sv=sqrt(autoVal(i-1)); double sv_n=sv/sv_biggest; escale->SetScale(sv_n); resultPCA.push_back(escale->GetOutput()); escale->Update(); }//for i. Please, can anyone tell me whether (and what) I'm doing wrong? Thanks in advance, Viki. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// FULL FUNCTIONS /////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// FixedImageType::Pointer ActiveShapeModel::modifyThreshold(FixedImageType::Pointer imagen){ //Defining types typedef itk::BinaryThresholdImageFilter FiltroUmbral; typedef itk::SignedDanielssonDistanceMapImageFilter FiltroSigno; //Modifying thresholding FiltroUmbral::Pointer umbral=FiltroUmbral::New(); umbral->SetLowerThreshold(255); umbral->SetUpperThreshold(255); umbral->SetInsideValue(255); umbral->SetOutsideValue(0); umbral->SetInput(imagen); umbral->Update(); //Applying signed distance map. FiltroSigno::Pointer signo=FiltroSigno::New(); signo->SetInput(umbral->GetOutput()); signo->Update(); return(signo->GetOutput()); }//modifyThreshold. void ActiveShapeModel::PCAanalisys(int numPC,VectorImgs imgsEntreno,VectorImgs &resultadoPCA, vnl_vector &autoValores){ //Defining types typedef itk::ImagePCAShapeModelEstimator EstimadorPCA; //Instanciate model estimator. EstimadorPCA::Pointer modelo=EstimadorPCA::New(); modelo->DebugOn(); modelo->SetNumberOfTrainingImages(imgsEntreno.size()); modelo->SetNumberOfPrincipalComponentsRequired(numPC); try{ int k=0; for (VectorImgs::iterator it = imgsEntreno.begin() ; it != imgsEntreno.end(); ++it){ //Picking the image from vector FixedImageType::Pointer imagen=(FixedImageType::Pointer) *it; //Translating to signed distance map image. imagen=modifyThreshold(imagen); //Adding it to the estimator. modelo->SetInput(k,imagen); k++; }//for vector. }catch( itk::ExceptionObject & excep ){ std::cerr << "Exception caught !" << std::endl; std::cerr << excep << std::endl; } try{ //Invoking estimator. modelo->Update(); modelo->Print(std::cout); autoValores=modelo->GetEigenValues(); }catch( itk::ExceptionObject & excep ){ std::cerr << "Exception caught !" << std::endl; std::cerr << excep << std::endl; } try{ resultadoPCA.reserve(numPC+1); //Saving mean image. resultadoPCA.push_back(modelo->GetOutput(0)); double sv_mayor=sqrt(autoValores(0)); for(unsigned int i=1;i<=numPC;i++){ //Normalizing PCs ShiftScaleFilterType::Pointer filtroEscala=ShiftScaleFilterType::New(); filtroEscala->SetInput(modelo->GetOutput(i)); double sv=sqrt(autoValores(i-1)); double sv_n=sv/sv_mayor; filtroEscala->SetScale(sv_n); resultadoPCA.push_back(filtroEscala->GetOutput()); filtroEscala->Update(); }//for i. }catch( itk::ExceptionObject & excep ){ std::cerr << "Exception caught !" << std::endl; std::cerr << excep << std::endl; } }//PCAanalisys. VectorImgs ActiveShapeModel::fitModel( FixedImageType::Pointer imgEntrada, FixedImageType::Pointer imgMedia, VectorImgs imgsModo, const int numIter, const double conductSuavizado,const double initialDistance, const double sigma, const double propagationScaling, const double shapePriorScaling,const double curvatureScaling, const double advectionScaling, std::vector x,std::vectory, const double startX, const double startY){ VectorImgs imgsSalida; typedef FixedImageType InternalImageType; typedef itk::ChangeInformationImageFilter CenterFilterType; CenterFilterType::Pointer center = CenterFilterType::New(); center->CenterImageOn(); typedef itk::CurvatureAnisotropicDiffusionImageFilter SmoothingFilterType; SmoothingFilterType::Pointer smoothing = SmoothingFilterType::New(); smoothing->SetTimeStep( 0.125 ); smoothing->SetNumberOfIterations( 5 ); smoothing->SetConductanceParameter( conductSuavizado ); //9.0 por defecto para 2D typedef itk::GradientMagnitudeRecursiveGaussianImageFilter GradientFilterType; GradientFilterType::Pointer gradientMagnitude = GradientFilterType::New(); gradientMagnitude->SetSigma(sigma); typedef itk::BoundedReciprocalImageFilter ReciprocalFilterType; ReciprocalFilterType::Pointer reciprocal = ReciprocalFilterType::New(); typedef itk::FastMarchingImageFilter FastMarchingFilterType; FastMarchingFilterType::Pointer fastMarching = FastMarchingFilterType::New(); configurarConjuntoInicial(initialDistance,x,y,fastMarching); fastMarching->SetSpeedConstant( 1.0 ); typedef itk::GeodesicActiveContourShapePriorLevelSetImageFilter GeodesicActiveContourFilterType; GeodesicActiveContourFilterType::Pointer geodesicActiveContour =GeodesicActiveContourFilterType::New(); geodesicActiveContour->SetPropagationScaling( propagationScaling ); geodesicActiveContour->SetShapePriorScaling( shapePriorScaling ); geodesicActiveContour->SetCurvatureScaling( curvatureScaling); //1.0 ); geodesicActiveContour->SetAdvectionScaling( advectionScaling);//1.0 ); geodesicActiveContour->SetMaximumRMSError( 0.005 ); geodesicActiveContour->SetNumberOfIterations( numIter); geodesicActiveContour->SetNumberOfLayers( 4 ); center->SetInput(((InternalImageType::Pointer)imgEntrada)); smoothing->SetInput( center->GetOutput() ); gradientMagnitude->SetInput( smoothing->GetOutput() ); reciprocal->SetInput( gradientMagnitude->GetOutput() ); center->Update(); fastMarching->SetOutputRegion(center->GetOutput()->GetBufferedRegion() ); fastMarching->SetOutputSpacing(center->GetOutput()->GetSpacing() ); fastMarching->SetOutputOrigin(center->GetOutput()->GetOrigin() ); geodesicActiveContour->SetInput( fastMarching->GetOutput() ); geodesicActiveContour->SetFeatureImage( reciprocal->GetOutput() ); const unsigned int numberOfPCAModes = imgsModo.size(); typedef itk::PCAShapeSignedDistanceFunction ShapeFunctionType; ShapeFunctionType::Pointer shape = ShapeFunctionType::New(); shape->SetMeanImage(imgMedia); shape->SetNumberOfPrincipalComponents( numberOfPCAModes ); shape->SetPrincipalComponentImages( imgsModo ); ShapeFunctionType::ParametersType pcaStandardDeviations( numberOfPCAModes ); pcaStandardDeviations.Fill( 1.0 ); shape->SetPrincipalComponentStandardDeviations( pcaStandardDeviations ); typedef itk::Euler2DTransform TransformType; TransformType::Pointer transform = TransformType::New(); shape->SetTransform( transform ); typedef itk::ShapePriorMAPCostFunction CostFunctionType; CostFunctionType::Pointer costFunction = CostFunctionType::New(); CostFunctionType::WeightsType weights; weights[0] = 1.0; weights[1] = 20.0; weights[2] = 1.0; weights[3] = 1.0; costFunction->SetWeights( weights ); CostFunctionType::ArrayType mean( shape->GetNumberOfShapeParameters() ); CostFunctionType::ArrayType stddev( shape->GetNumberOfShapeParameters() ); mean.Fill( 0.0 ); stddev.Fill( 1.0 ); costFunction->SetShapeParameterMeans( mean ); costFunction->SetShapeParameterStandardDeviations( stddev ); typedef itk::OnePlusOneEvolutionaryOptimizer OptimizerType; OptimizerType::Pointer optimizer = OptimizerType::New(); typedef itk::Statistics::NormalVariateGenerator GeneratorType; GeneratorType::Pointer generator = GeneratorType::New(); generator->Initialize( 20020702 ); optimizer->SetNormalVariateGenerator( generator ); OptimizerType::ScalesType scales( shape->GetNumberOfParameters() ); scales.Fill( 1.0 ); for( unsigned int k = 0; k < numberOfPCAModes; k++ ){ scales[k] = 20.0; // scales for the pca mode multiplier } scales[numberOfPCAModes] = 350.0; // scale for 2D rotation optimizer->SetScales( scales ); double initRadius = 1.05; double grow = 1.1; double shrink = pow(grow, -0.25); optimizer->Initialize(initRadius, grow, shrink); optimizer->SetEpsilon(1.0e-6); // minimal search radius optimizer->SetMaximumIteration(15); ShapeFunctionType::ParametersType parameters(shape->GetNumberOfParameters() ); parameters.Fill( 0.0 ); parameters[numberOfPCAModes + 1] = startX; parameters[numberOfPCAModes + 2] = startY; geodesicActiveContour->SetShapeFunction( shape ); geodesicActiveContour->SetCostFunction( costFunction ); geodesicActiveContour->SetOptimizer( optimizer ); geodesicActiveContour->SetInitialParameters( parameters ); typedef CIUSegmentacion CommandType; CommandType::Pointer observer = CommandType::New(); geodesicActiveContour->AddObserver( itk::IterationEvent(), observer ); try{ geodesicActiveContour->Update(); }catch( itk::ExceptionObject & excep ){ std::cerr << "Exception caught !" << std::endl; std::cerr << excep << std::endl; } std::cout << std::endl; std::cout << "Max. no. iterations: " << geodesicActiveContour->GetNumberOfIterations() << std::endl; std::cout << "Max. RMS error: " << geodesicActiveContour->GetMaximumRMSError() << std::endl; std::cout << std::endl; std::cout << "No. elpased iterations: " << geodesicActiveContour->GetElapsedIterations() << std::endl; std::cout << "RMS change: " << geodesicActiveContour->GetRMSChange() << std::endl; std::cout << "Parameters: " << geodesicActiveContour->GetCurrentParameters() << std::endl; imgsSalida.push_back(smoothing->GetOutput() ); imgsSalida.push_back(gradientMagnitude->GetOutput()); imgsSalida.push_back(reciprocal->GetOutput()); imgsSalida.push_back(fastMarching->GetOutput() ); imgsSalida.push_back(geodesicActiveContour->GetOutput()); typedef itk::SpatialFunctionImageEvaluatorFilter EvaluatorFilterType; EvaluatorFilterType::Pointer evaluatorIni = EvaluatorFilterType::New(); evaluatorIni->SetInput(geodesicActiveContour->GetOutput()); evaluatorIni->SetFunction(shape); shape->SetParameters(geodesicActiveContour->GetInitialParameters()); evaluatorIni->Update(); imgsSalida.push_back(evaluatorIni->GetOutput()); EvaluatorFilterType::Pointer evaluatorFin = EvaluatorFilterType::New(); evaluatorFin->SetInput(geodesicActiveContour->GetOutput()); evaluatorFin->SetFunction(shape); shape->SetParameters( geodesicActiveContour->GetCurrentParameters() ); evaluatorFin->Update();//evaluator->Modified(); imgsSalida.push_back(evaluatorFin->GetOutput()); return imgsSalida; }//fitModel -------------- next part -------------- An HTML attachment was scrubbed... URL: From matimontg at gmail.com Fri Jun 19 17:18:22 2015 From: matimontg at gmail.com (Matias Montroull) Date: Fri, 19 Jun 2015 21:18:22 +0000 Subject: [ITK-users] SimpleITK | CenteredTransformInitializer Message-ID: Hi, I'm working on registration and downloaded the last version of SimpleITK (0SimpleITK C# x64 wrapper 0.9.0, compiled with .NET v2.0.50727, using ITK 4.7.2). I can't find the CenteredTransformInitializer, all I can see is a CenteredTransformInitializerFilter... Is there something I'm missing? Thanks, Matias. -- Matias -------------- next part -------------- An HTML attachment was scrubbed... URL: From matimontg at gmail.com Fri Jun 19 17:29:58 2015 From: matimontg at gmail.com (Matias Montroull) Date: Fri, 19 Jun 2015 21:29:58 +0000 Subject: [ITK-users] SimpleITK | CenteredTransformInitializer In-Reply-To: References: Message-ID: I will answer my own question... I just found it typing SimpleITK. rather than itk.simple that I was using before. El vie., 19 de jun. de 2015 a la(s) 6:18 p. m., Matias Montroull < matimontg at gmail.com> escribi?: > Hi, > > I'm working on registration and downloaded the last version of SimpleITK > (0SimpleITK C# x64 wrapper 0.9.0, compiled with .NET v2.0.50727, using ITK > 4.7.2). > > I can't find the CenteredTransformInitializer, all I can see is > a CenteredTransformInitializerFilter... > > Is there something I'm missing? > > Thanks, > > Matias. > -- > Matias > -- Matias -------------- next part -------------- An HTML attachment was scrubbed... URL: From matimontg at gmail.com Fri Jun 19 18:37:15 2015 From: matimontg at gmail.com (Matias Montroull) Date: Fri, 19 Jun 2015 22:37:15 +0000 Subject: [ITK-users] SimpleITK | Registration in C# Message-ID: Hi, I have this code so far for doing registration with SimpleITK. I've run it and seems to work ok but the offset and matrix doesn't change so I think I'm missing the command part which I haven't been able to figure out.. I marked in bold what I think needs further code, unfortunately I haven't found any example in C#, all is in Pyton or C++, I was able to kind of translate to C# and figure out but the Command part is a struggle for me so far.. itk.simple.Image Imagen_fija = new itk.simple.Image(); itk.simple.Image Imagen_flotante = new itk.simple.Image(); ImageSeriesReader reader_fija = new ImageSeriesReader(); var archivosdcm_fija = ImageSeriesReader.GetGDCMSeriesFileNames(@"C:\TRACKER\Pacientes\ST1_CT\DCM"); reader_fija.SetFileNames(archivosdcm_fija); Imagen_fija = reader_fija.Execute(); ImageSeriesReader reader_flotante = new ImageSeriesReader(); var archivosdcm_flotante = ImageSeriesReader.GetGDCMSeriesFileNames(@"C:\TRACKER\Pacientes\ST1_RM\DCM"); reader_flotante.SetFileNames(archivosdcm_flotante); Imagen_flotante = reader_flotante.Execute(); CastImageFilter conversorafloat = new CastImageFilter(); conversorafloat.SetOutputPixelType(itk.simple.PixelIDValueEnum.sitkFloat32); Imagen_fija = conversorafloat.Execute(Imagen_fija); Imagen_flotante = conversorafloat.Execute(Imagen_flotante); ImageRegistrationMethod R = new ImageRegistrationMethod(); R.SetMetricAsMattesMutualInformation(50); //numberof histogrambins R.SetMetricSamplingPercentage(3.0); //Sampling % R.SetOptimizerAsRegularStepGradientDescent(16.0, 0.1, 100, 0.99); //max step, min step, iteraciones, relaxation R.SetInterpolator(InterpolatorEnum.sitkLinear); AffineTransform transform = new AffineTransform(3); itk.simple.Transform Initial_transform = SimpleITK.CenteredTransformInitializer(Imagen_fija, Imagen_flotante, transform, CenteredTransformInitializerFilter.OperationModeType.GEOMETRY); R.SetInitialTransform(Initial_transform); ResampleImageFilter resampler_fija = new ResampleImageFilter(); resampler_fija.SetReferenceImage(Imagen_fija); resampler_fija.SetTransform(Initial_transform); resampler_fija.SetInterpolator(InterpolatorEnum.sitkLinear); Imagen_fija= resampler_fija.Execute(Imagen_fija); ResampleImageFilter resampler_flotante = new ResampleImageFilter(); resampler_flotante.SetReferenceImage(Imagen_flotante); resampler_flotante.SetTransform(Initial_transform); resampler_flotante.SetInterpolator(InterpolatorEnum.sitkLinear); Imagen_flotante = resampler_flotante.Execute(Imagen_flotante); * itk.simple.Command cmd = new Command();* * R.AddCommand(EventEnum.sitkIterationEvent, cmd);* itk.simple.Transform transform_final = R.Execute(Imagen_fija, Imagen_flotante); double metrica = R.GetMetricValue(); -- Matias -------------- next part -------------- An HTML attachment was scrubbed... URL: From blowekamp at mail.nih.gov Fri Jun 19 19:19:07 2015 From: blowekamp at mail.nih.gov (Bradley Lowekamp) Date: Fri, 19 Jun 2015 19:19:07 -0400 Subject: [ITK-users] [ITK] SimpleITK | Registration in C# In-Reply-To: References: Message-ID: <6BC95DE7-4888-431E-8242-91238669D1BD@mail.nih.gov> Here is the C# command example: https://github.com/SimpleITK/SimpleITK/blob/master/Examples/FilterProgressReporting.cs That with the python registration examples should be enough to write a command to report information at each iteration as needed. HTH, Brad On Jun 19, 2015, at 6:37 PM, Matias Montroull wrote: > Hi, I have this code so far for doing registration with SimpleITK. I've run it and seems to work ok but the offset and matrix doesn't change so I think I'm missing the command part which I haven't been able to figure out.. I marked in bold what I think needs further code, unfortunately I haven't found any example in C#, all is in Pyton or C++, I was able to kind of translate to C# and figure out but the Command part is a struggle for me so far.. > > itk.simple.Image Imagen_fija = new itk.simple.Image(); > itk.simple.Image Imagen_flotante = new itk.simple.Image(); > > ImageSeriesReader reader_fija = new ImageSeriesReader(); > var archivosdcm_fija = ImageSeriesReader.GetGDCMSeriesFileNames(@"C:\TRACKER\Pacientes\ST1_CT\DCM"); > reader_fija.SetFileNames(archivosdcm_fija); > Imagen_fija = reader_fija.Execute(); > > ImageSeriesReader reader_flotante = new ImageSeriesReader(); > var archivosdcm_flotante = ImageSeriesReader.GetGDCMSeriesFileNames(@"C:\TRACKER\Pacientes\ST1_RM\DCM"); > reader_flotante.SetFileNames(archivosdcm_flotante); > Imagen_flotante = reader_flotante.Execute(); > > CastImageFilter conversorafloat = new CastImageFilter(); conversorafloat.SetOutputPixelType(itk.simple.PixelIDValueEnum.sitkFloat32); > Imagen_fija = conversorafloat.Execute(Imagen_fija); > Imagen_flotante = conversorafloat.Execute(Imagen_flotante); > > ImageRegistrationMethod R = new ImageRegistrationMethod(); > R.SetMetricAsMattesMutualInformation(50); //numberof histogrambins > R.SetMetricSamplingPercentage(3.0); //Sampling % > R.SetOptimizerAsRegularStepGradientDescent(16.0, 0.1, 100, 0.99); //max step, min step, iteraciones, relaxation > R.SetInterpolator(InterpolatorEnum.sitkLinear); > > AffineTransform transform = new AffineTransform(3); > itk.simple.Transform Initial_transform = SimpleITK.CenteredTransformInitializer(Imagen_fija, Imagen_flotante, transform, CenteredTransformInitializerFilter.OperationModeType.GEOMETRY); > R.SetInitialTransform(Initial_transform); > ResampleImageFilter resampler_fija = new ResampleImageFilter(); > resampler_fija.SetReferenceImage(Imagen_fija); > resampler_fija.SetTransform(Initial_transform); > resampler_fija.SetInterpolator(InterpolatorEnum.sitkLinear); > Imagen_fija= resampler_fija.Execute(Imagen_fija); > > ResampleImageFilter resampler_flotante = new ResampleImageFilter(); > resampler_flotante.SetReferenceImage(Imagen_flotante); > resampler_flotante.SetTransform(Initial_transform); > resampler_flotante.SetInterpolator(InterpolatorEnum.sitkLinear); > Imagen_flotante = resampler_flotante.Execute(Imagen_flotante); > itk.simple.Command cmd = new Command(); > R.AddCommand(EventEnum.sitkIterationEvent, cmd); > > itk.simple.Transform transform_final = R.Execute(Imagen_fija, Imagen_flotante); > double metrica = R.GetMetricValue(); > -- > Matias > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community -------------- next part -------------- An HTML attachment was scrubbed... URL: From matimontg at gmail.com Mon Jun 22 17:41:30 2015 From: matimontg at gmail.com (Matias Montroull) Date: Mon, 22 Jun 2015 21:41:30 +0000 Subject: [ITK-users] SimpleITK | LandmarkBasedTransformInitializer Message-ID: Hi, I searched and seems the LandmarkBasedTransformInitializer is not in SimpleITK, am I right? I'm using version 0.9. Thanks, -- Matias -------------- next part -------------- An HTML attachment was scrubbed... URL: From matimontg at gmail.com Mon Jun 22 18:38:23 2015 From: matimontg at gmail.com (Matias Montroull) Date: Mon, 22 Jun 2015 22:38:23 +0000 Subject: [ITK-users] C++ Dependencies Message-ID: Hi, If I compile ITK code into an exe then copy it over to another machine, which dependencies do I need to copy? I noticed if I copy an .exe into a new machine, I'm missing some links to dependencies or DLLs I guess. I'm working with VisualStudio 2013. Any consideration when building in release mode? Do I need to select an option that includes all ITK dependencies or how that works? Thanks, Matias. -- Matias -------------- next part -------------- An HTML attachment was scrubbed... URL: From brad at lowekamp.net Mon Jun 22 18:42:01 2015 From: brad at lowekamp.net (Bradley Lowekamp) Date: Mon, 22 Jun 2015 18:42:01 -0400 Subject: [ITK-users] C++ Dependencies In-Reply-To: References: Message-ID: <5C33D2B0-C292-4C39-B448-2930C2A525D2@mail.nih.gov> Hello, You are probably just missing the vs 2013 runtime libraries which can be found here: https://www.microsoft.com/en-us/download/details.aspx?id=40784 HTH Brad > On Jun 22, 2015, at 6:38 PM, Matias Montroull wrote: > > Hi, > > If I compile ITK code into an exe then copy it over to another machine, which dependencies do I need to copy? > I noticed if I copy an .exe into a new machine, I'm missing some links to dependencies or DLLs I guess. > > I'm working with VisualStudio 2013. Any consideration when building in release mode? Do I need to select an option that includes all ITK dependencies or how that works? > > Thanks, > > Matias. > -- > Matias > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users From zivrafael.yaniv at nih.gov Mon Jun 22 22:43:29 2015 From: zivrafael.yaniv at nih.gov (Yaniv, Ziv Rafael (NIH/NLM/LHC) [C]) Date: Tue, 23 Jun 2015 02:43:29 +0000 Subject: [ITK-users] SimpleITK | LandmarkBasedTransformInitializer In-Reply-To: References: Message-ID: You are correct. We expect to have it in the next release. As a temporary solution if you need rigid alignment you can take the python function absolute_orientation_m from the ipython notebook found here: https://github.com/zivy/SimpleITK-Notebook-Staging/blob/master/registration2.ipynb hope this helps Ziv ________________________________ From: Matias Montroull [matimontg at gmail.com] Sent: Monday, June 22, 2015 5:41 PM To: insight-users at itk.org Users Subject: [ITK-users] SimpleITK | LandmarkBasedTransformInitializer Hi, I searched and seems the LandmarkBasedTransformInitializer is not in SimpleITK, am I right? I'm using version 0.9. Thanks, -- Matias -------------- next part -------------- An HTML attachment was scrubbed... URL: From julien.jomier at kitware.com Thu Jun 25 03:32:53 2015 From: julien.jomier at kitware.com (Julien Jomier) Date: Thu, 25 Jun 2015 09:32:53 +0200 Subject: [ITK-users] ANN: CMake Course - Sept 7 in Lyon, France In-Reply-To: <5534C5BF.2020605@kitware.com> References: <53BD4650.6070909@kitware.com> <5534C5BF.2020605@kitware.com> Message-ID: <558BAEA5.4090509@kitware.com> Kitware will be holding a CMake training course on September 7, 2015 at Kitware's office in Lyon, France. This one-day course will cover CMake, CTest, CPack and CDash. Visit our website for more information and registration details (early registration and student discounts available): http://training.kitware.fr/browse/80 Note that the course will be taught in English. If you have any questions, please contact me directly or training at kitware.fr. We are looking forward to seeing you in Lyon, Julien -- Kitware SAS 26 rue Louis Gu?rin 69100 Villeurbanne, France http://www.kitware.eu From jmerkow at gmail.com Thu Jun 25 13:49:39 2015 From: jmerkow at gmail.com (jmerkow) Date: Thu, 25 Jun 2015 10:49:39 -0700 (MST) Subject: [ITK-users] SimpleITK errors when linked against Message-ID: <1435254579201-35829.post@n7.nabble.com> I am trying to link against SimpleITK in another project. Right now, I am testing that the dependences do not clash and simply including simpleITK.h and setting namespace sitk = itk::simple; I am running into trouble with some of the c++11 members, specifically bind and function. Linking against the c++11 causes a number of other errors in the project. However, the project I am working with links against boost. Is there a way to have simpleitk link against the boost versions of bind and function? Or some other way around this? Any help is greatly appreciated. --Jameson -- View this message in context: http://itk-users.7.n7.nabble.com/SimpleITK-errors-when-linked-against-tp35829.html Sent from the ITK - Users mailing list archive at Nabble.com. From matt.mccormick at kitware.com Thu Jun 25 14:21:12 2015 From: matt.mccormick at kitware.com (Matt McCormick) Date: Thu, 25 Jun 2015 14:21:12 -0400 Subject: [ITK-users] SimpleITK errors when linked against In-Reply-To: <1435254579201-35829.post@n7.nabble.com> References: <1435254579201-35829.post@n7.nabble.com> Message-ID: Hi Jameson, Best results are obtained when building all linked projects as c++11. HTH, Matt On Thu, Jun 25, 2015 at 1:49 PM, jmerkow wrote: > I am trying to link against SimpleITK in another project. > Right now, I am testing that the dependences do not clash and simply > including simpleITK.h and setting namespace sitk = itk::simple; > > I am running into trouble with some of the c++11 members, specifically bind > and function. > Linking against the c++11 causes a number of other errors in the project. > However, the project I am working with links against boost. > Is there a way to have simpleitk link against the boost versions of bind > and > function? > Or some other way around this? > > Any help is greatly appreciated. > --Jameson > > > > -- > View this message in context: > http://itk-users.7.n7.nabble.com/SimpleITK-errors-when-linked-against-tp35829.html > Sent from the ITK - Users mailing list archive at Nabble.com. > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jmerkow at gmail.com Thu Jun 25 14:04:50 2015 From: jmerkow at gmail.com (jmerkow) Date: Thu, 25 Jun 2015 11:04:50 -0700 (MST) Subject: [ITK-users] SimpleITK errors when linked against In-Reply-To: References: <1435254579201-35829.post@n7.nabble.com> Message-ID: <1435255490741-35831.post@n7.nabble.com> Thanks Matt. But, the project I am using isn't compatible with c++11. It uses nvcc (cuda) which only recently started c++11 support and many machines are not yet updated since there are other changes as well. TL;DR, I can't link this project against c++11 without a large overhaul. Are there any other options? --Jameson -- View this message in context: http://itk-users.7.n7.nabble.com/SimpleITK-errors-when-linked-against-tp35829p35831.html Sent from the ITK - Users mailing list archive at Nabble.com. From blowekamp at mail.nih.gov Thu Jun 25 14:33:53 2015 From: blowekamp at mail.nih.gov (Bradley Lowekamp) Date: Thu, 25 Jun 2015 14:33:53 -0400 Subject: [ITK-users] SimpleITK errors when linked against In-Reply-To: <1435254579201-35829.post@n7.nabble.com> References: <1435254579201-35829.post@n7.nabble.com> Message-ID: <57F62038-1C93-48BC-B819-8C7BE8A00AE9@mail.nih.gov> What are the errors you are getting when compiling with SimpleITK and boost? Brad On Jun 25, 2015, at 1:49 PM, jmerkow wrote: > I am trying to link against SimpleITK in another project. > Right now, I am testing that the dependences do not clash and simply > including simpleITK.h and setting namespace sitk = itk::simple; > > I am running into trouble with some of the c++11 members, specifically bind > and function. > Linking against the c++11 causes a number of other errors in the project. > However, the project I am working with links against boost. > Is there a way to have simpleitk link against the boost versions of bind and > function? > Or some other way around this? > > Any help is greatly appreciated. > --Jameson > > > > -- > View this message in context: http://itk-users.7.n7.nabble.com/SimpleITK-errors-when-linked-against-tp35829.html > Sent from the ITK - Users mailing list archive at Nabble.com. > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users From jmerkow at gmail.com Thu Jun 25 14:31:20 2015 From: jmerkow at gmail.com (jmerkow) Date: Thu, 25 Jun 2015 11:31:20 -0700 (MST) Subject: [ITK-users] SimpleITK errors when linked against In-Reply-To: <57F62038-1C93-48BC-B819-8C7BE8A00AE9@mail.nih.gov> References: <1435254579201-35829.post@n7.nabble.com> <57F62038-1C93-48BC-B819-8C7BE8A00AE9@mail.nih.gov> Message-ID: <1435257080300-35833.post@n7.nabble.com> Bradley Lowekamp wrote > What are the errors you are getting when compiling with SimpleITK and > boost? > > Brad So, I don't see anything specific in SimpleITK to link against boost, I am just starting to go down this rabbit hole. I updated nsstd/functional.h by removing the c++11 and tr1 namespace bind and function calls and replacing them with boost. *In test file:* #define BOOST_BIND_NO_PLACEHOLDERS #include #include #include "SimpleITK.h" ... namespace sitk = itk::simple; ... *nsstd/functional.h*: .... namespace itk { namespace simple { namespace nsstd { using boost::function; using boost::bind; using namespace std::placeholders; namespace placeholders = std::placeholders; }}} Right now, I am linking SimpleITK+Boost fine. However, I haven't test any actual functionality yet. I wanted to see anyone else had done this, and sanity check this approach. --Jameson -- View this message in context: http://itk-users.7.n7.nabble.com/SimpleITK-errors-when-linked-against-tp35829p35833.html Sent from the ITK - Users mailing list archive at Nabble.com. From siavashk at ece.ubc.ca Fri Jun 26 13:14:00 2015 From: siavashk at ece.ubc.ca (siavashk) Date: Fri, 26 Jun 2015 10:14:00 -0700 (MST) Subject: [ITK-users] Using ITK with OpenSlide Message-ID: <1435338840279-35834.post@n7.nabble.com> Hello, I am trying to use ITK with OpenSlide and it seems that there is an external module for this. I followed the instructions that you had on https://github.com/InsightSoftwareConsortium/ITKOpenSlideIO to try to compile OpenSlide with ITK. I am running the latest stable clone ITK (4.7.1), Windows 8.1 (64-bit) and compiling in VS 12.0, 2013. I used the OpenSlide 64-bit binaries from http://openslide.org/download/ (2015-04-20 release). There was a configuration error in the CMake, so I changed the dependency in itk-module.cmake from itkIOBase to ITKIOImageBase. I am guessing I had to this is because of migration to ITK-v4. Next, I built ITK with the external module enabled. Everything compiled fine, or so I think. Afterwards, I wrote a small test program to see if I can read the pathology images in your input folder with ITKOpenSlide (I have attached the source code and the data). However, ITK throws the following exception when I try to read images: itk::ExceptionObject (00000000016B0B2EF30) Location: "unsigned int __cdecl itk::ImageIOBase::GetComponentSize(void) const" File: C:\Users\siavash\devel\ITK\Modules\IO\ImageBase\src\itkImageIOBase.cxx Line:367 Description: itk::Error: OpenSlideImageIO(000000016B3308640): Unknown component type: 0 If there is an easy fix for this, I would appreciate if anyone could help me. Otherwise, I would appreciate it if people would give me some hints as how to write the reader from scratch. I have an approximate knowledge of how factories work and how they are registered in ITK, but I have never written a reader from scratch. Thank you, Siavash CMakeLists.txt itkOpenSlideImageIOTest.cxx 15711_tiled.md5 -- View this message in context: http://itk-users.7.n7.nabble.com/Using-ITK-with-OpenSlide-tp35834.html Sent from the ITK - Users mailing list archive at Nabble.com. From matt.mccormick at kitware.com Fri Jun 26 13:49:56 2015 From: matt.mccormick at kitware.com (Matt McCormick) Date: Fri, 26 Jun 2015 13:49:56 -0400 Subject: [ITK-users] Using ITK with OpenSlide In-Reply-To: <1435338840279-35834.post@n7.nabble.com> References: <1435338840279-35834.post@n7.nabble.com> Message-ID: Hi Siavash, Thanks for pinging the lists on your efforts. I have added your GitHub account to the repository to make changes. Until the module is merged as a remote module, the IO will be have to be registered manually as shown here: https://github.com/InsightSoftwareConsortium/ITKIOOpenSlide/blob/master/test/itkOpenSlideImageIOTest.cxx#L37 HTH, Matt On Fri, Jun 26, 2015 at 1:14 PM, siavashk wrote: > Hello, > > I am trying to use ITK with OpenSlide and it seems that there is an > external > module for this. I followed the instructions that you had on > https://github.com/InsightSoftwareConsortium/ITKOpenSlideIO to try to > compile OpenSlide with ITK. > > I am running the latest stable clone ITK (4.7.1), Windows 8.1 (64-bit) and > compiling in VS 12.0, 2013. I used the OpenSlide 64-bit binaries from > http://openslide.org/download/ (2015-04-20 release). > > There was a configuration error in the CMake, so I changed the dependency > in > itk-module.cmake from itkIOBase to ITKIOImageBase. I am guessing I had to > this is because of migration to ITK-v4. > > Next, I built ITK with the external module enabled. Everything compiled > fine, or so I think. Afterwards, I wrote a small test program to see if I > can read the pathology images in your input folder with ITKOpenSlide (I > have > attached the source code and the data). However, ITK throws the following > exception when I try to read images: > > itk::ExceptionObject (00000000016B0B2EF30) > Location: "unsigned int __cdecl itk::ImageIOBase::GetComponentSize(void) > const" > File: > C:\Users\siavash\devel\ITK\Modules\IO\ImageBase\src\itkImageIOBase.cxx > Line:367 > Description: itk::Error: OpenSlideImageIO(000000016B3308640): Unknown > component type: 0 > > If there is an easy fix for this, I would appreciate if anyone could help > me. Otherwise, I would appreciate it if people would give me some hints as > how to write the reader from scratch. I have an approximate knowledge of > how > factories work and how they are registered in ITK, but I have never written > a reader from scratch. > > Thank you, > > Siavash > > CMakeLists.txt < > http://itk-users.7.n7.nabble.com/file/n35834/CMakeLists.txt> > itkOpenSlideImageIOTest.cxx > > 15711_tiled.md5 > > > > > -- > View this message in context: > http://itk-users.7.n7.nabble.com/Using-ITK-with-OpenSlide-tp35834.html > Sent from the ITK - Users mailing list archive at Nabble.com. > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From siavashk at ece.ubc.ca Fri Jun 26 13:33:55 2015 From: siavashk at ece.ubc.ca (siavashk) Date: Fri, 26 Jun 2015 10:33:55 -0700 (MST) Subject: [ITK-users] Using ITK with OpenSlide In-Reply-To: References: <1435338840279-35834.post@n7.nabble.com> Message-ID: <1435340035878-35836.post@n7.nabble.com> Thanks for replying to me on this. I think I am already registering the IO correctly. I basically used the same code in the link that you provided and added an update call to the reader, i.e. reader->Update(); I think the issue is that itkImageIOBase cannot recognize the m_ComponentType, which is the pixel type (?) Matt McCormick-3 wrote > Until the module is merged as a remote module, the IO will be have to be > registered manually as shown here: > > https://github.com/InsightSoftwareConsortium/ITKIOOpenSlide/blob/master/test/itkOpenSlideImageIOTest.cxx#L37 -- View this message in context: http://itk-users.7.n7.nabble.com/Using-ITK-with-OpenSlide-tp35834p35836.html Sent from the ITK - Users mailing list archive at Nabble.com. From matt.mccormick at kitware.com Fri Jun 26 14:18:06 2015 From: matt.mccormick at kitware.com (Matt McCormick) Date: Fri, 26 Jun 2015 14:18:06 -0400 Subject: [ITK-users] Using ITK with OpenSlide In-Reply-To: <1435340035878-35836.post@n7.nabble.com> References: <1435338840279-35834.post@n7.nabble.com> <1435340035878-35836.post@n7.nabble.com> Message-ID: Hi Siavash, The ComponentType is described here: http://www.itk.org/Doxygen/html/classitk_1_1ImageIOBase.html#a8dc783055a0af6f0a5a26cb080feb178 I do not think the module was completed. The documentation of itk::ImageIOBase can be helpful. The many IO modules can be used as examples. HTH, Matt On Fri, Jun 26, 2015 at 1:33 PM, siavashk wrote: > Thanks for replying to me on this. I think I am already registering the IO > correctly. I basically used the same code in the link that you provided and > added an update call to the reader, i.e. reader->Update(); > > I think the issue is that itkImageIOBase cannot recognize the > m_ComponentType, which is the pixel type (?) > > > Matt McCormick-3 wrote > > Until the module is merged as a remote module, the IO will be have to be > > registered manually as shown here: > > > > > https://github.com/InsightSoftwareConsortium/ITKIOOpenSlide/blob/master/test/itkOpenSlideImageIOTest.cxx#L37 > > > > > > -- > View this message in context: > http://itk-users.7.n7.nabble.com/Using-ITK-with-OpenSlide-tp35834p35836.html > Sent from the ITK - Users mailing list archive at Nabble.com. > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From siavashk at ece.ubc.ca Fri Jun 26 14:05:49 2015 From: siavashk at ece.ubc.ca (siavashk) Date: Fri, 26 Jun 2015 11:05:49 -0700 (MST) Subject: [ITK-users] Using ITK with OpenSlide In-Reply-To: References: <1435338840279-35834.post@n7.nabble.com> <1435340035878-35836.post@n7.nabble.com> Message-ID: <1435341949531-35838.post@n7.nabble.com> Matt McCormick-3 wrote > I do not think the module was completed. The documentation of > itk::ImageIOBase can be helpful. The many IO modules can be used as > examples. Thanks. I guess I will look into /ITK/Modules/IO/ and see if there is one that is close to what I am trying to do. If I end up writing the module, I will push the changes to your repository (pending your approval). Siavash -- View this message in context: http://itk-users.7.n7.nabble.com/Using-ITK-with-OpenSlide-tp35834p35838.html Sent from the ITK - Users mailing list archive at Nabble.com. From matt.mccormick at kitware.com Fri Jun 26 17:57:29 2015 From: matt.mccormick at kitware.com (Matt McCormick) Date: Fri, 26 Jun 2015 17:57:29 -0400 Subject: [ITK-users] [ANNOUNCE] ITK 4.8.0 Release Candidate 3 is ready for testing! Message-ID: On behalf of the Insight Toolkit community, we are proud to announce that ITK 4.8.0 release candidate 3 has been tagged and is available for testing! Please take this opportunity to test the new features in the release candidate. To obtain the source code, git clone http://itk.org/ITK.git cd ITK git checkout -q --detach v4.8rc03 For more details, please see the Git documentation [1]. A few selected highlights for this release: - New remote modules: BridgeNumPy, LabelErodeDilate, ParabolicMorphology, MinimalPathExtraction - itk::FFTPadImageFilter to automatically pad images for the FFT implementation?s supported greatest prime factor - Additional point set registration capabilities. - More modules can be built as shared libraries. - GDCM, MetaIO, KWSys, MINC have been updated to their latest upstream versions. Python wrapping is in excellent shape and works with the latest GCC, Clang, and MSVC. - Experimental cross-compilation support for Windows (MinGW-w64), ARMv6 (Raspberry Pi), ARMv7 (Android), ppc64le (POWER8), and JavaScript (Emscripten). A more complete, detailed set of release notes will follow in subsequent release candidates. Please test the release candidate and share your experiences on the mailing list, issue tracker, and Gerrit Code Review. Since GDCM has seen a major upgrade to the latest version, please exercise DICOM IO, and be on the lookout for regressions. An Experimental build, which demonstrates how the test suite performs on your local build system, can be submitted to the dashboard [2] with: mkdir ../ITK-build cd ../ITK-build cmake ../ITK ctest -j 4 -M Experimental -T Configure -T Build -T Test -T Submit Visual Studio builds must also add ?-C Release? to the ctest command. Notify the mailing list if there are any unexpected failures. Testing your own applications against the RC is also appreciated. Congratulations and well done to the 31 contributors to this release. We would especially like to recognize the new contributors, David Froger, Cyril Mory, Dzenan Zukic, Ivan Setiawan, Jan Bergmeier, Rolf Eike Beer, Davis Vigneault, Gary JIA, and Alexander Hewer. The final release will be approximately one week from now. [1] http://www.itk.org/Wiki/ITK/Git [2] http://open.cdash.org/index.php?project=Insight New Features --------------------- * Wrapping improvements - Wrapping now uses CastXML instead of GCCXML - The latest GCC, Clang, and MSVC are fully supported - Details: http://kitware.com/blog/home/post/888 - Cross-compilation and packaging support - Details: http://kitware.com/blog/home/post/904 - ITK_WRAP_VECTOR_COMPONENTS option to specify number of wrapped vector components - More classes wrapped * Compiler Support - GCC 5.1 - Clang 3.6.0 - Better cross-compilation support (requires CMake 3.3) - Experimental support for Emscripten (JavaScript) - Details: http://kitware.com/blog/home/post/912 - Experimental support for the Raspberry Pi - Details: http://kitware.com/blog/home/post/887 - Experimental support for Android - Details: http://kitware.com/blog/home/post/893 - Experimental support for MXE/MinGW-w64 - Details: http://kitware.com/blog/home/post/883 - Experimental support for the POWER8 - Details: http://kitware.com/blog/home/post/891 * New Remote Modules - MinimalPathExtraction - Insight Journal Article: http://hdl.handle.net/1926/1332 - BridgeNumPy - Convert itk.Image to NumPy array?s and back - LabelErodeDilate - Insight Journal Article: http://hdl.handle.net/10380/3399 - ParabolicMorphology - Insight Journal Article: http://hdl.handle.net/1926/1370 * Infrastructure Improvements - An UpdateThirdPartyFromUpstream.sh script for 3rd party updates with Git subtree - Details: http://kitware.com/blog/home/post/899 - Minimum required CMake version is now 2.8.9 - Many more modules can be built as shared libraries - ITK_USE_SYSTEM_LIBRARIES variable during initial configuration to turn on use of common system third party libraries by default - Release testing data tarball split from source tarball - Gold linker used by default on Linux * Filtering Improvements - itk::FFTPadImageFilter to automatically pad images for the FFT implementation?s supported greatest prime factor - itk::AtomicInt class for parallel computation - Various performance enhancements * Registration Improvements - Point set SyN registration - Point set BSpline SyN registration * Documentation Improvements - The ITK Software Guide is now available in HTML - Details: http://kitware.com/blog/home/post/890 * Third Party Library Updates - GDCM updated to latest upstream - KWSys updated to the latest upstream - MetaIO updated to the latest upstream - MINC update to lastest upstream * Style improvements -- ITK gets more stylish with every release! * Improved code coverage -- we are at 85.4%! * *Lots* of important bug fixes * And much more! See details in the log below. Changes from v4.8rc02..v4.8rc03 ------------------------------------------------ Bradley Lowekamp (3): BUG: Remove reliance on exceptions in StringTools::ToData methods BUG: Fix WriteCellsAsBinary and valgrind defects COMP: Explicitly export SingleValuedNonLinearVnlOptimizerv4 Matthew McCormick (4): COMP: Address may be used uninitialized in IdentityTransformTest. COMP: Address array subscript above bounds in VTKPolyDataReader. COMP: Work around GDCM test segfault with Clang 3.5+. BUG: Do not use pthreads with Emscripten. Michka Popoff (1): ENH: Update PyInit for Python 3 ----------------------------------------------------- Errors or omissions? Please fix them here: https://docs.google.com/document/d/1AQolOw7Hpn7SCRg0LjH53nxdWJe2gJTR0ngOyg3PWxI/edit?usp=sharing From siavashk at ece.ubc.ca Fri Jun 26 19:37:36 2015 From: siavashk at ece.ubc.ca (SiavashK) Date: Fri, 26 Jun 2015 16:37:36 -0700 (MST) Subject: [ITK-users] Using ITK with OpenSlide In-Reply-To: <1435341949531-35838.post@n7.nabble.com> References: <1435338840279-35834.post@n7.nabble.com> <1435340035878-35836.post@n7.nabble.com> <1435341949531-35838.post@n7.nabble.com> Message-ID: <1435361856462-7587511.post@n2.nabble.com> SiavashK wrote > Thanks. I guess I will look into /ITK/Modules/IO/ and see if there is one > that is close to what I am trying to do. If I end up writing the module, I > will push the changes to your repository (pending your approval). > > Siavash I wrote a small script as a workaround for this (attached). This allowa me to read and manipulate my images in ITK. I will need to write the actual module at one point, since this method of conversion is not suitable for my project in the long run. Once the module is ready, I will share it for others as well. CMakeLists.txt itkOpenSlideImageIOTest.cxx -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/ITK-users-Using-ITK-with-OpenSlide-tp7587505p7587511.html Sent from the ITK Insight Users mailing list archive at Nabble.com. From siavashk at ece.ubc.ca Fri Jun 26 20:24:11 2015 From: siavashk at ece.ubc.ca (SiavashK) Date: Fri, 26 Jun 2015 17:24:11 -0700 (MST) Subject: [ITK-users] Suitable Data Container for Pyramid Images Message-ID: <1435364651122-7587512.post@n2.nabble.com> Hello, I have a series of pathology images that I am trying to read in ITK. Each image is acquired at different zoom levels (e.g. 1X, 4X, 8X, 40X) and concatenated into an image pyramid. As a result, each level of this image pyramid has a different size and spacing. Is there a suitable data container for this in ITK? I tried looking into itk::MultiResolutionPyramidImageFilter to try to figure out how the image pyramid is stored, but was unable to figure it out. Any recommendations are highly appreciated. Thanks, Siavash -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/Suitable-Data-Container-for-Pyramid-Images-tp7587512.html Sent from the ITK Insight Users mailing list archive at Nabble.com. From drechsler at gmx.net Sat Jun 27 09:24:37 2015 From: drechsler at gmx.net (Klaus) Date: Sat, 27 Jun 2015 15:24:37 +0200 Subject: [ITK-users] SimpleITK: Pass Image from C++ to Python Message-ID: <558EA415.8050409@gmx.net> Hi, I have a C++ application which I use to do all major image processing stuff, UI and so on. I embedded python as scripting language to quickly test new ideas. Currently I am using temporary files and pass file paths back and forth as a quick and dirty solution to pass images from one language to the other. However, I would like to directly pass a sitk (or itk) image from c++ as parameter to a python method/function call. Is there a straight forward (and efficient) way to achieve this? Thank you! Klaus From curiale at gmail.com Sat Jun 27 11:57:04 2015 From: curiale at gmail.com (=?utf-8?Q?Ariel_Hern=C3=A1n_Curiale?=) Date: Sat, 27 Jun 2015 17:57:04 +0200 Subject: [ITK-users] [ANNOUNCE] ITK 4.8.0 Release Candidate 3 is ready for testing! In-Reply-To: References: Message-ID: <7910CCB0-1FA4-48D6-B66E-CF7FA15E5FEC@gmail.com> Thanks for improving the python wrapper, specially for OS X and clang. I?m can?t wait to test the numpy integration. I just make a clean installation and the building process finished without any error. However, the ctest gives me six errors https://open.cdash.org/viewTest.php?onlyfailed&buildid=3878802 These errors are related to the GDCM and the QuickViewTest which I?m not using. Cheers, ______________________________________________ | Ariel Hern?n Curiale Ph.D Candidate | E.T.S.I de Telecomunicaci?n, Universidad de Valladolid | Campus Miguel Delibes s/n, 47011 Valladolid, Spain | Phone: 983-423000 ext. 5590 | Web: http://www.lpi.tel.uva.es/ | Personal Web: www.curiale.com.ar |_____________________________________________ > On 26 Jun 2015, at 23:57, Matt McCormick wrote: > > On behalf of the Insight Toolkit community, we are proud to announce > that ITK 4.8.0 release candidate 3 has been tagged and is available > for testing! Please take this opportunity to test the new features in > the release candidate. > > > To obtain the source code, > > > git clone http://itk.org/ITK.git > cd ITK > git checkout -q --detach v4.8rc03 > > > For more details, please see the Git documentation [1]. > > > A few selected highlights for this release: > > - New remote modules: BridgeNumPy, LabelErodeDilate, > ParabolicMorphology, MinimalPathExtraction > - itk::FFTPadImageFilter to automatically pad images for the FFT > implementation?s supported greatest prime factor > - Additional point set registration capabilities. > - More modules can be built as shared libraries. > - GDCM, MetaIO, KWSys, MINC have been updated to their latest upstream versions. > Python wrapping is in excellent shape and works with the latest GCC, > Clang, and MSVC. > - Experimental cross-compilation support for Windows (MinGW-w64), > ARMv6 (Raspberry Pi), ARMv7 (Android), ppc64le (POWER8), and > JavaScript (Emscripten). > > A more complete, detailed set of release notes will follow in > subsequent release candidates. > > > Please test the release candidate and share your experiences on the > mailing list, issue tracker, and Gerrit Code Review. Since GDCM has > seen a major upgrade to the latest version, please exercise DICOM IO, > and be on the lookout for regressions. > > An Experimental build, which demonstrates how the test suite performs > on your local build system, can be submitted to the dashboard [2] > with: > > > mkdir ../ITK-build > cd ../ITK-build > cmake ../ITK > ctest -j 4 -M Experimental -T Configure -T Build -T Test -T Submit > > > Visual Studio builds must also add ?-C Release? to the ctest command. > > Notify the mailing list if there are any unexpected failures. Testing > your own applications against the RC is also appreciated. > > > Congratulations and well done to the 31 contributors to this release. > We would especially like to recognize the new contributors, David > Froger, Cyril Mory, Dzenan Zukic, Ivan Setiawan, Jan Bergmeier, Rolf > Eike Beer, Davis Vigneault, Gary JIA, and Alexander Hewer. > > > > The final release will be approximately one week from now. > > > > > [1] http://www.itk.org/Wiki/ITK/Git > > [2] http://open.cdash.org/index.php?project=Insight > > > New Features > --------------------- > > * Wrapping improvements > > - Wrapping now uses CastXML instead of GCCXML > - The latest GCC, Clang, and MSVC are fully supported > - Details: http://kitware.com/blog/home/post/888 > - Cross-compilation and packaging support > - Details: http://kitware.com/blog/home/post/904 > - ITK_WRAP_VECTOR_COMPONENTS option to specify number of wrapped > vector components > - More classes wrapped > > > * Compiler Support > > - GCC 5.1 > - Clang 3.6.0 > - Better cross-compilation support (requires CMake 3.3) > - Experimental support for Emscripten (JavaScript) > - Details: http://kitware.com/blog/home/post/912 > - Experimental support for the Raspberry Pi > - Details: http://kitware.com/blog/home/post/887 > - Experimental support for Android > - Details: http://kitware.com/blog/home/post/893 > - Experimental support for MXE/MinGW-w64 > - Details: http://kitware.com/blog/home/post/883 > - Experimental support for the POWER8 > - Details: http://kitware.com/blog/home/post/891 > > > * New Remote Modules > > - MinimalPathExtraction > - Insight Journal Article: http://hdl.handle.net/1926/1332 > - BridgeNumPy > - Convert itk.Image to NumPy array?s and back > - LabelErodeDilate > - Insight Journal Article: http://hdl.handle.net/10380/3399 > - ParabolicMorphology > - Insight Journal Article: http://hdl.handle.net/1926/1370 > > > * Infrastructure Improvements > > - An UpdateThirdPartyFromUpstream.sh script for 3rd party updates with > Git subtree > - Details: http://kitware.com/blog/home/post/899 > - Minimum required CMake version is now 2.8.9 > - Many more modules can be built as shared libraries > - ITK_USE_SYSTEM_LIBRARIES variable during initial configuration to > turn on use of common system third party libraries by default > - Release testing data tarball split from source tarball > - Gold linker used by default on Linux > > > * Filtering Improvements > > - itk::FFTPadImageFilter to automatically pad images for the FFT > implementation?s supported greatest prime factor > - itk::AtomicInt class for parallel computation > - Various performance enhancements > > > * Registration Improvements > > - Point set SyN registration > - Point set BSpline SyN registration > > > * Documentation Improvements > > - The ITK Software Guide is now available in HTML > - Details: http://kitware.com/blog/home/post/890 > > > * Third Party Library Updates > > - GDCM updated to latest upstream > - KWSys updated to the latest upstream > - MetaIO updated to the latest upstream > - MINC update to lastest upstream > > * Style improvements -- ITK gets more stylish with every release! > > * Improved code coverage -- we are at 85.4%! > > * *Lots* of important bug fixes > > * And much more! See details in the log below. > > Changes from v4.8rc02..v4.8rc03 > ------------------------------------------------ > > Bradley Lowekamp (3): > BUG: Remove reliance on exceptions in StringTools::ToData methods > BUG: Fix WriteCellsAsBinary and valgrind defects > COMP: Explicitly export SingleValuedNonLinearVnlOptimizerv4 > > Matthew McCormick (4): > COMP: Address may be used uninitialized in IdentityTransformTest. > COMP: Address array subscript above bounds in VTKPolyDataReader. > COMP: Work around GDCM test segfault with Clang 3.5+. > BUG: Do not use pthreads with Emscripten. > > Michka Popoff (1): > ENH: Update PyInit for Python 3 > > > ----------------------------------------------------- > > Errors or omissions? Please fix them here: > > > https://docs.google.com/document/d/1AQolOw7Hpn7SCRg0LjH53nxdWJe2gJTR0ngOyg3PWxI/edit?usp=sharing > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Sat Jun 27 21:56:23 2015 From: matt.mccormick at kitware.com (Matt McCormick) Date: Sat, 27 Jun 2015 21:56:23 -0400 Subject: [ITK-users] [ANNOUNCE] ITK 4.8.0 Release Candidate 3 is ready for testing! In-Reply-To: <7910CCB0-1FA4-48D6-B66E-CF7FA15E5FEC@gmail.com> References: <7910CCB0-1FA4-48D6-B66E-CF7FA15E5FEC@gmail.com> Message-ID: Hi Ariel, Yes, the new Python support is very exciting :-)! Thank you for testing and reporting your results. The GDCM test segmentation faults should be fix with RC3. I am not sure about the QuickViewTest, but it commonly throws false positives. What version of VTK did you build against? Thanks, Matt On Sat, Jun 27, 2015 at 11:57 AM, Ariel Hern?n Curiale wrote: > > Thanks for improving the python wrapper, specially for OS X and clang. I?m > can?t wait to test the numpy integration. > I just make a clean installation and the building process finished without > any error. However, the ctest gives me six errors > https://open.cdash.org/viewTest.php?onlyfailed&buildid=3878802 > These errors are related to the GDCM and the QuickViewTest which I?m not > using. > > > Cheers, > ______________________________________________ > | Ariel Hern?n Curiale Ph.D Candidate > | E.T.S.I de Telecomunicaci?n, Universidad de Valladolid > | Campus Miguel Delibes s/n, 47011 Valladolid, Spain > | Phone: 983-423000 ext. 5590 > | Web: http://www.lpi.tel.uva.es/ > | Personal Web: www.curiale.com.ar > |_____________________________________________ > > On 26 Jun 2015, at 23:57, Matt McCormick > wrote: > > On behalf of the Insight Toolkit community, we are proud to announce > that ITK 4.8.0 release candidate 3 has been tagged and is available > for testing! Please take this opportunity to test the new features in > the release candidate. > > > To obtain the source code, > > > git clone http://itk.org/ITK.git > cd ITK > git checkout -q --detach v4.8rc03 > > > For more details, please see the Git documentation [1]. > > > A few selected highlights for this release: > > - New remote modules: BridgeNumPy, LabelErodeDilate, > ParabolicMorphology, MinimalPathExtraction > - itk::FFTPadImageFilter to automatically pad images for the FFT > implementation?s supported greatest prime factor > - Additional point set registration capabilities. > - More modules can be built as shared libraries. > - GDCM, MetaIO, KWSys, MINC have been updated to their latest upstream > versions. > Python wrapping is in excellent shape and works with the latest GCC, > Clang, and MSVC. > - Experimental cross-compilation support for Windows (MinGW-w64), > ARMv6 (Raspberry Pi), ARMv7 (Android), ppc64le (POWER8), and > JavaScript (Emscripten). > > A more complete, detailed set of release notes will follow in > subsequent release candidates. > > > Please test the release candidate and share your experiences on the > mailing list, issue tracker, and Gerrit Code Review. Since GDCM has > seen a major upgrade to the latest version, please exercise DICOM IO, > and be on the lookout for regressions. > > An Experimental build, which demonstrates how the test suite performs > on your local build system, can be submitted to the dashboard [2] > with: > > > mkdir ../ITK-build > cd ../ITK-build > cmake ../ITK > ctest -j 4 -M Experimental -T Configure -T Build -T Test -T Submit > > > Visual Studio builds must also add ?-C Release? to the ctest command. > > Notify the mailing list if there are any unexpected failures. Testing > your own applications against the RC is also appreciated. > > > Congratulations and well done to the 31 contributors to this release. > We would especially like to recognize the new contributors, David > Froger, Cyril Mory, Dzenan Zukic, Ivan Setiawan, Jan Bergmeier, Rolf > Eike Beer, Davis Vigneault, Gary JIA, and Alexander Hewer. > > > > The final release will be approximately one week from now. > > > > > [1] http://www.itk.org/Wiki/ITK/Git > > [2] http://open.cdash.org/index.php?project=Insight > > > New Features > --------------------- > > * Wrapping improvements > > - Wrapping now uses CastXML instead of GCCXML > - The latest GCC, Clang, and MSVC are fully supported > - Details: http://kitware.com/blog/home/post/888 > - Cross-compilation and packaging support > - Details: http://kitware.com/blog/home/post/904 > - ITK_WRAP_VECTOR_COMPONENTS option to specify number of wrapped > vector components > - More classes wrapped > > > * Compiler Support > > - GCC 5.1 > - Clang 3.6.0 > - Better cross-compilation support (requires CMake 3.3) > - Experimental support for Emscripten (JavaScript) > - Details: http://kitware.com/blog/home/post/912 > - Experimental support for the Raspberry Pi > - Details: http://kitware.com/blog/home/post/887 > - Experimental support for Android > - Details: http://kitware.com/blog/home/post/893 > - Experimental support for MXE/MinGW-w64 > - Details: http://kitware.com/blog/home/post/883 > - Experimental support for the POWER8 > - Details: http://kitware.com/blog/home/post/891 > > > * New Remote Modules > > - MinimalPathExtraction > - Insight Journal Article: http://hdl.handle.net/1926/1332 > - BridgeNumPy > - Convert itk.Image to NumPy array?s and back > - LabelErodeDilate > - Insight Journal Article: http://hdl.handle.net/10380/3399 > - ParabolicMorphology > - Insight Journal Article: http://hdl.handle.net/1926/1370 > > > * Infrastructure Improvements > > - An UpdateThirdPartyFromUpstream.sh script for 3rd party updates with > Git subtree > - Details: http://kitware.com/blog/home/post/899 > - Minimum required CMake version is now 2.8.9 > - Many more modules can be built as shared libraries > - ITK_USE_SYSTEM_LIBRARIES variable during initial configuration to > turn on use of common system third party libraries by default > - Release testing data tarball split from source tarball > - Gold linker used by default on Linux > > > * Filtering Improvements > > - itk::FFTPadImageFilter to automatically pad images for the FFT > implementation?s supported greatest prime factor > - itk::AtomicInt class for parallel computation > - Various performance enhancements > > > * Registration Improvements > > - Point set SyN registration > - Point set BSpline SyN registration > > > * Documentation Improvements > > - The ITK Software Guide is now available in HTML > - Details: http://kitware.com/blog/home/post/890 > > > * Third Party Library Updates > > - GDCM updated to latest upstream > - KWSys updated to the latest upstream > - MetaIO updated to the latest upstream > - MINC update to lastest upstream > > * Style improvements -- ITK gets more stylish with every release! > > * Improved code coverage -- we are at 85.4%! > > * *Lots* of important bug fixes > > * And much more! See details in the log below. > > Changes from v4.8rc02..v4.8rc03 > ------------------------------------------------ > > Bradley Lowekamp (3): > BUG: Remove reliance on exceptions in StringTools::ToData methods > BUG: Fix WriteCellsAsBinary and valgrind defects > COMP: Explicitly export SingleValuedNonLinearVnlOptimizerv4 > > Matthew McCormick (4): > COMP: Address may be used uninitialized in IdentityTransformTest. > COMP: Address array subscript above bounds in VTKPolyDataReader. > COMP: Work around GDCM test segfault with Clang 3.5+. > BUG: Do not use pthreads with Emscripten. > > Michka Popoff (1): > ENH: Update PyInit for Python 3 > > > ----------------------------------------------------- > > Errors or omissions? Please fix them here: > > > > https://docs.google.com/document/d/1AQolOw7Hpn7SCRg0LjH53nxdWJe2gJTR0ngOyg3PWxI/edit?usp=sharing > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Sat Jun 27 22:02:24 2015 From: matt.mccormick at kitware.com (Matt McCormick) Date: Sat, 27 Jun 2015 22:02:24 -0400 Subject: [ITK-users] Suitable Data Container for Pyramid Images In-Reply-To: <1435364651122-7587512.post@n2.nabble.com> References: <1435364651122-7587512.post@n2.nabble.com> Message-ID: Hi Siavash, One option is to use an itk::Array [1] templated over ImageType::Pointer (an itk:::SmartPointer for the Image type used). HTH, Matt [1] http://www.itk.org/Doxygen/html/classitk_1_1Array.html On Fri, Jun 26, 2015 at 8:24 PM, SiavashK wrote: > Hello, > > I have a series of pathology images that I am trying to read in ITK. Each > image is acquired at different zoom levels (e.g. 1X, 4X, 8X, 40X) and > concatenated into an image pyramid. As a result, each level of this image > pyramid has a different size and spacing. > > Is there a suitable data container for this in ITK? I tried looking into > itk::MultiResolutionPyramidImageFilter > < > http://www.itk.org/Doxygen/html/classitk_1_1MultiResolutionPyramidImageFilter.html > > > to try to figure out how the image pyramid is stored, but was unable to > figure it out. Any recommendations are highly appreciated. > > Thanks, > > Siavash > > > > -- > View this message in context: > http://itk-insight-users.2283740.n2.nabble.com/Suitable-Data-Container-for-Pyramid-Images-tp7587512.html > Sent from the ITK Insight Users mailing list archive at Nabble.com. > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From curiale at gmail.com Sun Jun 28 05:05:42 2015 From: curiale at gmail.com (=?utf-8?Q?Ariel_Hern=C3=A1n_Curiale?=) Date: Sun, 28 Jun 2015 11:05:42 +0200 Subject: [ITK-users] [ANNOUNCE] ITK 4.8.0 Release Candidate 3 is ready for testing! In-Reply-To: References: <7910CCB0-1FA4-48D6-B66E-CF7FA15E5FEC@gmail.com> Message-ID: Hi Matt, I?m using the last VTK 6.2.0. ______________________________________________ | Ariel Hern?n Curiale Ph.D Candidate | E.T.S.I de Telecomunicaci?n, Universidad de Valladolid | Campus Miguel Delibes s/n, 47011 Valladolid, Spain | Phone: 983-423000 ext. 5590 | Web: http://www.lpi.tel.uva.es/ | Personal Web: www.curiale.com.ar |_____________________________________________ > On 28 Jun 2015, at 03:56, Matt McCormick wrote: > > Hi Ariel, > > Yes, the new Python support is very exciting :-)! > > Thank you for testing and reporting your results. The GDCM test segmentation faults should be fix with RC3. I am not sure about the QuickViewTest, but it commonly throws false positives. What version of VTK did you build against? > > Thanks, > Matt > > On Sat, Jun 27, 2015 at 11:57 AM, Ariel Hern?n Curiale > wrote: > > Thanks for improving the python wrapper, specially for OS X and clang. I?m can?t wait to test the numpy integration. > I just make a clean installation and the building process finished without any error. However, the ctest gives me six errors https://open.cdash.org/viewTest.php?onlyfailed&buildid=3878802 > These errors are related to the GDCM and the QuickViewTest which I?m not using. > > > Cheers, > ______________________________________________ > | Ariel Hern?n Curiale Ph.D Candidate > | E.T.S.I de Telecomunicaci?n, Universidad de Valladolid > | Campus Miguel Delibes s/n, 47011 Valladolid, Spain > | Phone: 983-423000 ext. 5590 > | Web: http://www.lpi.tel.uva.es/ > | Personal Web: www.curiale.com.ar > |_____________________________________________ > >> On 26 Jun 2015, at 23:57, Matt McCormick > wrote: >> >> On behalf of the Insight Toolkit community, we are proud to announce >> that ITK 4.8.0 release candidate 3 has been tagged and is available >> for testing! Please take this opportunity to test the new features in >> the release candidate. >> >> >> To obtain the source code, >> >> >> git clone http://itk.org/ITK.git >> cd ITK >> git checkout -q --detach v4.8rc03 >> >> >> For more details, please see the Git documentation [1]. >> >> >> A few selected highlights for this release: >> >> - New remote modules: BridgeNumPy, LabelErodeDilate, >> ParabolicMorphology, MinimalPathExtraction >> - itk::FFTPadImageFilter to automatically pad images for the FFT >> implementation?s supported greatest prime factor >> - Additional point set registration capabilities. >> - More modules can be built as shared libraries. >> - GDCM, MetaIO, KWSys, MINC have been updated to their latest upstream versions. >> Python wrapping is in excellent shape and works with the latest GCC, >> Clang, and MSVC. >> - Experimental cross-compilation support for Windows (MinGW-w64), >> ARMv6 (Raspberry Pi), ARMv7 (Android), ppc64le (POWER8), and >> JavaScript (Emscripten). >> >> A more complete, detailed set of release notes will follow in >> subsequent release candidates. >> >> >> Please test the release candidate and share your experiences on the >> mailing list, issue tracker, and Gerrit Code Review. Since GDCM has >> seen a major upgrade to the latest version, please exercise DICOM IO, >> and be on the lookout for regressions. >> >> An Experimental build, which demonstrates how the test suite performs >> on your local build system, can be submitted to the dashboard [2] >> with: >> >> >> mkdir ../ITK-build >> cd ../ITK-build >> cmake ../ITK >> ctest -j 4 -M Experimental -T Configure -T Build -T Test -T Submit >> >> >> Visual Studio builds must also add ?-C Release? to the ctest command. >> >> Notify the mailing list if there are any unexpected failures. Testing >> your own applications against the RC is also appreciated. >> >> >> Congratulations and well done to the 31 contributors to this release. >> We would especially like to recognize the new contributors, David >> Froger, Cyril Mory, Dzenan Zukic, Ivan Setiawan, Jan Bergmeier, Rolf >> Eike Beer, Davis Vigneault, Gary JIA, and Alexander Hewer. >> >> >> >> The final release will be approximately one week from now. >> >> >> >> >> [1] http://www.itk.org/Wiki/ITK/Git >> >> [2] http://open.cdash.org/index.php?project=Insight >> >> >> New Features >> --------------------- >> >> * Wrapping improvements >> >> - Wrapping now uses CastXML instead of GCCXML >> - The latest GCC, Clang, and MSVC are fully supported >> - Details: http://kitware.com/blog/home/post/888 >> - Cross-compilation and packaging support >> - Details: http://kitware.com/blog/home/post/904 >> - ITK_WRAP_VECTOR_COMPONENTS option to specify number of wrapped >> vector components >> - More classes wrapped >> >> >> * Compiler Support >> >> - GCC 5.1 >> - Clang 3.6.0 >> - Better cross-compilation support (requires CMake 3.3) >> - Experimental support for Emscripten (JavaScript) >> - Details: http://kitware.com/blog/home/post/912 >> - Experimental support for the Raspberry Pi >> - Details: http://kitware.com/blog/home/post/887 >> - Experimental support for Android >> - Details: http://kitware.com/blog/home/post/893 >> - Experimental support for MXE/MinGW-w64 >> - Details: http://kitware.com/blog/home/post/883 >> - Experimental support for the POWER8 >> - Details: http://kitware.com/blog/home/post/891 >> >> >> * New Remote Modules >> >> - MinimalPathExtraction >> - Insight Journal Article: http://hdl.handle.net/1926/1332 >> - BridgeNumPy >> - Convert itk.Image to NumPy array?s and back >> - LabelErodeDilate >> - Insight Journal Article: http://hdl.handle.net/10380/3399 >> - ParabolicMorphology >> - Insight Journal Article: http://hdl.handle.net/1926/1370 >> >> >> * Infrastructure Improvements >> >> - An UpdateThirdPartyFromUpstream.sh script for 3rd party updates with >> Git subtree >> - Details: http://kitware.com/blog/home/post/899 >> - Minimum required CMake version is now 2.8.9 >> - Many more modules can be built as shared libraries >> - ITK_USE_SYSTEM_LIBRARIES variable during initial configuration to >> turn on use of common system third party libraries by default >> - Release testing data tarball split from source tarball >> - Gold linker used by default on Linux >> >> >> * Filtering Improvements >> >> - itk::FFTPadImageFilter to automatically pad images for the FFT >> implementation?s supported greatest prime factor >> - itk::AtomicInt class for parallel computation >> - Various performance enhancements >> >> >> * Registration Improvements >> >> - Point set SyN registration >> - Point set BSpline SyN registration >> >> >> * Documentation Improvements >> >> - The ITK Software Guide is now available in HTML >> - Details: http://kitware.com/blog/home/post/890 >> >> >> * Third Party Library Updates >> >> - GDCM updated to latest upstream >> - KWSys updated to the latest upstream >> - MetaIO updated to the latest upstream >> - MINC update to lastest upstream >> >> * Style improvements -- ITK gets more stylish with every release! >> >> * Improved code coverage -- we are at 85.4%! >> >> * *Lots* of important bug fixes >> >> * And much more! See details in the log below. >> >> Changes from v4.8rc02..v4.8rc03 >> ------------------------------------------------ >> >> Bradley Lowekamp (3): >> BUG: Remove reliance on exceptions in StringTools::ToData methods >> BUG: Fix WriteCellsAsBinary and valgrind defects >> COMP: Explicitly export SingleValuedNonLinearVnlOptimizerv4 >> >> Matthew McCormick (4): >> COMP: Address may be used uninitialized in IdentityTransformTest. >> COMP: Address array subscript above bounds in VTKPolyDataReader. >> COMP: Work around GDCM test segfault with Clang 3.5+. >> BUG: Do not use pthreads with Emscripten. >> >> Michka Popoff (1): >> ENH: Update PyInit for Python 3 >> >> >> ----------------------------------------------------- >> >> Errors or omissions? Please fix them here: >> >> >> https://docs.google.com/document/d/1AQolOw7Hpn7SCRg0LjH53nxdWJe2gJTR0ngOyg3PWxI/edit?usp=sharing >> _____________________________________ >> 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://public.kitware.com/mailman/listinfo/insight-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From grothausmann.roman at mh-hannover.de Mon Jun 29 08:38:56 2015 From: grothausmann.roman at mh-hannover.de (Grothausmann, Roman Dr.) Date: Mon, 29 Jun 2015 14:38:56 +0200 Subject: [ITK-users] initializations needed to use the output of an Inplace-ITK-filter directly as the segmentation image in ITK-Snap >= v3.2 Message-ID: <55913C60.7060600@mh-hannover.de> Dear mailing list members, In short: What extra initializations are needed if I want to use the output of an ITK-filter directly as the segmentation image in ITK-Snap >= v3.2? (ITK-Mailinglist included for suggestions on what other options there are to run an image iterator multi-threaded but outside an ITK-ImageFilter) Detailed description: For my CnJ mode I iterate over the whole Jsrc and Jdst images to copy the label clicked on from Jsrc to Jdst ("painting" with the current selected label). I took the code from the ITK-Snap paint-brush. It works, however is quite slow (~ 2-4 minutes for each click) for a 10G voxel image as the ROI is the whole image and not as small as for the paint-brush. To mimic the iteration inside an ITK Filter I wrote an InplaceImageFilter with a ThreadedGenerateData method to do the iteration (https://github.com/romangrothausmann/itksnap/commit/f184efb82ad23e07b7a69a70d5fc334fb24c3961). With a small addition: m_JdstWrapper->InitializeToWrapper(m_MainImageWrapper, m_JoinCF->GetOutput()); (https://github.com/romangrothausmann/itksnap/commit/82f72dc9cf2257025b561de98de08a9a6919f406) this now works for ITK-Snap v3.0. However, if I merge these changes into master or v3.2 the resulting ITK-Snap segfaults/asserts after InitializeJoinCF() but before CnJ mode is up and operational, the assertion occurs at: https://github.com/pyushkevich/itksnap/blob/master/Logic/Common/ImageCoordinateTransform.cxx#L217 My guess it that some part of the image transform/geometry code has changed between v3.0 and v3.2. It seems to me that m_Offset is not correctly initialized when used at https://github.com/pyushkevich/itksnap/blob/master/Logic/Common/ImageCoordinateTransform.cxx#L172 I hoped that m_JdstWrapper->CopyImageCoordinateTransform(m_MainImageWrapper) would do that but that didn't solve the issue. What do I have to add to the initialization code of CnJ to make the filter work? Or is it not possible to use the output of an ITK filter as the segmentation image in ITK-Snap directly? I could not find any code snippets where such a thing was done. All either had some "deep copy" or were for 2D slices only (when the transform was already applied or ignored). I though of just using ITK-Snap v3.0 for this, but v3.0 only compiles with ITK-4.2, which I never managed to run multi-threaded (not even for simple CLIs). Was there a special configuration needed to make ITK-4.2 run multi-threaded? All other ITK versions before and after worked multi-threaded out of the box for me. Without multi-threading the whole optimization is useless. NB: Similarly, the code for "deep copy image/region" is single threaded. As it is mostly used only when changing to a new mode, e.g. Snake mode, this is not as problematic as it is with the repeted interaction in CnJ mode. Still, for my current 10G images, this takes a couple of minutes in which one fears that ITK-Snap crashed as it does not react meanwhile. So this kind of ITK-Filter could be useful here as well. I'd be very thankful for any help and suggestions how to resolve this issue. Roman -- Dr. Roman Grothausmann Tomographie und Digitale Bildverarbeitung Tomography and Digital Image Analysis Institut f?r Funktionelle und Angewandte Anatomie, OE 4120 Medizinische Hochschule Hannover Carl-Neuberg-Str. 1 D-30625 Hannover Tel. +49 511 532-2900 From vikimcg at gmail.com Mon Jun 29 15:54:44 2015 From: vikimcg at gmail.com (Viki MCG) Date: Mon, 29 Jun 2015 21:54:44 +0200 Subject: [ITK-users] How can I calculate PCA Principal Modes means? Message-ID: I'm using itk::GeodesicActiveContourShapePriorLevelSetImageFilter. I read the example given in ( http://www.itk.org/Doxygen/html/Examples_2Segmentation_2GeodesicActiveContourShapePriorLevelSetImageFilter_8cxx-example.html) but I don't understand the following paragraph. // The parameters of the distribution are user-specified. Since we // assumed the principal modes have already been normalized, // we set the distribution to zero mean and unit variance. CostFunctionType::ArrayType mean( shape->GetNumberOfShapeParameters() ); CostFunctionType::ArrayType stddev( shape->GetNumberOfShapeParameters() ); mean.Fill( 0.0 ); stddev.Fill( 1.0 ); costFunction->SetShapeParameterMeans( mean ); costFunction->SetShapeParameterStandardDeviations( stddev ); Supposing that I have NOT normalized the principal modes, how can I calculate their means? I got principal modes using itk::ImagePCAShapeModelEstimator and I know their standard deviations are sqrt(eigen values), but I don't see how can I know their means. Any help would be very appreciated. Thanks in advance, Viki. -------------- next part -------------- An HTML attachment was scrubbed... URL: From vikimcg at gmail.com Tue Jun 30 07:07:07 2015 From: vikimcg at gmail.com (Viki MCG) Date: Tue, 30 Jun 2015 13:07:07 +0200 Subject: [ITK-users] [ITK] How can I calculate PCA Principal Modes means? In-Reply-To: <1337389529.66567749.1435655629130.JavaMail.zimbra@enst.fr> References: <1337389529.66567749.1435655629130.JavaMail.zimbra@enst.fr> Message-ID: First of all, thanks for the answer. Unfortunately, I don't think that "means" stands for "...the mean from each dimension of your data...". In the example the author creates two arrays (mean and stddev) with a length equal to the number of Principal Components, so, when he writes "mean.Fill(0.0)" he expects: a) one different mean for each Principal Component (of course, it could be the same, but he offers the chance to choose different means) b) a double value, not an array with a value for x, y and z. That's why I think your hint isn't right, unluckily. Anyway, I really appreciate the time you spent on solving my question, Viki. 2015-06-30 11:13 GMT+02:00 Timothee Evain : > Hello Viki, > > I'm not a specialist but it seems to me that this is the empirical mean of > your data. > Usually when you are doing a PCA, you are normalizing by subtracting the > mean and dividing the variance to avoid bias from huge scale data. > > So basically I would say you have to compute the mean from each dimension > of your data. > Stating that you are working with 3D : > [ Point1_X Point1_Y Point1_Z > : : : > PointN_X PointN_Y PointN_Z ] > > MeanX = (Sum[n=1...N] (Pointn_X)) / N > Idem for other. > > Hope this help, > > Tim > > ----- Mail original ----- > De: "Viki MCG" > ?: insight-users at itk.org > Envoy?: Lundi 29 Juin 2015 21:54:44 > Objet: [ITK] [ITK-users] How can I calculate PCA Principal Modes means? > > I'm using itk::GeodesicActiveContourShapePriorLevelSetImageFilter. I read > the example given in ( > > http://www.itk.org/Doxygen/html/Examples_2Segmentation_2GeodesicActiveContourShapePriorLevelSetImageFilter_8cxx-example.html > ) but I don't understand the following paragraph. > > // The parameters of the distribution are user-specified. Since we > // assumed the principal modes have already been normalized, > // we set the distribution to zero mean and unit variance. > CostFunctionType::ArrayType mean( shape->GetNumberOfShapeParameters() ); > CostFunctionType::ArrayType stddev( shape->GetNumberOfShapeParameters() ); > mean.Fill( 0.0 ); > stddev.Fill( 1.0 ); > costFunction->SetShapeParameterMeans( mean ); > costFunction->SetShapeParameterStandardDeviations( stddev ); > > Supposing that I have NOT normalized the principal modes, how can I > calculate their means? I got principal modes using > itk::ImagePCAShapeModelEstimator and I know their standard deviations are > sqrt(eigen values), but I don't see how can I know their means. > > Any help would be very appreciated. > > Thanks in advance, > > Viki. > > _____________________________________ > 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://public.kitware.com/mailman/listinfo/insight-users > > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > -------------- next part -------------- An HTML attachment was scrubbed... URL: From davis.vigneault at gmail.com Tue Jun 30 13:18:02 2015 From: davis.vigneault at gmail.com (DVigneault) Date: Tue, 30 Jun 2015 10:18:02 -0700 (MST) Subject: [ITK-users] Error printing vnl_vector_fixed when length is greater than 5. Message-ID: <1435684682775-7587521.post@n2.nabble.com> All-- I've encountered a build error when I attempt to print a vnl_vector_fixed, with length >= 6 only. I'm on Ubuntu 12.04, using g++ version 4.8.1, and I'm using a recent development build of ITK from the git repo. (I've been having the problem for some time, but have only just figured out how to make it reproducible.) Here is the error: Linking CXX executable dv-subdivision CMakeFiles/dv-subdivision.dir/dv-subdivision.cxx.o: In function `std::ostream& operator<< (std::ostream&, vnl_vector_fixed const&)': dv-subdivision.cxx:(.text._ZlsIfLj6EERSoS0_RK16vnl_vector_fixedIT_XT0_EE[_ZlsIfLj6EERSoS0_RK16vnl_vector_fixedIT_XT0_EE]+0x1f): undefined reference to `vnl_vector_fixed::print(std::ostream&) const' collect2: error: ld returned 1 exit status make[2]: *** [dv-subdivision] Error 1 make[1]: *** [CMakeFiles/dv-subdivision.dir/all] Error 2 make: *** [all] Error 2 And a minimal example: #include "vnl/vnl_vector_fixed.h" #include #include int main() { // vnl_vector_fixed FV; // No problems vnl_vector_fixed FV; // Build error FV.fill(0); std::cout << FV << std::endl; return EXIT_SUCCESS; } -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/Error-printing-vnl-vector-fixed-when-length-is-greater-than-5-tp7587521.html Sent from the ITK Insight Users mailing list archive at Nabble.com.