From jaysnanavati at hotmail.co.uk Thu Jun 1 07:26:17 2017 From: jaysnanavati at hotmail.co.uk (jay nanavati) Date: Thu, 1 Jun 2017 11:26:17 +0000 Subject: [ITK] Binary Dilate/Erode filter In-Reply-To: References: , Message-ID: Hi Matt, Thanks for the help on this, it makes sense now. Also with regards to the following : typename NeighborIndexContainer::const_iterator itIdx; NeighborIndexContainer & idxDifferenceSet = this->GetDifferenceSet(centerPixelCode); for ( itIdx = idxDifferenceSet.begin(); itIdx != idxDifferenceSet.end(); ++itIdx ) { IndexType idx = tmpRegIndexIt.GetIndex() + *itIdx; if ( outputRegion.IsInside(idx) ) { output->SetPixel(idx, backgroundValue); } } Am I correct in understanding that the entire SE is being painted? and is the reason why this is done at least one to take care of an edge case where the radius of the SE is bigger than the surface being painted, which means just painting the surface points wont actually be correct? Thanks, Jay ________________________________ From: Matt McCormick Sent: 29 May 2017 18:41:13 To: jay nanavati Cc: community at itk.org Subject: Re: [ITK] Binary Dilate/Erode filter Hi Jay, The region will be padded by the radius. The cropping will possibly shrink the region at the input image's boundaries. HTH, Matt On Mon, May 29, 2017 at 12:54 PM, jay nanavati wrote: > Hi - Looking at > ITK\Modules\Filtering\BinaryMathematicalMorphology\include\itkBinaryErodeImageFilter.hxx, > I am a bit confused with regards to the padding and cropping of the regions > for example, in the snippet below: > > ypename TInputImage::RegionType tmpRequestedRegion = outputRegion; > typename TInputImage::RegionType paddedInputRegion = > input->GetBufferedRegion(); > paddedInputRegion.PadByRadius(radius); // to support boundary values > InputSizeType padBy = radius; > for ( i = 0; i < KernelDimension; ++i ) > { > padBy[i] = ( padBy[i] > kernel.GetRadius(i) ? padBy[i] : > kernel.GetRadius(i) ); > } > tmpRequestedRegion.PadByRadius(padBy); > tmpRequestedRegion.Crop(paddedInputRegion); > > It appears that tmpRequestedRegion is padded but then immediately cropped, > which means it will always be padded by a radius of 1 in each dimension > anyways? Similar operations are performed when padding the > inputRegionForThread: > > // Pad the input region by the kernel > inputRegionForThread.PadByRadius( kernel.GetRadius() ); > inputRegionForThread.Crop( input->GetBufferedRegion() ); > > It would be great if someone could guide me on this. > > Thanks, > Jay > > > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > -------------- next part -------------- An HTML attachment was scrubbed... URL: From isshaa7 at gmail.com Thu Jun 1 22:09:55 2017 From: isshaa7 at gmail.com (slvnk151) Date: Thu, 1 Jun 2017 19:09:55 -0700 (MST) Subject: [ITK] [ITK-users] quickview header not found with recent itk4.11.1 Message-ID: <1496369395820-7589996.post@n2.nabble.com> Hi Everyone, I was interested in integrating vtk and itk for my laptop. I am using latest cmake 3.8.1, VTK 7.1.1 and ITK4.11.1 I am on windows 7 and using visual studio 2017 community edition. I managed to build and test vtk 7.1.1 on my laptop. I was also able to configure and generate ITK 4.11.1 with cmake 3.8.1 I turned on the module Module_ITKVtkGlue and pointed VTK_DIR towards vtk/bin (obtained with cmake generation) on my computer. I was also interested in Module_ITKMINC and Module_ITKIOMINC and Module_ITKIOTRansformMINC When I am building the ITK.sln(243 projects) in debug x64 mode using ALL_BUILD->build I am getting build errors for MINC module, which I am ignoring at the moment. Then I build INSTALL->build; which obviously fails for minc but is successful for the rest. But when I try to locate "QuickView.h" in the include folder I am unable to find it. This causes linker errors when trying to implement vtk-itk examples. I would like to know, how can I resolve the quickview.h header issue and also how can I make ITK.sln build successfully for MINC modules. Could someone please tell me what step am I missing. -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/quickview-header-not-found-with-recent-itk4-11-1-tp7589996.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 2 10:20:40 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Fri, 2 Jun 2017 10:20:40 -0400 Subject: [ITK] [ITK-users] quickview header not found with recent itk4.11.1 In-Reply-To: <1496369395820-7589996.post@n2.nabble.com> References: <1496369395820-7589996.post@n2.nabble.com> Message-ID: Hi, The MINC build issue has been addressed in ITK 4.12.0, which will be released within the next week. Please try your build again with this version and see if the missing QuickView.h issue persists. Thanks, Matt On Thu, Jun 1, 2017 at 10:09 PM, slvnk151 wrote: > Hi Everyone, > > I was interested in integrating vtk and itk for my laptop. > > I am using latest cmake 3.8.1, VTK 7.1.1 and ITK4.11.1 > > I am on windows 7 and using visual studio 2017 community edition. > > I managed to build and test vtk 7.1.1 on my laptop. > > I was also able to configure and generate ITK 4.11.1 with cmake 3.8.1 > > I turned on the module Module_ITKVtkGlue and pointed VTK_DIR towards > vtk/bin > (obtained with cmake generation) on my computer. > > I was also interested in Module_ITKMINC and Module_ITKIOMINC and > Module_ITKIOTRansformMINC > > When I am building the ITK.sln(243 projects) in debug x64 mode using > ALL_BUILD->build > > I am getting build errors for MINC module, which I am ignoring at the > moment. > > Then I build INSTALL->build; which obviously fails for minc but is > successful for the rest. > > But when I try to locate "QuickView.h" in the include folder I am unable > to > find it. This causes linker errors when trying to implement vtk-itk > examples. > > I would like to know, how can I resolve the quickview.h header issue and > also how can I make ITK.sln build successfully for MINC modules. > > Could someone please tell me what step am I missing. > > > > > -- > View this message in context: http://itk-insight-users. > 2283740.n2.nabble.com/quickview-header-not-found-with-recent-itk4-11-1- > tp7589996.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: -------------- next part -------------- _____________________________________ 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 dzenanz at gmail.com Fri Jun 2 10:28:28 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Fri, 2 Jun 2017 10:28:28 -0400 Subject: [ITK] [ITK-users] quickview header not found with recent itk4.11.1 In-Reply-To: <1496369395820-7589996.post@n2.nabble.com> References: <1496369395820-7589996.post@n2.nabble.com> Message-ID: Hi Isshaa, thanks for a clear report on what is happening. I just tried installing recent ITK master in debug mode with VTK_Glue on, and I do get QuickView.h in C:\Program Files\ITK\Include folder. If you don't want to wait for 4.12 release, you could try one of the recent release candidates or the current git master. Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Thu, Jun 1, 2017 at 10:09 PM, slvnk151 wrote: > Hi Everyone, > > I was interested in integrating vtk and itk for my laptop. > > I am using latest cmake 3.8.1, VTK 7.1.1 and ITK4.11.1 > > I am on windows 7 and using visual studio 2017 community edition. > > I managed to build and test vtk 7.1.1 on my laptop. > > I was also able to configure and generate ITK 4.11.1 with cmake 3.8.1 > > I turned on the module Module_ITKVtkGlue and pointed VTK_DIR towards > vtk/bin > (obtained with cmake generation) on my computer. > > I was also interested in Module_ITKMINC and Module_ITKIOMINC and > Module_ITKIOTRansformMINC > > When I am building the ITK.sln(243 projects) in debug x64 mode using > ALL_BUILD->build > > I am getting build errors for MINC module, which I am ignoring at the > moment. > > Then I build INSTALL->build; which obviously fails for minc but is > successful for the rest. > > But when I try to locate "QuickView.h" in the include folder I am unable > to > find it. This causes linker errors when trying to implement vtk-itk > examples. > > I would like to know, how can I resolve the quickview.h header issue and > also how can I make ITK.sln build successfully for MINC modules. > > Could someone please tell me what step am I missing. > > > > > -- > View this message in context: http://itk-insight-users. > 2283740.n2.nabble.com/quickview-header-not-found-with-recent-itk4-11-1- > tp7589996.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: -------------- next part -------------- _____________________________________ 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 2 10:57:01 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Fri, 2 Jun 2017 10:57:01 -0400 Subject: [ITK] Binary Dilate/Erode filter In-Reply-To: References: Message-ID: Hi Jay, Yes, outputRegion.IsInside(idx) means that we only are changing the region we are processing. HTH, Matt On Thu, Jun 1, 2017 at 7:26 AM, jay nanavati wrote: > Hi Matt, > > Thanks for the help on this, it makes sense now. > > Also with regards to the following : > > typename NeighborIndexContainer::const_iterator itIdx; > NeighborIndexContainer & idxDifferenceSet = > this->GetDifferenceSet(centerPixelCode); > for ( itIdx = idxDifferenceSet.begin(); > itIdx != idxDifferenceSet.end(); > ++itIdx ) > { > IndexType idx = tmpRegIndexIt.GetIndex() + *itIdx; > if ( outputRegion.IsInside(idx) ) > { > output->SetPixel(idx, backgroundValue); > } > } > > Am I correct in understanding that the entire SE is being painted? and is > the reason why this is done at least one to take care of an edge case where > the radius of the SE is bigger than the surface being painted, which means > just painting the surface points wont actually be correct? > > Thanks, > Jay > ------------------------------ > *From:* Matt McCormick > *Sent:* 29 May 2017 18:41:13 > *To:* jay nanavati > *Cc:* community at itk.org > *Subject:* Re: [ITK] Binary Dilate/Erode filter > > Hi Jay, > > The region will be padded by the radius. The cropping will possibly > shrink the region at the input image's boundaries. > > HTH, > Matt > > On Mon, May 29, 2017 at 12:54 PM, jay nanavati > wrote: > > Hi - Looking at > > ITK\Modules\Filtering\BinaryMathematicalMorphology\include\ > itkBinaryErodeImageFilter.hxx, > > I am a bit confused with regards to the padding and cropping of the > regions > > for example, in the snippet below: > > > > ypename TInputImage::RegionType tmpRequestedRegion = outputRegion; > > typename TInputImage::RegionType paddedInputRegion = > > input->GetBufferedRegion(); > > paddedInputRegion.PadByRadius(radius); // to support boundary values > > InputSizeType padBy = radius; > > for ( i = 0; i < KernelDimension; ++i ) > > { > > padBy[i] = ( padBy[i] > kernel.GetRadius(i) ? padBy[i] : > > kernel.GetRadius(i) ); > > } > > tmpRequestedRegion.PadByRadius(padBy); > > tmpRequestedRegion.Crop(paddedInputRegion); > > > > It appears that tmpRequestedRegion is padded but then immediately > cropped, > > which means it will always be padded by a radius of 1 in each dimension > > anyways? Similar operations are performed when padding the > > inputRegionForThread: > > > > // Pad the input region by the kernel > > inputRegionForThread.PadByRadius( kernel.GetRadius() ); > > inputRegionForThread.Crop( input->GetBufferedRegion() ); > > > > It would be great if someone could guide me on this. > > > > Thanks, > > Jay > > > > > > _______________________________________________ > > Community mailing list > > Community at itk.org > > http://public.kitware.com/mailman/listinfo/community > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From noreply at insightsoftwareconsortium.org Fri Jun 2 10:58:10 2017 From: noreply at insightsoftwareconsortium.org (Insight Journal) Date: Fri, 2 Jun 2017 10:58:10 -0400 (EDT) Subject: [ITK] [ITK-users] New Submission: Isotropic and Steerable Wavelets in N Dimensions. A multiresolution analysis framework. Message-ID: <20170602145811.515E43D620D2@insight-journal.org> Hello, A new submission has been added to the Insight Journal. Title: Isotropic and Steerable Wavelets in N Dimensions. A multiresolution analysis framework. Authors: Hernandez-Cerdan P. Abstract: This document describes the implementation of the external module ITKIsotropicWavelets, a multiresolution (MRA) analysis framework using isotropic and steerable wavelets in the frequency domain. This framework provides the backbone for state of the art filters for denoising, feature detection or phase analysis in N-dimensions. It focus on reusability, and highly decoupled modules for easy extension and implementation of new filters, and it contains a filter for multiresolution phase analysis, The backbone of the multi-scale analysis is provided by an isotropic band-limited wavelet pyramid, and the detection of directional features is provided by coupling the pyramid with a generalized Riesz transform. The generalized Riesz transform of order N behaves like a smoothed version of the Nth order derivatives of the signal. Also, it is steerable: its components impulse responses can be rotated to any spatial orientation, reducing computation time when detecting directional features. This paper is accompanied with the source code, input data, parameters and output data that the author used for validating the algorithm described in this paper. This adheres to the fundamental principle that scientific publications must facilitate reproducibility of the reported results. Download and review this publication at: http://hdl.handle.net/10380/3558 Generated by the Insight Journal You are receiving this email because you asked to be informed by the Insight Journal for new submissions. To change your email preference visit http://www.insight-journal.org/ . _____________________________________ 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 jaysnanavati at hotmail.co.uk Fri Jun 2 11:01:06 2017 From: jaysnanavati at hotmail.co.uk (jay nanavati) Date: Fri, 2 Jun 2017 15:01:06 +0000 Subject: [ITK] Binary Dilate/Erode filter In-Reply-To: References: , Message-ID: Hi Matt, I think your answer might be referring to my original question. But I could you please confirm my understanding on the painting of all of the SE points. Thanks, Jay On 2 Jun 2017, at 15:57, Matt McCormick > wrote: Hi Jay, Yes, outputRegion.IsInside(idx) means that we only are changing the region we are processing. HTH, Matt On Thu, Jun 1, 2017 at 7:26 AM, jay nanavati > wrote: Hi Matt, Thanks for the help on this, it makes sense now. Also with regards to the following : typename NeighborIndexContainer::const_iterator itIdx; NeighborIndexContainer & idxDifferenceSet = this->GetDifferenceSet(centerPixelCode); for ( itIdx = idxDifferenceSet.begin(); itIdx != idxDifferenceSet.end(); ++itIdx ) { IndexType idx = tmpRegIndexIt.GetIndex() + *itIdx; if ( outputRegion.IsInside(idx) ) { output->SetPixel(idx, backgroundValue); } } Am I correct in understanding that the entire SE is being painted? and is the reason why this is done at least one to take care of an edge case where the radius of the SE is bigger than the surface being painted, which means just painting the surface points wont actually be correct? Thanks, Jay ________________________________ From: Matt McCormick > Sent: 29 May 2017 18:41:13 To: jay nanavati Cc: community at itk.org Subject: Re: [ITK] Binary Dilate/Erode filter Hi Jay, The region will be padded by the radius. The cropping will possibly shrink the region at the input image's boundaries. HTH, Matt On Mon, May 29, 2017 at 12:54 PM, jay nanavati > wrote: > Hi - Looking at > ITK\Modules\Filtering\BinaryMathematicalMorphology\include\itkBinaryErodeImageFilter.hxx, > I am a bit confused with regards to the padding and cropping of the regions > for example, in the snippet below: > > ypename TInputImage::RegionType tmpRequestedRegion = outputRegion; > typename TInputImage::RegionType paddedInputRegion = > input->GetBufferedRegion(); > paddedInputRegion.PadByRadius(radius); // to support boundary values > InputSizeType padBy = radius; > for ( i = 0; i < KernelDimension; ++i ) > { > padBy[i] = ( padBy[i] > kernel.GetRadius(i) ? padBy[i] : > kernel.GetRadius(i) ); > } > tmpRequestedRegion.PadByRadius(padBy); > tmpRequestedRegion.Crop(paddedInputRegion); > > It appears that tmpRequestedRegion is padded but then immediately cropped, > which means it will always be padded by a radius of 1 in each dimension > anyways? Similar operations are performed when padding the > inputRegionForThread: > > // Pad the input region by the kernel > inputRegionForThread.PadByRadius( kernel.GetRadius() ); > inputRegionForThread.Crop( input->GetBufferedRegion() ); > > It would be great if someone could guide me on this. > > Thanks, > Jay > > > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Fri Jun 2 15:05:44 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Fri, 2 Jun 2017 15:05:44 -0400 Subject: [ITK] Binary Dilate/Erode filter In-Reply-To: References: Message-ID: Hi Jay, I am not sure that I fully understand your question, then. Matt On Fri, Jun 2, 2017 at 11:01 AM, jay nanavati wrote: > Hi Matt, > > I think your answer might be referring to my original question. But I > could you please confirm my understanding on the painting of all of the SE > points. > > Thanks, > Jay > > On 2 Jun 2017, at 15:57, Matt McCormick > wrote: > > Hi Jay, > > Yes, outputRegion.IsInside(idx) means that we only are changing the region > we are processing. > > HTH, > Matt > > On Thu, Jun 1, 2017 at 7:26 AM, jay nanavati > wrote: > >> Hi Matt, >> >> Thanks for the help on this, it makes sense now. >> >> Also with regards to the following : >> >> typename NeighborIndexContainer::const_iterator itIdx; >> NeighborIndexContainer & idxDifferenceSet = >> this->GetDifferenceSet(centerPixelCode); >> for ( itIdx = idxDifferenceSet.begin(); >> itIdx != idxDifferenceSet.end(); >> ++itIdx ) >> { >> IndexType idx = tmpRegIndexIt.GetIndex() + *itIdx; >> if ( outputRegion.IsInside(idx) ) >> { >> output->SetPixel(idx, backgroundValue); >> } >> } >> >> Am I correct in understanding that the entire SE is being painted? and is >> the reason why this is done at least one to take care of an edge case where >> the radius of the SE is bigger than the surface being painted, which means >> just painting the surface points wont actually be correct? >> >> Thanks, >> Jay >> ------------------------------ >> *From:* Matt McCormick >> *Sent:* 29 May 2017 18:41:13 >> *To:* jay nanavati >> *Cc:* community at itk.org >> *Subject:* Re: [ITK] Binary Dilate/Erode filter >> >> Hi Jay, >> >> The region will be padded by the radius. The cropping will possibly >> shrink the region at the input image's boundaries. >> >> HTH, >> Matt >> >> On Mon, May 29, 2017 at 12:54 PM, jay nanavati >> wrote: >> > Hi - Looking at >> > ITK\Modules\Filtering\BinaryMathematicalMorphology\include\i >> tkBinaryErodeImageFilter.hxx, >> > I am a bit confused with regards to the padding and cropping of the >> regions >> > for example, in the snippet below: >> > >> > ypename TInputImage::RegionType tmpRequestedRegion = outputRegion; >> > typename TInputImage::RegionType paddedInputRegion = >> > input->GetBufferedRegion(); >> > paddedInputRegion.PadByRadius(radius); // to support boundary >> values >> > InputSizeType padBy = radius; >> > for ( i = 0; i < KernelDimension; ++i ) >> > { >> > padBy[i] = ( padBy[i] > kernel.GetRadius(i) ? padBy[i] : >> > kernel.GetRadius(i) ); >> > } >> > tmpRequestedRegion.PadByRadius(padBy); >> > tmpRequestedRegion.Crop(paddedInputRegion); >> > >> > It appears that tmpRequestedRegion is padded but then immediately >> cropped, >> > which means it will always be padded by a radius of 1 in each dimension >> > anyways? Similar operations are performed when padding the >> > inputRegionForThread: >> > >> > // Pad the input region by the kernel >> > inputRegionForThread.PadByRadius( kernel.GetRadius() ); >> > inputRegionForThread.Crop( input->GetBufferedRegion() ); >> > >> > It would be great if someone could guide me on this. >> > >> > Thanks, >> > Jay >> > >> > >> > _______________________________________________ >> > Community mailing list >> > Community at itk.org >> > http://public.kitware.com/mailman/listinfo/community >> > >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sean at rogue-research.com Fri Jun 2 16:18:37 2017 From: sean at rogue-research.com (Sean McBride) Date: Fri, 2 Jun 2017 16:18:37 -0400 Subject: [ITK] [ITK-dev] [ANN] ITK 4.12 Release Candidate 3 is ready for testing! In-Reply-To: References: <20170530212001.1630717323@mail.rogue-research.com> Message-ID: <20170602201837.1588056977@mail.rogue-research.com> On Tue, 30 May 2017 17:43:29 -0400, Matt McCormick said: >Thanks for the report, Sean. > >Could you please test this topic: > > http://review.source.kitware.com/#/q/topic:minc-update Matt, That fixed it, thanks. Now I have things building, I ran my own unit tests, and have one failure, which I bisected to this change: 7501479a970694b0dd4a8c4bbf7cbcc033fe059c is the first bad commit commit 7501479a970694b0dd4a8c4bbf7cbcc033fe059c Author: Francois Budin Date: Mon Oct 31 17:04:05 2016 -0400 ENH: Image spacing must be positive Image spacing must have values greater than 0. Negative values could create issues with filters that assume that they are positive. When an image is loaded, if its spacing is negative, its absolute value is kept, and the image direction along each axis with a negative spacing is flipped. Change-Id: Id81d61b7fd3f60df2b38e30e540664dba6264996 Which is here: Looks like this shipped in 4.11 (we are using 4.10.1). Our test case is an Analyze 7.5 file with negative spacing. I'll dig into it next week... Cheers, -- ____________________________________________________________ Sean McBride, B. Eng sean at rogue-research.com Rogue Research www.rogue-research.com Mac Software Developer Montr?al, Qu?bec, Canada _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://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-developers From goretzki.imre at gmail.com Sat Jun 3 03:02:53 2017 From: goretzki.imre at gmail.com (Imre Goretzki) Date: Sat, 3 Jun 2017 09:02:53 +0200 Subject: [ITK] Deprecate Warning with VS2016 Message-ID: Hey guys, my VS2015 shows some warnings on using ItkImageFileReader (itkImageFileReader.hxx(441)). I currently use ITK 4.10. Exact warning: warning C4996: 'std::copy::_Unchecked_iterators::_Deprecate': Call to 'std::copy' with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators' compiling function template in [itk\src\modules\io\imagebase\include\itkImageFileReader.hxx(441)] [...] "_OutIt *std::copy(_InIt,_InIt,_OutIt)". 1> with 1> [ 1> _OutIt=unsigned int *, 1> _InIt=const unsigned int * 1> ] Greetings, Imre From jhlegarreta at vicomtech.org Sun Jun 4 15:38:05 2017 From: jhlegarreta at vicomtech.org (Jon Haitz Legarreta) Date: Sun, 4 Jun 2017 21:38:05 +0200 Subject: [ITK] [INSIGHT JOURNAL] "View Paper" link not working Message-ID: Folks, it's some time since no embedded PDF viewer or other appropriate application/content is displayed when you hit the "View Paper" link for a submission in the IJ website. Is this supposed to be working? Thanks, JON HAITZ -- -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Sun Jun 4 17:25:12 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Sun, 4 Jun 2017 17:25:12 -0400 Subject: [ITK] [INSIGHT JOURNAL] "View Paper" link not working In-Reply-To: References: Message-ID: Dear Jon, Yes, the View Paper link has not been working for a while. We need to invest effort into making the Insight Journal more sustainable as a functional archive. I plan on making additional efforts in the coming months. Thanks, Matt On Sun, Jun 4, 2017 at 3:38 PM, Jon Haitz Legarreta < jhlegarreta at vicomtech.org> wrote: > Folks, > it's some time since no embedded PDF viewer or other appropriate > application/content is displayed when you hit the "View Paper" link for a > submission in the IJ website. > > Is this supposed to be working? > > Thanks, > JON HAITZ > > -- > > > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dr.tim.allman at gmail.com Mon Jun 5 10:06:40 2017 From: dr.tim.allman at gmail.com (Tim Allman) Date: Mon, 5 Jun 2017 10:06:40 -0400 Subject: [ITK] [ITK-users] itkDICOMSeriesFileNames Message-ID: <644a5a5f-7d51-b9c5-0c06-3ef66c74ecca@gmail.com> I have been looking at reading and writing DICOM images and it didn't take long to stumble upon the class itkDICOMSeriesFileNames. It is however, almost undocumented in the Guide and is completely without Doxygen documentation (https://itk.org/Doxygen/html/itkDICOMSeriesFileNames_8h.html) but is used in the examples. I see as well that the file itkDICOMSeriesFileNames.h is located in /Modules/Compatibility/Deprecated// suggesting that I should be using something else. Is DCMTK the preferred package now? Thanks, Tim -- Tim Allman Ph.D., 35 Margaret St., Guelph, Ont., N1E 5R6 Canada 519-837-0276 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ 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 keepdash at hotmail.com Tue Jun 6 03:57:41 2017 From: keepdash at hotmail.com (keepdash) Date: Tue, 6 Jun 2017 00:57:41 -0700 (MST) Subject: [ITK] [ITK-users] ComputeMeanCurvature() in itkLevelSetFunction.hxx Message-ID: <1496735861540-7590001.post@n2.nabble.com> >From level set papers, we can find the curvature (2D) is: K = (fxx*fy*fy + fyy*fx*fx - 2*fx*fy*fxy) / (fx*fx+fy*fy)^(3/2) I compared the equation with the code in "itkLevelSetFunction.hxx", all same except the normalization, seems in ITK, the curvature (2D) is computed as: K = (fxx*fy*fy + fyy*fx*fx - 2*fx*fy*fxy) / (fx*fx+fy*fy) which can be found in function ComputeMeanCurvature(), line.179: return ( curvature_term / gd->m_GradMagSqr ); where the "m_GradMagSqr" is the fx*fx+fy*fy from line.332. Then, why ITK use this way, is it better? Thank you. -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/ITK-users-ComputeMeanCurvature-in-itkLevelSetFunction-hxx-tp7590001.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 gavinb+itk at antonym.org Tue Jun 6 04:00:16 2017 From: gavinb+itk at antonym.org (Gavin Baker) Date: Tue, 06 Jun 2017 18:00:16 +1000 Subject: [ITK] [ITK-users] Super-resolution resampling Message-ID: <1496736016.3944632.1000082120.177CCA64@webmail.messagingengine.com> Hello! I have a time series of 3D data (relatively low resolution), captured in sequence, with small positional changes (eg. translation). I would like to perform a super-resolution resampling by first co-registering each volumetric dataset (using rigid registration) in order to reduce noise and improve detail. Is there a registration process that is 1:N (fixed:moving)? Or is the recommended method to pick a fixed image (ie. #0) and register each 1..N individually to it? Given a set of transforms that map each of the 1..N moving images back to the fixed image for registration, is it possible to then resample the volume at a higher spatial resolution, combining all image data? IOW super-resolution resampling? I tried searching for the above and didn't have much luck finding relevant info. Thanks - :: Gavin _____________________________________ 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 dzenanz at gmail.com Tue Jun 6 09:16:27 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Tue, 6 Jun 2017 09:16:27 -0400 Subject: [ITK] [ITK-users] Super-resolution resampling In-Reply-To: <1496736016.3944632.1000082120.177CCA64@webmail.messagingengine.com> References: <1496736016.3944632.1000082120.177CCA64@webmail.messagingengine.com> Message-ID: Hi Gavin, your plan sounds good! There is no 1:N registration, so you should proceed with N 1:1 registrations. Pick one as a reference (#0 is good), register all the other time points to it. You can initialize the k+1-st iteration by the resulting transform of k-th registration to speed things up. And yes, you can do super-resolution by resampling all these images onto a higher resolution grid, e.g. same origin and direction, 2x higher size and 2x smaller spacing. ITK has all the required classes for this process. Will you let us know how satisfactory the result was? Ideally with some images :) Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Tue, Jun 6, 2017 at 4:00 AM, Gavin Baker wrote: > Hello! > > I have a time series of 3D data (relatively low resolution), captured in > sequence, with small positional changes (eg. translation). I would like > to perform a super-resolution resampling by first co-registering each > volumetric dataset (using rigid registration) in order to reduce noise > and improve detail. > > Is there a registration process that is 1:N (fixed:moving)? > > Or is the recommended method to pick a fixed image (ie. #0) and register > each 1..N individually to it? > > Given a set of transforms that map each of the 1..N moving images back > to the fixed image for registration, is it possible to then resample the > volume at a higher spatial resolution, combining all image data? IOW > super-resolution resampling? > > I tried searching for the above and didn't have much luck finding > relevant info. > > Thanks - > > :: Gavin > _____________________________________ > 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: -------------- next part -------------- _____________________________________ 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 francois.budin at kitware.com Tue Jun 6 13:03:23 2017 From: francois.budin at kitware.com (Francois Budin) Date: Tue, 6 Jun 2017 13:03:23 -0400 Subject: [ITK] [ITK-users] [ANN] ITK 4.12.0 has been released! Message-ID: The Insight Segmentation and Registration Toolkit (ITK), is an open-source, cross-platform library for multidimensional image analysis. On behalf of the Insight Toolkit community, we are proud to announce that ITK 4.12.0 has been released! Links to the Sourceforge.net tarballs can be found on the download page: http://www.itk.org/ITK/resources/software.html Outline ---------- 1. Introduction 2. New Features 3. ITK Changelog 4. ITK Sphinx Examples Changelog 5. ITK Software Guide Changelog Introduction --------------- Developed by an international community, ITK collects best-of-breed algorithms for registering, segmenting, analyzing, and quantifying n-dimensional imaging data. The high-quality library facilitates reproducible research, provides a software resource for teaching image analysis, and offers a platform for commercial product development. Here are a few selected highlights for this release: - Strain remote module added to ITK. Strain quantifies local deformation of a solid body. In medical imaging, it can be used to quantify growth or atrophy of tissue. - Better compilation support for Microsoft Visual Studio 2017, Clang 4, GCC7 - Filters moved out of Review: Morphological Watersheds, and Hessian-based objectness. - Performance improvements for some ITK filters: itkHistogram (increase speed), itkImagePCAShapeModelEstimator (decrease memory usage). The release also includes many improvements in ITK Python wrapping, such as convenience functions to read and write images, better integration in the Jupyter Notebook, new filters wrapped, and build support for the Microsoft Visual C++ Compiler for Python 2.7. Other nice features have been added such as improved palette true color support for PNG, TIFF, and BMP. Congratulations to the 26 contributors to this release. We would especially like to recognize the new contributors: Jared Vicory, Sam Horvath, Shusil Dangi, Ben Boeckel, Yann Le Poul, Jean-Baptiste Vimort, and Samuel Gerber. New Features ------------------ * Wrapping Improvements - Enable BridgeNumPy by default with Python wrapping - Build support for Microsoft Visual C++ Compiler for Python 2.7 - BridgeNumpy integrates new pairs of functions. GetArrayViewFromImage() and GetImageViewFromArray() return views on the source object given as a parameter to the function. Memory is shared among input and output objects and the source object still manages pixel buffer memory. The existing functions GetArrayFromImage() and GetImageFromArray() perform a deep copy of the source object. - Similar NumPy bridge functions have been created for VNL matrices and VNL vectors. - Convenience functions imread() and imwrite() have been added to the Python itk namespace. These functions facilitate respectively reading and writing images using ITK without having to specify the input or output image component type. The naming of these functions follows the convention used in several other Python project such as scikit-image and scipy. - Better integration in Jupyter Notebook: addressed tab completion bug for IPython >= 5.0.0, replaced underscore with ?x? to name attributes that start with a digit to show attributes when trying to autocomplete in IPython. - Wrap itkN4BiasFieldCorrectionImageFilter, NormalVariateGenerator, and PathToImageFilter. - Allow calls to ImageFileWriter in Python with an ITK filter as input image argument. - Build Python wrapping with hidden visibility * New Remote Modules - Strain - Filters to estimate a strain tensor field from a displacement field or a spatial transformation - http://hdl.handle.net/10380/3573 * Core Improvements - Enable hidden visibility property with NIFTI and GIFTI static libraries - Fix clearing build tree error - Add examples and doc build flag support for external modules - Support for recent Clang in FreeBSD - Improved support for Visual Studio 2017 - Prefer std::atomic over compiler specific implementation * Filtering Improvements - Add OrientedBoudingBox attributes to ShapeLabelMap - Skip generating export headers if module does not contain a target - Introduce ITK_WRAP_PYTHON_LEGACY to exclude older Python package layout - Move morphological watersheds out of ITKReview - Add SetReferenceImage to GenerateImageSource - Reduce memory usage of itkImagePCAShapeModelEstimator - Improvement of itkHistogram in order to make it faster - Better compatibility with OpenCVImageBridge * IO Improvements - Improvement of palette image support for PNG, TIFF and BMP * Documentation Improvements - Updates to the Software Guide, Doxygen, Wiki and Sphinx Examples * Remote Module Updates - BridgeNumPy updated to latest upstream (04.28.2017) * Third Party Library Updates - Update SWIG version to 3.0.12 - Update PCRE version to 8.40 - MetaIO updated to latest upstream (04.08.2017) - KWSys updated to latest upstream (04.20.2017) - KWIML updated to latest upstream (02.27.2017) - VNL updated to latest upstream (02.01.2017) * Improved Code Coverage -- we are at 85.7% - Jon Haitz-Legarreta's extensive code coverage improvements * *Lots* of important bug fixes * And much more! See details in the log below. Changes from v4.12rc03 to v4.12.0 --------------------------------- Bradley Lowekamp (1): COMP: Inform Doxygen of ITK_FORCE_EXPORT_MACRO Francois Budin (2): BUG: Remove weak symbol warnings on MacOS in VNL template classes BUG: Replace class forward declaration attributes with ITK_FORWARD_EXPORT Hans Johnson (2): COMP: Remove unused boiler plate constants COMP: Incorrect scope resolution for typename Jared Vicory (1): BUG: Fix LBFGS crash when minimum is starting point. Matthew McCormick (6): COMP: Use ITK_TEMPLATE_EXPORT in explicit export forward declarations COMP: Suppress global weak symbol warnings for std::vector COMP: Linux explicitly instantiated build errors BUG: ITKIONIFTI DEPENDS on ITKNIFTI BUG: Remove duplicate VectorContainer integer wrapping BUG: Remove duplicate ImageSource Covariant Vector wrapping Vladimir S. FONOV (1): MINC 2017-05-28 (002d510c) Changes from v4.12rc02 to v4.12rc03 ----------------------------------- Bradley Lowekamp (4): BUG: include HDF5 config in ITK config BUG: Add fixed seed to registration tests ENH: Use scikit-ci-addons for CiricleCI CMake installation and junit BUG: Initialized the sampling seed for v3 registration test Francois Budin (1): ENH: Remove 'weak symbol' warning on MacOS Matthew McCormick (5): BUG: itk.ctype does not understand ints without signed BUG: Rename WrapITKBuildOptionsPython.py to itkBuildOptions.py DOC: Remove Doxygen note about GDCM version BUG: Bump Bridge NumPy to address Windows long sizes COMP: Suppress macOS std::string linker visibility warnings Vladimir S. FONOV (1): MINC 2017-05-19 (f6853a70) Changes from v4.12rc01 to v4.12rc02 ----------------------------------- Christina Rossmanith (1): BUG: calculate levelSetValue for IsoContourFilter with float precision David T. Chen (1): DOC: Fix Pysical Typo Francois Budin (3): BUG: Remove doxygen warnings 'Found unknown command \epsilon' ENH: Remove warning messages in GCC 5.1 due to ITK_TEMPLATE_EXPORT BUG: GCC 5.1 warnings 'type attributes ignored after type is already defined' Jon Haitz Legarreta Gorro?o (1): DOC: Add use note to itkGridForwardWarpImageFilter. Matthew McCormick (1): BUG: Update the Strain remote module to 2017-05-05 Vladimir S. FONOV (3): MINC 2017-04-28 (3d79acf3) MINC 2017-05-01 (4caf8f4c) MINC 2017-05-05 (cc682b52) Changes from v4.11.0 to v4.12rc01 --------------------------------- Ben Boeckel (1): ENH: Add a script to help update third-party sources Brad King (5): ENH: Update KWIML import script for new upstream URL ENH: Teach update-third-party.bash to add a Change-Id ENH: Port KWSys update script to update-third-party.bash ENH: KWSys: Filter out unused attributes during import ENH: KWSys: Apply attribute changes made upstream Bradley Lowekamp (19): COMP: Enable hidden visibility property with NIFTI static libraries COMP: Enable hidden visibility property with GIFTI static libraries BUG: Correct variable name used to check CXX version BUG: Correct variable name used to check CXX version COMP: Enable hidden visibility property with NIFTI static libraries COMP: Enable hidden visibility property with GIFTI static libraries BUG: Initialize ConvergenceValue in constructor BUG: Initialize ConvergenceValue in constructor ENH: Update CircleCi script to download latest binary tar-ball BUG: Use CMAKE_DL_LIBS instead of explict "dl" library COMP: Fix CircleCI ITK data download file name ENH: Update CircleCI yaml file BUG: Apply changes from MetaIO upstream to remove static variables ENH: Update SWIG version to 3.0.12 ENH: Update PCRE version to 8.40 ENH: Add OrientedBoudingBox attributes to ShapeLabelMap COMP: Use std::abs over vnl_math_abs BUG: Initialize image data to 0 ENH: Fix clearing build tree error David T. Chen (1): BUG: Fixed quote style D?enan Zuki? (3): STYLE: Simplify code by using TestingMacros BUG: fixing wrong check for argument count ENH: Add Strain as a remote module Floris Berendsen (2): COMP: Added missing png_get_uint_31 name mangling COMP: Added missing png_get_uint_31 name mangling Francois Budin (58): STYLE: Typo corrections in itk*TopHatImageFilter.h ENH: Prefer std::atomic over compiler specific implementation BUG: Addresses 'ordered comparison between pointer and zero' error (clang-4) BUG: Addresses InDoxygenGroup Test with Python 3.6 failures BUG: BSplineScatteredDataPointSetToImageFilter output image is not generated BUG: itk::RGBPixel needs to be wrapped for itkTIFFImageIO BUG: Usage of std::atomic was incorrectly used in itk::Detail::AtomicOps ENH: Exposing functions to set real and imaginary part of complex numbers BUG: ITK_OVERRIDE keyword for non-overriden funtion BUG: 'typename' cannot be used outside of template declaration BUG: Missing ITK_OVERRIDE BUG: ITK_OVERRIDE keyword for non-overriden funtion BUG: ITK_OVERRIDE keyword for non-overriden funtion BUG: ITK_OVERRIDE keyword for non-overriden funtion BUG: Missing ITK_OVERRIDE ENH: Improving usability in IPython ENH: Update BridgeNumPy to most recent version (2017.02.24) BUG: 3523 Even padding most value representations with space instead of '\0' BUG: Remove extra space in chronometer command DOC: Make it more explicit that 'push' authorization is not for everybody BUG: 3523 Even padding most value representations with space instead of '\0' BUG: 3519 KernelTransform WMatrix initialization BUG: KWSys symbols should not be exported with WINDOWS_EXPORT_ALL_SYMBOLS COMP: Do not expose functions to set real and img part of complex numbers BUG: KWSys symbols should not be exported with WINDOWS_EXPORT_ALL_SYMBOLS BUG: 3519 KernelTransform WMatrix initialization DOC: Typo in itkNumberToString.h BUG: Attribute names cannot start with a digit BUG: Do not define deprecated function if ITK_LEGACY_REMOVE is selected BUG: Wrap EllipseSpatialObject std::list in Python ENH: Wrap itkN4BiasFieldCorrectionImageFilter in Python BUG: itkStatisticsAlgorithmTest throwing exception on VS2015Update3 and VS2017 ENH: Skip generating export headers if module does not contain a target BUG: Wrapping of itkHessianToObjectnessMeasureImageFilter moved out of Review ENH: Update BridgeNumPy to most recent version (2017.03.27) BUG: Wrapping of itkHessianToObjectnessMeasureImageFilter moved out of Review BUG: Wrap EllipseSpatialObject std::list in Python ENH: Improving usability in IPython BUG: Attribute names cannot start with a digit BUG: Do not export GDCM and Expat symbols with WINDOWS_EXPORT_ALL_SYMBOLS BUG: Do not export all symbols from third party libraries on Windows ENH: Allows to call ImageFileWriter in Python with Input=Filter BUG: Certain third party libraries need to export their symbols on Windows BUG: Test if 'issubclass' only if 'isclass' is True ENH: Add Python convenience function to read images BUG: 3475 AccumulateImageFilter not setting direction cosines of output image DOC: Removing typos in itkExtractImageFilter comments BUG: ProjectionImageFilter did not copy direction cosine information to output BUG: Test if 'issubclass' only if 'isclass' is True BUG: 3475 AccumulateImageFilter not setting direction cosines of output image BUG: Do not export GDCM and Expat symbols with WINDOWS_EXPORT_ALL_SYMBOLS BUG: Do not export all symbols from third party libraries on Windows BUG: Certain third party libraries need to export their symbols on Windows BUG: ProjectionImageFilter did not copy direction cosine information to output ENH: Update BridgeNumPy (2016.04.28) and update itkExtras.py accordingly BUG: Template type based input function parameter needs to be deterministic ENH: Bump CMakeLists.txt version to 4.11.1 BUG: Problems due to ComputeOrientedBoundingBox in itkShapeLabelMapFilter Jean-Baptiste VIMORT (1): PERF: Improvement of the itkHistogram class in order to make it faster Jean-Christophe Fillion-Robin (2): ENH: Introduce ITK_WRAP_PYTHON_LEGACY to exclude older Python package layout BUG: ITKPython: Do not install *.mdx files required only at generation time Johan Andruejol (1): ENH: Add wrapping for PathToImageFilter Jon Haitz Legarreta (131): ENH: Improve the itkFileListVideoIO coverage. STYLE: Improve the BSplineScatteredDataPointSetToImageFilter style, ENH: Improve the itkBSplineScatteredDataPointSetToImageFilter coverage. ENH: Add missing ivars in function PrintSelf. STYLE: Improve ImageNoise filters' style. STYLE: Improve the ImageNoise filters tests' style. STYLE: Improve ITKImageSources module filters' style. STYLE: Improve the itkLinearInterpolateImageFunction style. ENH: Improve the itkLabelOverlapMeasuresImageFilter coverage. STYLE: Improve itkAdaptiveHistogramEqualizationImageFilter style. ENH: Improve itkAdaptiveHistogramEqualizationImageFilter coverage. STYLE: Improve itkKappaStatisticImageToImageMetric style. ENH: Improve the itkKappaStatisticImageToImageMetric coverage. STYLE: Improve itkBinaryGrindPeakImageFilter style. STYLE: Improve the itkCannyEdgeDetectionImageFilter style. ENH: Improve itkCannyEdgeDetectionImageFilter coverage. ENH: Improve itkBarrier class coverage. STYLE: Improve itkFlipImageFilterStyle. STYLE: Improve itkSpatialObjectToPointSetFilter style. STYLE: Improve itkStretchIntensityImageFilter style. ENH: Print all ivars for itkStretchIntensityImageFilter. ENH: Improve itkPhysicalPointImageSource class coverage. ENH: Add missing ivars to LabelMapMaskImageFilter PrintSelf. ENH: Improve itkRealTimeClock coverage. STYLE: Improve the itkRealTimeClock style. ENH: Improve itkBsplineDecompositionImageFilter coverage. ENH: Improve itkTestingStretchIntensityImageFilter coverage. STYLE: Improve itkPathToChainCodePathFilter style. ENH: Add a Get method for itkPathToChainCodePathFilter ivar. ENH: Add specific testing macro for boolean members. STYLE: Improve itkLabelMapMaskImageFilter style. STYLE: Improve BSplineDecompositionImageFilter style. ENH: Finish itkAdaptiveHistogramEqualizationImageFilter PrintSelf. COMP: Fix ImageGrid tests compiler warnings. ENH: Finish BSplineDecompositionImageFilter PrintSelf. BUG: Fix Uninitialized Memory errors reported by Valgrind. ENH: Improve itkLabelMapMaskImageFilter coverage. ENH: Improve itkBinaryGrindPeakImageFilter coverage. ENH: Improve itkPathToChainCodePathFilter coverage. ENH: Move LabelMap module test baselines. ENH: Move BinaryMathMorphology test baselines out of review. ENH: Move ImageFusion test baselines out of review. ENH: Improve itkAutoCropLabelMapFilter tests. ENH: Improve itkSpatialObjectToPointSetFilter coverage. ENH: Move ImageLabel test baselines out of Review. ENH: Move ImageGrid test baselines out of review. STYLE: Improve itkGaussianSpatialFunction class' style. ENH: Improve the ITKPath module classes coverage. BUG: Fix BSplineDecompositionImageFilter Valgrind defects. STYLE: Improve itkColorTable style. ENH: Improve itkHoughTransform2DLinesImageFilter coverage. ENH: Improve itkHoughTransform2DCirclesImageFilter coverage. BUG: Address uninitialized variable defects. STYLE: Improve itk::HistogramThresholdImageFilter style. DOC: Fix a typo in the term "threshold". STYLE: Imporve itkContourSpatialObjectPoint style. ENH: Print all HoughTransform2DLinesImageFilter ivars. STYLE: Fix type in Optimizersv4 and Metricsv4 modules. ENH: Add PhiLattice regression baseline. ENH: Print all itkVoronoiDiagram2DGenerator ivars. ENH: Improve itkColorTable coverage. ENH: Improve the itk::GradientDescentOptimizerv4 style. ENH: Improve the itkImageSources module's filters' coverage. ENH: Add PhiLattice regression baseline. ENH: Add a new test for itk::ContourSpatialObjectPoint. BUG: Fix bug in itkContourSpatialObjectPointTest test. STYLE: Improve the itkGaussianSpatialFunctionTest style. ENH: Improve itkVotingBinaryHoleFillingImageFilter coverage. BUG: Fix precision issues in itkGaborKernelFunctionTest. BUG: Relax tolerance in itkGaborKernelFunctionTest. DOC: Fix minor typo in itkHistogramThresholdImageFilter doc. ENH: Print all ivars in GradientDescentOptimizer base classes. STYLE: Improve TIFFImageIO tests. ENH: Add Get methods for itk::BSplineDecompositionImageFilter ivars. BUG: Fix TimeProbes name in itkLargeTIFFImageWriteReadTest. BUG: Fix memory leaks in BMP and PNG tests. COMP: Fix signed/unsigned mismatch warning. COMP: Fix signed/unsigned mismatch warning. BUG: Fix Superclass for ITKThresholding calculators. BUG: Make the number of filters be an integer. ENH: Honor the itkBooleanMacro for boolean class members. ENH: Improve the Watershed module code coverage. COMP: Fix double to unsigned int cast warning. ENH: Improve coverage for MorphologicalWatersheds filters. STYLE: Improve the Denoising module style. BUG: Fix the itkPatchBasedDenoisingImageFilter RTTI Superclass name. COMP: Fix unsigned char from double conversion warning. ENH: Improve itkWatershedMiniPipelineProgressCommand coverage. ENH: Improve the itkRegionalMin/Max filters member print types. ENH: Improve the itkMorphologicalWatershedFromMarkers coverage. ENH: Improve the itkIsolatedWatershedImageFilter coverage. STYLE: Improve the Denoisinig module style. STYLE: Improve the FEMRegistration module files style. DOC: Fix itkOrientImageFilter UseImageDirection method doc typo. STYLE: Improve the ITKThresholding module classes style. BUG: Fix itkIsolatedWatershedImageFilterTest valgrind errors. STYLE: Improve the itkApproximateSignedDistanceMapImageFilter style. ENH: Improve Denoising module filters' coverage. ENH: Improve the FEMRegistration module coverage. STYLE: Improve the itkDisplacementFieldTransform class style. STYLE: Limit itkFlipImageFilter methods' loops variables' scope. ENH: Improve itkFlipImageFilter coverage. COMP: Fix itkPhysicsBasedNonRigidRegistrationMethodTest cast warning. STYLE: Improve the HessianToObjectnessMeasureImageFilter style. ENH: Improve coverage for HessianToObjectnessMeasureImageFilter. ENH: Improve DiscreteGaussianImage operators review classes' coverage. ENH: Add test for itk::ConicShellInteriorExteriorSpatialFunction. ENH: Print all itkHoughTransform2DCirclesImageFilter ivars. ENH: Improve coverage for itk::DisplacementFieldTransform. STYLE: Make itkPatchBasedDenoisingBaseImageFilter ivars private. STYLE: Improve the itkRobustAutomaticThreshold classes style. COMP: Fix itkDisplacementFieldTransformTest compiler warning. STYLE: Improve the itkGridForwardWarpImageFilter style. ENH: Improve coverage for itkGridForwardWarpImageFilter. ENH: Improve coverage for itkRobustAutomaticThreshold classes. ENH: Remove duplicate test files in Review. DOC: Fix itkDivideByConstantImageFilter doc error. STYLE: Improve exception message. STYLE: Improve ImageIntensity module image arithm op tests' style. STYLE: Improve HConc/Conv HMaxima/HMinima image filters' style. ENH: Improve the HConc/HConv HMaxima/HMinima filters' coverage. ENH: Improve DiscreteGaussianImage operators review classes' coverage. ENH: Change the URL for the PCA remote module repo. STYLE: Make flow control variables have a local scope. ENH: Add examples and doc build flag support for external modules. DOC: Remove wrong group tag for itk::QuadEdgeMeshExtendedTraits. BUG: Fix itk::FastMarchingImageFilter RTTI superclass name. STYLE: Improve the itk::NodePair class style. STYLE: Use the ITK_MANUAL_INSTANTIATION macro consistently. STYLE: Delete FastMarching module classes methods consistently. DOC: Fix typo in the "implementation" word across the code. Jon Haitz Legarreta Gorro?o (2): STYLE: Improve itkWarpHarmonicEnergyCalculator style. DOC: Add a notice to let users know about related implementations. KWIML Upstream (1): KWIML 2017-02-27 (aa3a7733) KWSys Upstream (3): KWSys 2016-11-21 (cb55cf5a) KWSys 2017-03-28 (34999b6a) KWSys 2017-04-20 (8785f84f) Matthew McCormick (40): COMP: Add missing headers in OpenCVImageBridge COMP: Use double for gradient calculations in MinMaxCurvatureFlow ENH: Bump ITK version to 4.12.0. COMP: Add VCL support for GCC 7 COMP: Define ITK_FALLTHROUGH for GCC 7 COMP: Add missing ITK_FALLTHROUGH in TiffImageIO COMP: Avoid -Warray-bounds in FixedArray with GCC 7 COMP: Add ProcessObject include in itkLevelSetBase.hxx ENH: Exclude Kitware Robot from third party update commit messages BUG: Address tab completion with IPython >= 5.0.0 BUG: Do not use terminal_progress with the Jupyter Notebook ENH: Enable BridgeNumPy with Python wrapping COMP: Do not require numeric_traits::has_infinity BUG: Fix passing _NO_TR1 definition with VS9 and Python BUG: Do not tests that require NumPy when it is not available ENH: Build Python wrapping with hidden visibility ENH: Move morphological watersheds out of ITKReview BUG: Do not upload top level folder in ArchiveTestingDataOnGirder.py BUG: Remove unused content links from PNG test additions ENH: Add .sha512 content links for IO pallette test data BUG: Add missing export macros for SpatialObject forward declarations BUG: Always wrap basic type RGBUC COMP: Do not add Visual Studio numeric_traits workarounds with MinGWPy COMP: Increase gold linker requirement to GCC 4.9.0 COMP: Detect Windows with _WIN32 in socket++/fork.cpp BUG: Revert "BUG: Include installed modules in ITK_MODULES_ENABLED" BUG: Set ${itk-module}_ENABLE_SHARED in ITKModuleExternal BUG: PolyLineParametricPath must be loaded before PathToImageFilter COMP: Address Python 2.7 Windows _hypot build errors COMP: Undefine Py_hash_t when wrapping VtkGlue ENH: Update BridgeNumPy to most recent version (2017.03.05) BUG: Improve itkTemplate New compatibility with Python 3 ENH: Bump CastXML to 2017-04-18 STYLE: Remove empty or erroreous comments in ImageToImageFilter ENH: Use itk.imread and itk.imwrite as standard function names BUG: Correct size specification in ImportImageFilter::SetImportPointer BUG: Improve large file support in MetaIO ENH: Wrap itk::IdentifierType for ScalarToRGBColormapImageFilter BUG: LevelSetNeighborhoodExtractor uses spacing BUG: Fix PCRE 8.40 download URL MetaIO Maintainers (1): MetaIO 2017-04-08 (dead6687) Olivier Commowick (1): BUG: Correct ITK eigen system (was producing NaN or different values than VNL) Pablo Hernandez-Cerdan (4): ENH: Add SetReferenceImage to GenerateImageSource. ENH: Change the metadata of all outputs in GenerateImageSource. BUG: Fix Normalization kernel step of ConvolutionImageFilter. BUG: Remove call to Superclass::GenerateOutputInformation. Richard Beare (1): DOC: PrincipleComponent flag incorrectly reported by PrintSelf Sam Horvath (1): PERF: reduce memory usage of itkImagePCAShapeModelEstimator Samuel Gerber (2): DOC: Added description to itkLBFGSOptimizerv4.h DOC: LBFGSOptimizer doc update Shusil Dangi (2): ENH: Ignores MacOS .DS_Store file ENH: Wrap NormalVariateGenerator in the Statistics Module Simon Rit (2): BUG: memory leak in ITK_USE_THREADPOOL BUG: Join threads when using thread pool (ITK_USE_THREADPOOL) Taylor Braun-Jones (1): COMP: Only include the headers for required OpenCV modules (fixup) VXL Maintainers (2): VNL 2017-02-01 (ae6eff5e) VNL 2017-02-08 (ae8eef13) Yann Le Poul (4): ENH: improvement of palette image support for PNG TIFF and BMP. STYLE: Misleading IsReadAsScalarPlusPalette Printing string STYLE: ReadAsScalarPlusPalette info already printed in itkImageIOBase BUG: ExpandRGBPalette used instead of IsReadAsScalarPlusPalette ITK Sphinx Examples Changes ------------------------------------------- Beatriz Paniagua (1): ENH: Add FlipImageFilter D?enan Zuki? (3): BUG: fixing misspelled directory name ENH: translating ImageReadExtractFilterInsertWrite into Python ENH: updating TODO list with recent patches Francois Budin (4): BUG: Reducing Windows path length was not consistent ENH: Import data into an ITK Image BUG: Move FlipImageFilter from src/Core/Common to src/Filtering/ImageGrid Maeliss Jallais (1): ENH: Add ReadWriteVectorImage Matt McCormick (32): BUG: Clean up ObserveAnEvent ENH: Add .sha512 content links ENH: Remove .md5 content links ENH: Update ExternalData_URL_TEMPLATES for sha512 resources ENH: Update the ITKExamples scripts to use the .sha512 content links ENH: Update CMake/ExternalData.cmake ENH: Remove Utilities/UploadBinaryData.py.in ENH: Remove Utilities/ArchiveBinaryData.py.in ENH: Remove pydas and related submodules ENH: Bump ITK to 2017-03-06 master ENH: Use GitHub for faster ITK repository downloads DOC: Update UploadBinaryData.rst DOC: Tweak content link usage with girder-cli DOC: Remove ContributeWithWebInterface.rst DOC: Swap WriteANewExample / ContributeWithGit order ENH: Do not build the Python wrapping in the Superbuild ENH: Enable ITKExamples_USE_WRAP_PYTHON by default ENH: Create itkpython virtualenv on Mac and Linux STYLE: Do not uses spaces after/before brackets in CMakeLists.txt ENH: Add the superbuild itkpython binary folder to FindSphinx BUG: CreateNewExample.py outputs template Code.py ENH: Download itkpython in the Windows superbuild DOC: Recommend cloning into a short directory on Windows ENH: Reduce Windows superbuild path length requirements BUG: Fix BoundingBoxOfAPointSetTestPython on Windows ENH: Add example image filenames in template figure directive ENH: Add Create An Image example BUG: CreateAImageRegion -> CreateAnImageRegion BUG: Fix CreateAnImageRegion output regex matching STYLE: Address spacing in CreateAnImage BUG: Update the Python package URL, nightly to latest DOC: How to run a Python example Max Smolens (5): BUG: Fix errors in generated Code.py ENH: Remove CannyEdgeDetectionImageFilter TODO items ENH: Add itk.RGBToLuminanceImageFilter Python example DOC: Fix typo in contribution documentation ENH: Add WarpImageFilter example Neal Siekierski (1): ENH: Add example of itk::Statistics::Histogram creation and access Sam Horvath (2): ENH: Add CreateAnImageOfVectors ENH: Add BlurringAnImageUsingABinomialKernel ITK Software Guide Changes ---------------------------------------- Jon Haitz Legarreta (1): DOC: Add testing section to SW guide. Matt McCormick (6): DOC: Document itk_module_add_library DOC: Modules without a src/ directory should not set ENABLE_SHARED Merge "DOC: Add testing section to SW guide." DOC: Update the Kitware BrainWeb data link BUG: Escape hash in Girder URL DOC: Add Python package installation instructions -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Tue Jun 6 20:06:42 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Tue, 6 Jun 2017 20:06:42 -0400 Subject: [ITK] Deprecate Warning with VS2016 In-Reply-To: References: Message-ID: Hi Imre, Please try the recently released ITK 4.12.0. Cheers, Matt On Sat, Jun 3, 2017 at 3:02 AM, Imre Goretzki wrote: > Hey guys, > > my VS2015 shows some warnings on using ItkImageFileReader > (itkImageFileReader.hxx(441)). I currently use ITK 4.10. > > Exact warning: > warning C4996: 'std::copy::_Unchecked_iterators::_Deprecate': Call to > 'std::copy' with parameters that may be unsafe - this call relies on the > caller to check that the passed values are correct. To disable this > warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use > Visual C++ 'Checked Iterators' > > compiling function template in [itk\src\modules\io\imagebase\ > include\itkImageFileReader.hxx(441)] > [...] "_OutIt *std::copy int*>(_InIt,_InIt,_OutIt)". > 1> with > 1> [ > 1> _OutIt=unsigned int *, > 1> _InIt=const unsigned int * > 1> ] > > Greetings, > Imre > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > -------------- next part -------------- An HTML attachment was scrubbed... URL: From gavinb+itk at antonym.org Tue Jun 6 20:39:49 2017 From: gavinb+itk at antonym.org (Gavin Baker) Date: Wed, 07 Jun 2017 10:39:49 +1000 Subject: [ITK] [ITK-users] Super-resolution resampling In-Reply-To: References: <1496736016.3944632.1000082120.177CCA64@webmail.messagingengine.com> Message-ID: <1496795989.695579.1001111152.7610AC76@webmail.messagingengine.com> Thanks, D?enan - I'll start with the N x 1:1 registration then. I can see how to resample the moving image, with the transform applied, as per the examples. However it is not clear how to _combine_ the N images together for the super-resolution resampling. Or would it be a two-step process, where each moving image is first resampled, and after that they are averaged together? Thanks - :: Gavin On Tue, 6 Jun 2017, at 11:16 PM, D?enan Zuki? wrote: > Hi Gavin, > > your plan sounds good! There is no 1:N registration, so you should > proceed with N 1:1 registrations. Pick one as a reference (#0 is > good), register all the other time points to it. You can initialize > the k+1-st iteration by the resulting transform of k-th registration > to speed things up.> > And yes, you can do super-resolution by resampling all these images > onto a higher resolution grid, e.g. same origin and direction, 2x > higher size and 2x smaller spacing.> > ITK has all the required classes for this process. Will you let us > know how satisfactory the result was? Ideally with some images :)> > Regards, > D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) > > On Tue, Jun 6, 2017 at 4:00 AM, Gavin Baker > wrote:>> Hello! >> >> I have a time series of 3D data (relatively low resolution), >> captured in>> sequence, with small positional changes (eg. translation). I >> would like>> to perform a super-resolution resampling by first co- >> registering each>> volumetric dataset (using rigid registration) in order to >> reduce noise>> and improve detail. >> >> Is there a registration process that is 1:N (fixed:moving)? >> >> Or is the recommended method to pick a fixed image (ie. #0) and >> register>> each 1..N individually to it? >> >> Given a set of transforms that map each of the 1..N moving >> images back>> to the fixed image for registration, is it possible to then >> resample the>> volume at a higher spatial resolution, combining all image data? IOW>> super-resolution resampling? >> >> I tried searching for the above and didn't have much luck finding >> relevant info. >> >> Thanks - >> >> :: Gavin >> _____________________________________ >> 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: -------------- next part -------------- _____________________________________ 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 gavinb+itk at antonym.org Tue Jun 6 20:41:35 2017 From: gavinb+itk at antonym.org (Gavin Baker) Date: Wed, 07 Jun 2017 10:41:35 +1000 Subject: [ITK] [ITK-users] Super-resolution resampling In-Reply-To: References: <1496736016.3944632.1000082120.177CCA64@webmail.messagingengine.com> Message-ID: <1496796095.695716.1001112368.68B6224E@webmail.messagingengine.com> Thanks, Samuel, Great point - using the N/2 sample makes a lot of sense. I'll start with that example and see how I go. Any thoughts on my followup question about the super-resolution resampling the N images together would be most appreciated. Regards - :: Gavin On Tue, 6 Jun 2017, at 11:33 PM, Samuel Gerber wrote: > Hi Gavin, > > One small addition, I would probably take the N/2 image to register > everybody else to, in order to minimize the maximal transformation > (might not matter in your case since it is only small transformations > but it could minimize errors due to resampling).> > This example has all the required classes you should need: > https://itk.org/Wiki/ITK/Examples/Registration/ImageRegistrationMethod> > You will most likely want to use a different optimizer and you can see > in the code how to set the size etc of the output image in the > resampler.> > > On Tue, Jun 6, 2017 at 9:16 AM, D?enan Zuki? > wrote:>> Hi Gavin, >> >> your plan sounds good! There is no 1:N registration, so you should >> proceed with N 1:1 registrations. Pick one as a reference (#0 is >> good), register all the other time points to it. You can initialize >> the k+1-st iteration by the resulting transform of k-th registration >> to speed things up.>> >> And yes, you can do super-resolution by resampling all these images >> onto a higher resolution grid, e.g. same origin and direction, 2x >> higher size and 2x smaller spacing.>> >> ITK has all the required classes for this process. Will you let us >> know how satisfactory the result was? Ideally with some images :)>> >> Regards, >> D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) >> >> On Tue, Jun 6, 2017 at 4:00 AM, Gavin Baker >> wrote:>>> Hello! >>> >>> I have a time series of 3D data (relatively low resolution), >>> captured in>>> sequence, with small positional changes (eg. translation). I >>> would like>>> to perform a super-resolution resampling by first co- >>> registering each>>> volumetric dataset (using rigid registration) in order to reduce >>> noise>>> and improve detail. >>> >>> Is there a registration process that is 1:N (fixed:moving)? >>> >>> Or is the recommended method to pick a fixed image (ie. #0) and >>> register>>> each 1..N individually to it? >>> >>> Given a set of transforms that map each of the 1..N moving >>> images back>>> to the fixed image for registration, is it possible to then >>> resample the>>> volume at a higher spatial resolution, combining all image >>> data? IOW>>> super-resolution resampling? >>> >>> I tried searching for the above and didn't have much luck finding >>> relevant info. >>> >>> Thanks - >>> >>> :: Gavin >>> _____________________________________ >>> 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 >> >> _______________________________________________ >> Community mailing list >> Community at itk.org >> http://public.kitware.com/mailman/listinfo/community >> > > > > -- > Samuel Gerber > R&D Engineer > Kitware, Inc. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ 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 dzenanz at gmail.com Tue Jun 6 21:32:12 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Tue, 6 Jun 2017 21:32:12 -0400 Subject: [ITK] [ITK-users] Super-resolution resampling In-Reply-To: <1496795989.695579.1001111152.7610AC76@webmail.messagingengine.com> References: <1496736016.3944632.1000082120.177CCA64@webmail.messagingengine.com> <1496795989.695579.1001111152.7610AC76@webmail.messagingengine.com> Message-ID: Hi Gavin, if you want to avoid keeping N resampled images, you could have a sum of resampled images which you divide by N at the end to get the average. Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Tue, Jun 6, 2017 at 8:39 PM, Gavin Baker wrote: > > Thanks, D?enan - > > I'll start with the N x 1:1 registration then. > > I can see how to resample the moving image, with the transform applied, as > per the examples. However it is not clear how to _combine_ the N images > together for the super-resolution resampling. Or would it be a two-step > process, where each moving image is first resampled, and after that they > are averaged together? > > Thanks - > > :: Gavin > > > On Tue, 6 Jun 2017, at 11:16 PM, D?enan Zuki? wrote: > > Hi Gavin, > > your plan sounds good! There is no 1:N registration, so you should proceed > with N 1:1 registrations. Pick one as a reference (#0 is good), register > all the other time points to it. You can initialize the k+1-st iteration by > the resulting transform of k-th registration to speed things up. > > And yes, you can do super-resolution by resampling all these images onto a > higher resolution grid, e.g. same origin and direction, 2x higher size and > 2x smaller spacing. > > ITK has all the required classes for this process. Will you let us know > how satisfactory the result was? Ideally with some images :) > > Regards, > D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) > > On Tue, Jun 6, 2017 at 4:00 AM, Gavin Baker > wrote: > > Hello! > > I have a time series of 3D data (relatively low resolution), captured in > sequence, with small positional changes (eg. translation). I would like > to perform a super-resolution resampling by first co-registering each > volumetric dataset (using rigid registration) in order to reduce noise > and improve detail. > > Is there a registration process that is 1:N (fixed:moving)? > > Or is the recommended method to pick a fixed image (ie. #0) and register > each 1..N individually to it? > > Given a set of transforms that map each of the 1..N moving images back > to the fixed image for registration, is it possible to then resample the > volume at a higher spatial resolution, combining all image data? IOW > super-resolution resampling? > > I tried searching for the above and didn't have much luck finding > relevant info. > > Thanks - > > :: Gavin > _____________________________________ > 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: -------------- next part -------------- _____________________________________ 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 nicolas.courtial at univ-rennes1.fr Wed Jun 7 05:46:17 2017 From: nicolas.courtial at univ-rennes1.fr (Nicolas Courtial) Date: Wed, 7 Jun 2017 11:46:17 +0200 Subject: [ITK] [ITK-users] MultiThreading, ImageRegionIterator crash Message-ID: <13d4dc31-8fb8-40c1-ccd8-abe4e45555ef@univ-rennes1.fr> Hello everyone, I'm quite new in ITK world, and I'm currently doing few experiences in order to learn its logic. After few easy exercices, I'm now at a step I want to multithread a method. As I did in the past, I've been reading the ITK classes to get "inspiration", and e- mails from here in case of troubles. I'm facing an issue at the moment, and I can't figure why, and how to solve it. My filter works with * One 3D InputImage (of any pixel type) * Two "tool" 3D images, respectively of float and unsigned char pixel types From what I read, I've understood there are two main ways of multithreading: * The old fashioned one using BeforeThreadedGenerateData/ThreadedGenerateData/AfterThreadedGenerateData * the one using itk::DomainThreader member. As I'm a bit old school, I used the first option. My problem remains here: (I changed my variables' name to make it clearer) ThreadedComputation(const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId) { itk::ProgressReporter progress(this, threadId, outputRegionForThread.GetNumberOfPixels()); typename TOutputImage::Pointer image = this->GetOutput(0); itk::ImageRegionIterator< TOutputImage > imgIt(image, outputRegionForThread); itk::ImageRegionIterator< FloatImageType> floatIt (m_MyFloatImage, outputRegionForThread); .... When creating the floatIt iterator, I have a crash. Using a try catch block, the issue is due to out of bound region. Everything is correct, but the index, for which it's completly crazy ([156245468,0,156245468] or something approching). I've tried different options to solve this, but rather than doing witchcraft and at some point getting something working, I'd prefer to improve my understanding thanks to your expertise. Thanks all, Nicolas Courtial -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ 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 xieyi4650 at 126.com Wed Jun 7 07:45:00 2017 From: xieyi4650 at 126.com (XieYi) Date: Wed, 7 Jun 2017 04:45:00 -0700 (MST) Subject: [ITK] [ITK-users] why jpg image that is converted from a mhd image is so weird ? Message-ID: <1496835900201-38307.post@n7.nabble.com> the mhd image in ParaView software is like this: after being converted to jpg image, it is like this here is my converting code: typedef float PixelType; const unsigned int Dimension = 3; typedef itk::Matrix MatrixType; #ifdef RTK_USE_CUDA typedef itk::CudaImage< PixelType, Dimension > ImageType; #else typedef itk::Image< PixelType, Dimension > ImageType; #endif typedef itk::RGBPixel PixelType_2D; #ifdef RTK_USE_CUDA typedef itk::CudaImage< PixelType_2D, 2 > ImageType; #else typedef itk::Image ImageType2; #endif typedef itk::JPEGImageIO ImageIOType; ImageIOType::Pointer jpegIO = ImageIOType::New(); ImageType::Pointer drr1 = [a function get a image] typedef itk::CastImageFilter ImageCastType; ImageCastType::Pointer Imagecast = ImageCastType::New(); Imagecast->SetInput(drr1); Imagecast->Update(); jpegIO->SetFileTypeToASCII(); typedef itk::ImageFileWriter WriterType2; WriterType2::Pointer writer_jpg = WriterType2::New(); writer_jpg->SetImageIO(jpegIO); writer_jpg->SetFileName("drr.jpg"); writer_jpg->SetInput(Imagecast->GetOutput()); writer_jpg->Update(); -- View this message in context: http://itk-users.7.n7.nabble.com/why-jpg-image-that-is-converted-from-a-mhd-image-is-so-weird-tp38307.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 tevain at telecom-paristech.fr Wed Jun 7 08:01:38 2017 From: tevain at telecom-paristech.fr (Timothee Evain) Date: Wed, 7 Jun 2017 14:01:38 +0200 (CEST) Subject: [ITK] [ITK-users] why jpg image that is converted from a mhd image is so weird ? In-Reply-To: <1496835900201-38307.post@n7.nabble.com> References: <1496835900201-38307.post@n7.nabble.com> Message-ID: <1953946665.3804674.1496836898409.JavaMail.zimbra@enst.fr> Hello, You can't just "cast" a 3D image into a RGB 2D one. Casting is for type only and cannot be used for dimension, see https://itk.org/Doxygen/html/classitk_1_1CastImageFilter.html One basic solution would be to initialize an ImageType2D image, then parse the "3D" image along spatial dimensions, filling the rgb pixel of the second image with the values along the color dimension. HTH, Tim ----- Mail original ----- De: "XieYi" ?: insight-users at itk.org Envoy?: Mercredi 7 Juin 2017 13:45:00 Objet: [ITK] [ITK-users] why jpg image that is converted from a mhd image is so weird ? the mhd image in ParaView software is like this: after being converted to jpg image, it is like this here is my converting code: typedef float PixelType; const unsigned int Dimension = 3; typedef itk::Matrix MatrixType; #ifdef RTK_USE_CUDA typedef itk::CudaImage< PixelType, Dimension > ImageType; #else typedef itk::Image< PixelType, Dimension > ImageType; #endif typedef itk::RGBPixel PixelType_2D; #ifdef RTK_USE_CUDA typedef itk::CudaImage< PixelType_2D, 2 > ImageType; #else typedef itk::Image ImageType2; #endif typedef itk::JPEGImageIO ImageIOType; ImageIOType::Pointer jpegIO = ImageIOType::New(); ImageType::Pointer drr1 = [a function get a image] typedef itk::CastImageFilter ImageCastType; ImageCastType::Pointer Imagecast = ImageCastType::New(); Imagecast->SetInput(drr1); Imagecast->Update(); jpegIO->SetFileTypeToASCII(); typedef itk::ImageFileWriter WriterType2; WriterType2::Pointer writer_jpg = WriterType2::New(); writer_jpg->SetImageIO(jpegIO); writer_jpg->SetFileName("drr.jpg"); writer_jpg->SetInput(Imagecast->GetOutput()); writer_jpg->Update(); -- View this message in context: http://itk-users.7.n7.nabble.com/why-jpg-image-that-is-converted-from-a-mhd-image-is-so-weird-tp38307.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 _______________________________________________ Community mailing list Community at itk.org http://public.kitware.com/mailman/listinfo/community _____________________________________ 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 xieyi4650 at 126.com Wed Jun 7 08:57:18 2017 From: xieyi4650 at 126.com (XieYi) Date: Wed, 7 Jun 2017 05:57:18 -0700 (MST) Subject: [ITK] [ITK-users] why jpg image that is converted from a mhd image is so weird ? In-Reply-To: <1953946665.3804674.1496836898409.JavaMail.zimbra@enst.fr> References: <1496835900201-38307.post@n7.nabble.com> <1953946665.3804674.1496836898409.JavaMail.zimbra@enst.fr> Message-ID: <1496840238850-38309.post@n7.nabble.com> Thank you very much Tim There is one point not clear in my topic. The point is that the dimension of image is 3, but infact it is a slice, i.e. it is a 2D image but store in a 3D image type. its size is 512x512x1 there are two strange things: 1, some ImageType can be cast into a 2D jpg image, and have no accident. 2, when I define the density ImageType as typedef itk::RGBPixel PixelType_2D; typedef itk::CudaImage< PixelType_2D, 2 > ImageType2; typedef itk::PNGImageIO ImageIOType; the xxxxx.png look like normal. -- View this message in context: http://itk-users.7.n7.nabble.com/why-jpg-image-that-is-converted-from-a-mhd-image-is-so-weird-tp38307p38309.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 tevain at telecom-paristech.fr Wed Jun 7 09:18:06 2017 From: tevain at telecom-paristech.fr (Timothee Evain) Date: Wed, 7 Jun 2017 15:18:06 +0200 (CEST) Subject: [ITK] [ITK-users] why jpg image that is converted from a mhd image is so weird ? In-Reply-To: <1496840238850-38309.post@n7.nabble.com> References: <1496835900201-38307.post@n7.nabble.com> <1953946665.3804674.1496836898409.JavaMail.zimbra@enst.fr> <1496840238850-38309.post@n7.nabble.com> Message-ID: <1512850014.3888704.1496841486846.JavaMail.zimbra@enst.fr> Ok, I don't see the advantage of storing a slice as a 3D image since it confuses the code quite a bit, but I guess you have some good reasons. Same thing for the cast, even if it works, that is really not a standard way of doing it, and could be tricky in the long term. About the png being normal: Jpeg is a compressed format with loss, that could impact the aspect. But if the image appears normal it is probably because you switched to unsigned short instead of unsigned char, and your original image intensity range overflowed the char one, giving false values. HTH, Tim ----- Mail original ----- De: "XieYi" ?: insight-users at itk.org Envoy?: Mercredi 7 Juin 2017 14:57:18 Objet: Re: [ITK] [ITK-users] why jpg image that is converted from a mhd image is so weird ? Thank you very much Tim There is one point not clear in my topic. The point is that the dimension of image is 3, but infact it is a slice, i.e. it is a 2D image but store in a 3D image type. its size is 512x512x1 there are two strange things: 1, some ImageType can be cast into a 2D jpg image, and have no accident. 2, when I define the density ImageType as typedef itk::RGBPixel PixelType_2D; typedef itk::CudaImage< PixelType_2D, 2 > ImageType2; typedef itk::PNGImageIO ImageIOType; the xxxxx.png look like normal. -- View this message in context: http://itk-users.7.n7.nabble.com/why-jpg-image-that-is-converted-from-a-mhd-image-is-so-weird-tp38307p38309.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 _______________________________________________ Community mailing list Community at itk.org http://public.kitware.com/mailman/listinfo/community _____________________________________ 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 dzenanz at gmail.com Wed Jun 7 09:34:38 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Wed, 7 Jun 2017 09:34:38 -0400 Subject: [ITK] [ITK-users] MultiThreading, ImageRegionIterator crash In-Reply-To: <13d4dc31-8fb8-40c1-ccd8-abe4e45555ef@univ-rennes1.fr> References: <13d4dc31-8fb8-40c1-ccd8-abe4e45555ef@univ-rennes1.fr> Message-ID: Hi Nicolas, ThreadedComputation should be called ThreadedGenerateData, otherwise the code looks OK. If you overrode AllocateOutputs(), then you might not have allocated the output (assuming index is wrong for imgIt). Can you provide a runnable example ? Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Wed, Jun 7, 2017 at 5:46 AM, Nicolas Courtial < nicolas.courtial at univ-rennes1.fr> wrote: > Hello everyone, > > I'm quite new in ITK world, and I'm currently doing few experiences in > order to learn its logic. > > After few easy exercices, I'm now at a step I want to multithread a method. > As I did in the past, I've been reading the ITK classes to get > "inspiration", and e- mails from here in case of troubles. > > I'm facing an issue at the moment, and I can't figure why, and how to > solve it. > > My filter works with > > - One 3D InputImage (of any pixel type) > - Two "tool" 3D images, respectively of float and unsigned char pixel > types > > From what I read, I've understood there are two main ways of > multithreading: > > - The old fashioned one using BeforeThreadedGenerateData/ > ThreadedGenerateData/AfterThreadedGenerateData > - the one using itk::DomainThreader member. > > As I'm a bit old school, I used the first option. > My problem remains here: (I changed my variables' name to make it clearer) > > ThreadedComputation(const OutputImageRegionType &outputRegionForThread, > ThreadIdType threadId) { > itk::ProgressReporter progress(this, threadId, > outputRegionForThread.GetNumberOfPixels()); > typename TOutputImage::Pointer image = this->GetOutput(0); > > itk::ImageRegionIterator< TOutputImage > imgIt(image, > outputRegionForThread); > itk::ImageRegionIterator< FloatImageType> floatIt (m_MyFloatImage, > outputRegionForThread); > .... > > When creating the floatIt iterator, I have a crash. Using a try catch > block, the issue is due to out of bound region. > Everything is correct, but the index, for which it's completly crazy > ([156245468,0,156245468] or something approching). > > I've tried different options to solve this, but rather than doing > witchcraft and at some point getting something working, I'd prefer to > improve my understanding thanks to your expertise. > > Thanks all, > > Nicolas Courtial > > > > > > _____________________________________ > 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: -------------- next part -------------- _____________________________________ 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 gaoyi.cn at gmail.com Wed Jun 7 09:48:17 2017 From: gaoyi.cn at gmail.com (Yi Gao) Date: Wed, 7 Jun 2017 09:48:17 -0400 Subject: [ITK] [ITK-dev] itk::Statistics::ScalarImageToCooccurrenceMatrixFilter input image and mask are same type Message-ID: Dear All, I was using the itk::Statistics::ScalarImageToCooccurrenceMatrixFilter and found that the input Image and the input Mask image has to be the same (scalar) type. Is this on purpose? Apparently this causes problem when we have input texture image as float pixel type and mask image of integer type. I can add pre-processing to work around but just want to be sure if my understanding is correct. Thanks! Best, yi -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ 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://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-developers From dzenanz at gmail.com Wed Jun 7 10:25:42 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Wed, 7 Jun 2017 10:25:42 -0400 Subject: [ITK] [ITK-dev] itk::Statistics::ScalarImageToCooccurrenceMatrixFilter input image and mask are same type In-Reply-To: References: Message-ID: Hi Yi, I suppose that mask having the same image type as the input is a limitation of the current class. I had a quick look at the class implementation itkScalarImageToCooccurrenceMatrixFilter.hxx , and it seems easy to introduce a new (3rd) template parameter for the mask. It should be equal to TImageType by default for backwards compatibility. That is the preferred solution to this problem. Once you get it working, please submit a patch so others can benefit from this improvement. Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Wed, Jun 7, 2017 at 9:48 AM, Yi Gao wrote: > Dear All, > > I was using the itk::Statistics::ScalarImageToCooccurrenceMatrixFilter > and found that the input Image and the input Mask image has to be the same > (scalar) type. > > Is this on purpose? Apparently this causes problem when we have input > texture image as float pixel type and mask image of integer type. I can add > pre-processing to work around but just want to be sure if my understanding > is correct. > > Thanks! > > Best, > yi > > _______________________________________________ > 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://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-developers > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ 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://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-developers From goretzki.imre at gmail.com Wed Jun 7 13:37:04 2017 From: goretzki.imre at gmail.com (Imre Goretzki) Date: Wed, 7 Jun 2017 19:37:04 +0200 Subject: [ITK] Deprecate Warning with VS2016 In-Reply-To: References: Message-ID: Hey Matt, today I changed my environment from ITK 4-10 / MSVC 2015 to ITK 4-12 / MSVC 2017. Warnings still exists. Greetings Imre On 07.06.2017 02:06, Matt McCormick wrote: > Hi Imre, > > Please try the recently released ITK 4.12.0. > > Cheers, > Matt > > On Sat, Jun 3, 2017 at 3:02 AM, Imre Goretzki > wrote: > > Hey guys, > > my VS2015 shows some warnings on using ItkImageFileReader > (itkImageFileReader.hxx(441)). I currently use ITK 4.10. > > Exact warning: > warning C4996: 'std::copy::_Unchecked_iterators::_Deprecate': > Call to 'std::copy' with parameters that may be unsafe - this call > relies on the caller to check that the passed values are correct. > To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See > documentation on how to use Visual C++ 'Checked Iterators' > > compiling function template in > [itk\src\modules\io\imagebase\include\itkImageFileReader.hxx(441)] > [...] "_OutIt *std::copy int*>(_InIt,_InIt,_OutIt)". > 1> with > 1> [ > 1> _OutIt=unsigned int *, > 1> _InIt=const unsigned int * > 1> ] > > Greetings, > Imre > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > > > > > > Virenfrei. www.avg.com > > > > <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Wed Jun 7 15:47:16 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Wed, 7 Jun 2017 15:47:16 -0400 Subject: [ITK] Deprecate Warning with VS2016 In-Reply-To: References: Message-ID: Hi Imre, These warnings can safely be ignored / disabled in this case. HTH, Matt On Wed, Jun 7, 2017 at 1:37 PM, Imre Goretzki wrote: > Hey Matt, > > today I changed my environment from ITK 4-10 / MSVC 2015 to ITK 4-12 / > MSVC 2017. Warnings still exists. > > Greetings > Imre > > > On 07.06.2017 02:06, Matt McCormick wrote: > > Hi Imre, > > Please try the recently released ITK 4.12.0. > > Cheers, > Matt > > On Sat, Jun 3, 2017 at 3:02 AM, Imre Goretzki > wrote: > >> Hey guys, >> >> my VS2015 shows some warnings on using ItkImageFileReader >> (itkImageFileReader.hxx(441)). I currently use ITK 4.10. >> >> Exact warning: >> warning C4996: 'std::copy::_Unchecked_iterators::_Deprecate': Call to >> 'std::copy' with parameters that may be unsafe - this call relies on the >> caller to check that the passed values are correct. To disable this >> warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use >> Visual C++ 'Checked Iterators' >> >> compiling function template in [itk\src\modules\io\imagebase\ >> include\itkImageFileReader.hxx(441)] >> [...] "_OutIt *std::copy> int*>(_InIt,_InIt,_OutIt)". >> 1> with >> 1> [ >> 1> _OutIt=unsigned int *, >> 1> _InIt=const unsigned int * >> 1> ] >> >> Greetings, >> Imre >> _______________________________________________ >> Community mailing list >> Community at itk.org >> http://public.kitware.com/mailman/listinfo/community >> > > > > Virenfrei. > www.avg.com > > <#m_-6035979521261246226_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From julien.jomier at kitware.com Fri Jun 9 02:16:21 2017 From: julien.jomier at kitware.com (Julien Jomier) Date: Fri, 9 Jun 2017 08:16:21 +0200 Subject: [ITK] [ITK-users] [ANN] CMake Training Course - October 9 Message-ID: <2d50072b-a62a-a58a-19a2-dd2747a38b39@kitware.com> Kitware will be holding a CMake training course on October 9, 2017 in Lyon, France. This one-day course will cover CMake, CTest, CPack and CDash. Please visit our website for more information and registration details: https://training.kitware.fr/browse/153 Note that the course will be taught in English. If you have any questions, please contact us at training at kitware.fr or email me directly. We are looking forward to seeing you in Lyon, Julien -- Kitware SAS 26 rue Louis Gu?rin 69100 Villeurbanne, France http://www.kitware.eu _____________________________________ 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 sidharta.gupta93 at gmail.com Fri Jun 9 05:43:06 2017 From: sidharta.gupta93 at gmail.com (sidharta) Date: Fri, 9 Jun 2017 02:43:06 -0700 (MST) Subject: [ITK] [ITK-users] Set different intensity values along a Spatial Object Message-ID: <1497001386137-38313.post@n7.nabble.com> Dear all, I am trying to create a blank image with a Spatial Object in it. What I want is to set different intensity values along a mask. Is this possible or do I have to group multiple spatial objects together? -- View this message in context: http://itk-users.7.n7.nabble.com/Set-different-intensity-values-along-a-Spatial-Object-tp38313.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 matt.mccormick at kitware.com Fri Jun 9 09:21:35 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Fri, 9 Jun 2017 09:21:35 -0400 Subject: [ITK] [ITK-dev] No meeting today Message-ID: Hi, There will be no confab today. Sorry for the late notice. - M -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ 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://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-developers From hans-johnson at uiowa.edu Fri Jun 9 09:29:18 2017 From: hans-johnson at uiowa.edu (Johnson, Hans J) Date: Fri, 9 Jun 2017 13:29:18 +0000 Subject: [ITK] [ITK-dev] No meeting today In-Reply-To: References: Message-ID: Matt thank you. Hans From: Matt McCormick Date: Friday, June 9, 2017 at 8:21 AM To: ITK Developers , Bradley Lowekamp , Hans Johnson , Dzenan Zukic , Francois Budin Subject: No meeting today Hi, There will be no confab today. Sorry for the late notice. - M -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ 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://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-developers From ivan.hidrovo at gmail.com Fri Jun 9 13:08:57 2017 From: ivan.hidrovo at gmail.com (Ivan Hidrovo) Date: Fri, 9 Jun 2017 12:08:57 -0500 Subject: [ITK] Question about applying registration transformation to another data set Message-ID: Hello all, We are registering 2 data sets A and B using ImageRegistration8.cxx. We get an output dataset C registered to A and also some matrix numbers which we believe to be the rigid registration parameters. We need to apply the same registration transformation to another data set (of a different modality) -- is there a way to use this code or another code to apply a given transformation to an image. Or do we need to make small changes to the code to do this. thanks, Ivan -------------- next part -------------- An HTML attachment was scrubbed... URL: From samuel.gerber at kitware.com Fri Jun 9 13:21:18 2017 From: samuel.gerber at kitware.com (Samuel Gerber) Date: Fri, 9 Jun 2017 13:21:18 -0400 Subject: [ITK] Question about applying registration transformation to another data set In-Reply-To: References: Message-ID: Hi Ivan, It would need a few modifications: First, save the transform parameters from your registration. I.e. GetParameters form your transform object (these might be the matrix numbers you are mentioning). For applying the transform to a new image: 1. Read the transfrom parameters you saved 2. Instantiate a new transfrom object of the same type as the registration 3. Set the transfrom parameters with SetParmeters 4. Create a resampler and set the transform. 5. Apply the resampler to your new image The resampler example provides the basic structure: https://itk.org/Wiki/ITK/Examples/ImageProcessing/ResampleImageFilter You would need to change the code to use your specific transformation and set your saved transform parameters. Alternatively you could modify ImageRegistration8.cxx to read additional images and apply the same resampler used for your image B to them. Another option is to use Slicer3D https://www.slicer.org/. On Fri, Jun 9, 2017 at 1:08 PM, Ivan Hidrovo wrote: > Hello all, > > We are registering 2 data sets A and B using ImageRegistration8.cxx. We > get an output dataset C registered to A and also some matrix numbers which > we believe to be the rigid registration parameters. > > We need to apply the same registration transformation to another data set > (of a different modality) -- is there a way to use this code or another > code to apply a given transformation to an image. > > Or do we need to make small changes to the code to do this. > > thanks, > Ivan > > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > > -- Samuel Gerber R&D Engineer Kitware, Inc. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ivan.hidrovo at gmail.com Mon Jun 12 13:05:22 2017 From: ivan.hidrovo at gmail.com (Ivan Hidrovo) Date: Mon, 12 Jun 2017 12:05:22 -0500 Subject: [ITK] Question about applying registration transformation to another data set In-Reply-To: References: Message-ID: Hello community, Can you kindly tell me 1) if you can input a threshold to an image on ITK when implementing an algorithm? For example when running registration I wish to use only voxel values within a lower and higher threshold 2) Also,do you know if you can use raw files in Slicer3D? we had difficulty putting raw data into slicer and hence switched to ITK Thank you, Ivan On Fri, Jun 9, 2017 at 12:08 PM, Ivan Hidrovo wrote: > Hello all, > > We are registering 2 data sets A and B using ImageRegistration8.cxx. We > get an output dataset C registered to A and also some matrix numbers which > we believe to be the rigid registration parameters. > > We need to apply the same registration transformation to another data set > (of a different modality) -- is there a way to use this code or another > code to apply a given transformation to an image. > > Or do we need to make small changes to the code to do this. > > thanks, > Ivan > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lasso at queensu.ca Mon Jun 12 13:19:19 2017 From: lasso at queensu.ca (Andras Lasso) Date: Mon, 12 Jun 2017 17:19:19 +0000 Subject: [ITK] Question about applying registration transformation to another data set In-Reply-To: References: Message-ID: Yes, you can load raw files into 3D Slicer. You just have to create a small text file that specifies how your raw file should be interpreted (pixel type, image size, spacing). For example, if you have a raw file ?myimage.raw? create a text file called ?myimage.nhdr? in the same directory with the following content: NRRD0004 type: short dimension: 3 space: left-posterior-superior sizes: 256 256 130 space directions: (1.0,0,0) (0,1.0,0) (0,0,1.0) kinds: domain domain domain endian: little encoding: raw space origin: (0.0,0.0,0.0) data file: myimage.raw Probably you only need to change type (probably uchar, short, or double ? see all options here: http://teem.sourceforge.net/nrrd/format.html#basic), sizes (image size in pixels), and space directions (change 1.0 values to image spacing values). If you create your images in Matlab then you can use nrrdwrite.m to write your matrix into a raw file along with a .nhdr text header file (https://subversion.assembla.com/svn/slicerrt/trunk/MatlabBridge/src/MatlabCommander/commandserver/). You can load the image by drag-and-dropping the .nrrd file into 3DSlicer application window. Andras From: Community [mailto:community-bounces at itk.org] On Behalf Of Ivan Hidrovo Sent: Monday, June 12, 2017 1:05 PM To: community at itk.org Subject: Re: [ITK] Question about applying registration transformation to another data set Hello community, Can you kindly tell me 1) if you can input a threshold to an image on ITK when implementing an algorithm? For example when running registration I wish to use only voxel values within a lower and higher threshold 2) Also,do you know if you can use raw files in Slicer3D? we had difficulty putting raw data into slicer and hence switched to ITK Thank you, Ivan On Fri, Jun 9, 2017 at 12:08 PM, Ivan Hidrovo > wrote: Hello all, We are registering 2 data sets A and B using ImageRegistration8.cxx. We get an output dataset C registered to A and also some matrix numbers which we believe to be the rigid registration parameters. We need to apply the same registration transformation to another data set (of a different modality) -- is there a way to use this code or another code to apply a given transformation to an image. Or do we need to make small changes to the code to do this. thanks, Ivan -------------- next part -------------- An HTML attachment was scrubbed... URL: From sg.ele.eng at gmail.com Mon Jun 12 16:18:08 2017 From: sg.ele.eng at gmail.com (Sara Gh) Date: Mon, 12 Jun 2017 16:18:08 -0400 Subject: [ITK] Problem with ResampleImageFilter Message-ID: Hello, I want to write a program that reads an Axial scan (Dicom series) and calculates two orthogonal (Coronal and Sagittal) views of the input Axial scans and then stores them as sperate Dicom series. So, the input is an Axial scan, and the outputs are corresponding Sagittal and Coronal scans. I figured out the directions, origins, sizes, and spaces for ResampleImageFilter. However, it does not work properly for all scans. Can anyone help me with the calculation of the resample filter parameters? Is there any easier way? Thanks, Sara -------------- next part -------------- An HTML attachment was scrubbed... URL: From ivan.hidrovo at gmail.com Mon Jun 12 17:45:28 2017 From: ivan.hidrovo at gmail.com (Ivan Hidrovo) Date: Mon, 12 Jun 2017 16:45:28 -0500 Subject: [ITK] Question about applying registration transformation to another data set In-Reply-To: References: Message-ID: Hello community, I know that this is not an itk related question, but does anybody know how to input my own created 0-1 bit mask for general registration (BRAINS) in 3D slicer? Thank you, Ivan On Mon, Jun 12, 2017 at 2:31 PM, Andras Lasso wrote: > You must follow my example exactly. Lines are not allowed to be removed or > reordered. > > > > Andras > > > > *From: *Ivan Hidrovo > *Sent: *Monday, June 12, 2017 3:28 PM > *To: *Andras Lasso > > *Subject: *Re: [ITK] Question about applying registration transformation > to another data set > > > Dear Andras, > > We tried this : > > type: int > dimension: 3 > sizes: 91 106 115 > endian: little > encoding: raw > data file: m1d0_ROIRegboxS.raw > > It loaded nothing (at least not visible in the windows open) > > but when we tried a mhd format it appears to show it: > > > > > > > *ObjectType = Image NDims = 3 DimSize = 91 106 115 ElementType = MET_INT > ElementDataFile = m1d0_ROIRegboxS.raw * > What are we doing wrong in the nrrd format. > > Can we go ahead with mhd ? > > On Mon, Jun 12, 2017 at 12:29 PM, Ivan Hidrovo > wrote: > >> Dear Andras, >> >> Thank you. >> >> -Ivan >> >> On Mon, Jun 12, 2017 at 12:19 PM, Andras Lasso wrote: >> >>> Yes, you can load raw files into 3D Slicer. You just have to create a >>> small text file that specifies how your raw file should be interpreted >>> (pixel type, image size, spacing). For example, if you have a raw file >>> ?myimage.raw? create a text file called ?myimage.nhdr? in the same >>> directory with the following content: >>> >>> >>> >>> NRRD0004 >>> >>> type: *short* >>> >>> dimension: 3 >>> >>> space: left-posterior-superior >>> >>> sizes: *256 256 130* >>> >>> space directions: *(1.0,0,0) (0,1.0,0) (0,0,1.0)* >>> >>> kinds: domain domain domain >>> >>> endian: little >>> >>> encoding: raw >>> >>> space origin: (0.0,0.0,0.0) >>> >>> data file: myimage.raw >>> >>> >>> >>> Probably you only need to change *type* (probably uchar, short, or >>> double ? see all options here: http://teem.sourceforge.net/nr >>> rd/format.html#basic >>> ), >>> *sizes* (image size in pixels), and *space directions* (change 1.0 >>> values to image spacing values). >>> >>> >>> >>> If you create your images in Matlab then you can use nrrdwrite.m to >>> write your matrix into a raw file along with a .nhdr text header file ( >>> https://subversion.assembla.com/svn/slicerrt/trunk/MatlabBr >>> idge/src/MatlabCommander/commandserver/ >>> >>> ). >>> >>> >>> >>> You can load the image by drag-and-dropping the .nrrd file into 3DSlicer >>> application window. >>> >>> >>> >>> Andras >>> >>> >>> >>> *From:* Community [mailto:community-bounces at itk.org] *On Behalf Of *Ivan >>> Hidrovo >>> *Sent:* Monday, June 12, 2017 1:05 PM >>> *To:* community at itk.org >>> *Subject:* Re: [ITK] Question about applying registration >>> transformation to another data set >>> >>> >>> >>> Hello community, >>> >>> >>> >>> Can you kindly tell me >>> 1) if you can input a threshold to an image on ITK when implementing an >>> algorithm? >>> >>> For example when running registration I wish to use only voxel values >>> within a lower and higher threshold >>> >>> 2) Also,do you know if you can use raw files in Slicer3D? we had >>> difficulty putting raw data into slicer and hence switched to ITK >>> >>> Thank you, >>> >>> Ivan >>> >>> >>> >>> On Fri, Jun 9, 2017 at 12:08 PM, Ivan Hidrovo >>> wrote: >>> >>> Hello all, >>> >>> We are registering 2 data sets A and B using ImageRegistration8.cxx. We >>> get an output dataset C registered to A and also some matrix numbers which >>> we believe to be the rigid registration parameters. >>> >>> We need to apply the same registration transformation to another data >>> set (of a different modality) -- is there a way to use this code or another >>> code to apply a given transformation to an image. >>> >>> Or do we need to make small changes to the code to do this. >>> >>> thanks, >>> >>> Ivan >>> >>> >>> >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lasso at queensu.ca Mon Jun 12 21:07:16 2017 From: lasso at queensu.ca (Andras Lasso) Date: Tue, 13 Jun 2017 01:07:16 +0000 Subject: [ITK] Question about applying registration transformation to another data set In-Reply-To: References: Message-ID: Please post 3D Slicer specific question to the Slicer forum: https://discourse.slicer.org Andras From: Community [mailto:community-bounces at itk.org] On Behalf Of Ivan Hidrovo Sent: Monday, June 12, 2017 5:45 PM To: community at itk.org Subject: Re: [ITK] Question about applying registration transformation to another data set Hello community, I know that this is not an itk related question, but does anybody know how to input my own created 0-1 bit mask for general registration (BRAINS) in 3D slicer? Thank you, Ivan On Mon, Jun 12, 2017 at 2:31 PM, Andras Lasso > wrote: You must follow my example exactly. Lines are not allowed to be removed or reordered. Andras From: Ivan Hidrovo Sent: Monday, June 12, 2017 3:28 PM To: Andras Lasso Subject: Re: [ITK] Question about applying registration transformation to another data set Dear Andras, We tried this : type: int dimension: 3 sizes: 91 106 115 endian: little encoding: raw data file: m1d0_ROIRegboxS.raw It loaded nothing (at least not visible in the windows open) but when we tried a mhd format it appears to show it: ObjectType = Image NDims = 3 DimSize = 91 106 115 ElementType = MET_INT ElementDataFile = m1d0_ROIRegboxS.raw What are we doing wrong in the nrrd format. Can we go ahead with mhd ? On Mon, Jun 12, 2017 at 12:29 PM, Ivan Hidrovo > wrote: Dear Andras, Thank you. -Ivan On Mon, Jun 12, 2017 at 12:19 PM, Andras Lasso > wrote: Yes, you can load raw files into 3D Slicer. You just have to create a small text file that specifies how your raw file should be interpreted (pixel type, image size, spacing). For example, if you have a raw file ?myimage.raw? create a text file called ?myimage.nhdr? in the same directory with the following content: NRRD0004 type: short dimension: 3 space: left-posterior-superior sizes: 256 256 130 space directions: (1.0,0,0) (0,1.0,0) (0,0,1.0) kinds: domain domain domain endian: little encoding: raw space origin: (0.0,0.0,0.0) data file: myimage.raw Probably you only need to change type (probably uchar, short, or double ? see all options here: http://teem.sourceforge.net/nrrd/format.html#basic), sizes (image size in pixels), and space directions (change 1.0 values to image spacing values). If you create your images in Matlab then you can use nrrdwrite.m to write your matrix into a raw file along with a .nhdr text header file (https://subversion.assembla.com/svn/slicerrt/trunk/MatlabBridge/src/MatlabCommander/commandserver/). You can load the image by drag-and-dropping the .nrrd file into 3DSlicer application window. Andras From: Community [mailto:community-bounces at itk.org] On Behalf Of Ivan Hidrovo Sent: Monday, June 12, 2017 1:05 PM To: community at itk.org Subject: Re: [ITK] Question about applying registration transformation to another data set Hello community, Can you kindly tell me 1) if you can input a threshold to an image on ITK when implementing an algorithm? For example when running registration I wish to use only voxel values within a lower and higher threshold 2) Also,do you know if you can use raw files in Slicer3D? we had difficulty putting raw data into slicer and hence switched to ITK Thank you, Ivan On Fri, Jun 9, 2017 at 12:08 PM, Ivan Hidrovo > wrote: Hello all, We are registering 2 data sets A and B using ImageRegistration8.cxx. We get an output dataset C registered to A and also some matrix numbers which we believe to be the rigid registration parameters. We need to apply the same registration transformation to another data set (of a different modality) -- is there a way to use this code or another code to apply a given transformation to an image. Or do we need to make small changes to the code to do this. thanks, Ivan -------------- next part -------------- An HTML attachment was scrubbed... URL: From benedikt.beyer at rwth-aachen.de Tue Jun 13 09:18:47 2017 From: benedikt.beyer at rwth-aachen.de (Beyer, Benedikt Alexander) Date: Tue, 13 Jun 2017 13:18:47 +0000 Subject: [ITK] Questions about ITK-Snap gaussian smoothing In-Reply-To: References: <1496133751735.22048@rwth-aachen.de> Message-ID: Hi D?enan and Paul, thank you for the Information about the mesh smoothing algorithm, that helped a lot. Unfortunately I don?t completely understand the source code, since I?m not a software developer. In the source code you linked it says that the maximum error parameter is ignored, so I assume that the value in the program settings has no effect on the smoothing. (https://sourceforge.net/p/itk-snap/src/ci/master/tree/Logic/Mesh/VTKMeshPipeline.cxx#l169) As for the sigma I still don?t entirely understand why the polygon model is not smoothed below a sigma of 0.67. In the preferences for ITK-SNAP at the 3D Rendering tab, there is a Gaussian image smoothing option. Activating this option will smooth the polygon model of a segmentation for sigma>=0.67. Also in the source code and documentation there seems to be contradicting information, because in vtkImageGaussianSmooth.h sigma is in pixel units and in VTKMeshPipeline.cxx#l166 it is in millimeters. Which information relates to the 3D Rendering option? Regards, Benedikt Beyer Von: D?enan Zuki? [mailto:dzenanz at gmail.com] Gesendet: Dienstag, 30. Mai 2017 15:38 An: Beyer, Benedikt Alexander Cc: community at itk.org; Paul Yushkevich Betreff: Re: [ITK] Questions about ITK-Snap gaussian smoothing Hi Benedikt, if you are asking about which mesh smoothing algorithm is used, I think this source code file answers that: https://sourceforge.net/p/itk-snap/src/ci/master/tree/Logic/Mesh/VTKMeshPipeline.cxx#l167 Its declaration says it is an vtkImageGaussianSmooth. If documentation is not enough, you can find its source code in VTK. As the sigma is passed into there as a parameter, I believe the user-modifiable preferences in the program control it. Paul (CC'd) might have more explanations. Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Tue, May 30, 2017 at 4:42 AM, Beyer, Benedikt Alexander > wrote: Dear ITK community, I am currently writing an academic thesis at the RWTH Aachen University and I work with STL-data that is exported with ITK-Snap. A segmented structure is exported as an STL-file and then analyzed with VG Studio MAX. The data is used to determine measurement uncertainties created by gaussian filtering. To determine this uncertainty, I compare smoothed data to unsmoothed data. I have a few questions regarding the gaussian image smoothing setting. 1. What gaussian filter algorithm does this option use? Eg. Recursive, discrete, robust, etc. 2. Is this filter a linear or surface filter? 3. How big is the gaussian kernel? Eg. 3x3, 5x5, etc. 4. What does the ?approximation error max? option do? It has no visual effect on the segmentation. 5. There seems to be a threshold of the standard deviation at around 0.67. It seems that below this number no smoothing is applied. Is this specific to the program, or is this dependend on the voxel size? 6. Are there any known influences on measurement uncertainty by gaussian smoothing? Thank you in advance and with kind regards Benedikt Beyer _______________________________________________ Community mailing list Community at itk.org http://public.kitware.com/mailman/listinfo/community -------------- next part -------------- An HTML attachment was scrubbed... URL: From dzenanz at gmail.com Tue Jun 13 09:25:54 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Tue, 13 Jun 2017 09:25:54 -0400 Subject: [ITK] Questions about ITK-Snap gaussian smoothing In-Reply-To: References: <1496133751735.22048@rwth-aachen.de> Message-ID: Hi Benedikt, I trust VTK's docs more than a comment near the filter's invocation. But you can easily test this by opening a highly anisotropic image (let's say Z spacing 10x greater than X and Y spacing) with some e.g. sharp edges and observing how the smoothing works. Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Tue, Jun 13, 2017 at 9:18 AM, Beyer, Benedikt Alexander < benedikt.beyer at rwth-aachen.de> wrote: > Hi D?enan and Paul, > > > > thank you for the Information about the mesh smoothing algorithm, that > helped a lot. Unfortunately I don?t completely understand the source code, > since I?m not a software developer. > > > > In the source code you linked it says that the maximum error parameter is > ignored, so I assume that the value in the program settings has no effect > on the smoothing. > > (https://sourceforge.net/p/itk-snap/src/ci/master/tree/ > Logic/Mesh/VTKMeshPipeline.cxx#l169) > > > > As for the sigma I still don?t entirely understand why the polygon model > is not smoothed below a sigma of 0.67. > > In the preferences for ITK-SNAP at the 3D Rendering tab, there is a > Gaussian image smoothing option. Activating this option will smooth the > polygon model of a segmentation for sigma>=0.67. > > > > Also in the source code and documentation there seems to be contradicting > information, because in vtkImageGaussianSmooth.h > > sigma is in pixel units and in VTKMeshPipeline.cxx#l166 > > it is in millimeters. Which information relates to the 3D Rendering option? > > > > Regards, > > Benedikt Beyer > > > > *Von:* D?enan Zuki? [mailto:dzenanz at gmail.com] > *Gesendet:* Dienstag, 30. Mai 2017 15:38 > *An:* Beyer, Benedikt Alexander > *Cc:* community at itk.org; Paul Yushkevich > *Betreff:* Re: [ITK] Questions about ITK-Snap gaussian smoothing > > > > Hi Benedikt, > > > > if you are asking about which mesh smoothing algorithm is used, I think > this source code file answers that: > > https://sourceforge.net/p/itk-snap/src/ci/master/tree/Logic/ > Mesh/VTKMeshPipeline.cxx#l167 > > > > Its declaration > > says it is an vtkImageGaussianSmooth > . > If documentation is not enough, you can find its source code > > in VTK. > > > > As the sigma is passed into there as a parameter, I believe the > user-modifiable preferences in the program control it. > > > > Paul (CC'd) might have more explanations. > > > > Regards, > > D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) > > > > On Tue, May 30, 2017 at 4:42 AM, Beyer, Benedikt Alexander < > benedikt.beyer at rwth-aachen.de> wrote: > > Dear ITK community, > > > > I am currently writing an academic thesis at the RWTH Aachen University > and I work with STL-data that is exported with ITK-Snap. A segmented > structure is exported as an STL-file and then analyzed with VG Studio MAX. > The data is used to determine measurement uncertainties created by gaussian > filtering. To determine this uncertainty, I compare smoothed data to > unsmoothed data. I have a few questions regarding the gaussian image > smoothing setting. > > > > 1. What gaussian filter algorithm does this option use? Eg. Recursive, > discrete, robust, etc. > 2. Is this filter a linear or surface filter? > 3. How big is the gaussian kernel? Eg. 3x3, 5x5, etc. > 4. What does the ?approximation error max? option do? It has no visual > effect on the segmentation. > 5. There seems to be a threshold of the standard deviation at around > 0.67. It seems that below this number no smoothing is applied. Is this > specific to the program, or is this dependend on the voxel size? > 6. Are there any known influences on measurement uncertainty by > gaussian smoothing? > > > > Thank you in advance and with kind regards > > Benedikt Beyer > > > > > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From tobias.wood at kcl.ac.uk Wed Jun 14 06:19:33 2017 From: tobias.wood at kcl.ac.uk (Wood, Tobias) Date: Wed, 14 Jun 2017 10:19:33 +0000 Subject: [ITK] Tests with multi-file input data (Bruker2DSEQ) Message-ID: Hello, I have been slowly working on my updated Bruker2DSEQ file reader. It?s not quite ready for formal review, but it is available here: https://github.com/spinicist/ITK (On the Bruker branch) I have reached a problem writing a suitable test, because the Bruker data format consists of multiple files. I previously discussed this issue with Jon Haitz, but despite his help I am stuck. I have added a new example Bruker file in Testing/Data/Input/Bruker2DSEQ. There was already a Bruker dataset in Testing/Data/Input/DCB120604.t61, but this is from (I think) ParaVision 3. Bruker made a *lot* of changes when they released ParaVision 6, one of which was the introduction of a new header file called ?visu_pars?. The actual image data is still in the ?2dseq? file. My problem is that the itk Test Driver only transfers the 2dseq file to build/ExternalData/Testing/Data/Input/Bruker2DSEQ/... , and not the ?visu_pars? file, and hence trying to read the file fails. So, questions: 1 - Is this the correct place to put the test data? Because of the Bruker directory structure, I assumed the recommended way of requesting an MD5 hash and putting the data in the module?s test directory won?t work? 2 - How do I indicate to the test driver that it needs to copy the whole directory structure, and not just the 2dseq file? Eventually, I would like the reader to read all the header files (there are several of them) because they contain useful meta-data that users might want to extract. I was hoping to do a bit more polishing before putting this out for any kind of review, but I guess now is as a good a time as any. Let me know if you need more information. Note - I moved the module out of Nonunit/Review, I hope this was a good idea but I can always move it back if necessary. Thanks, Toby From blowekamp at mail.nih.gov Wed Jun 14 08:42:03 2017 From: blowekamp at mail.nih.gov (Lowekamp, Bradley (NIH/NLM/LHC) [C]) Date: Wed, 14 Jun 2017 12:42:03 +0000 Subject: [ITK] Tests with multi-file input data (Bruker2DSEQ) In-Reply-To: References: Message-ID: Hello, Thank you for your work on this. Re 1: The Bruker ImageIO should be moved out of the review directory an placed in own ITK module under "Modules/IO/Bruker2DSEQ?, which you appear to have already done in your branch. Outstanding! I would place the data in this modules under the ?test/Input? subdirectory. If you need an entire folder, you can create it here. I am not sure what problem you encountered with this layout. Re 2: You can find the CMake documentation for that here: https://cmake.org/cmake/help/v3.3/module/ExternalData.html#referencing-file-series There are quite a number of options for referencing files series, file pair, and associated directories. I would expect this to meet you needs. I glanced at the contents: https://github.com/spinicist/ITK/commit/541411449a9538b758507672583c88db949d90cb It?s not clear to me what files are needed when reading, if you need recommendation on using `DATA{}` please be specific with the files needed by the IO, and their locations. HTH, Brad On Jun 14, 2017, at 6:19 AM, Wood, Tobias > wrote: Hello, I have been slowly working on my updated Bruker2DSEQ file reader. It?s not quite ready for formal review, but it is available here: https://github.com/spinicist/ITK (On the Bruker branch) I have reached a problem writing a suitable test, because the Bruker data format consists of multiple files. I previously discussed this issue with Jon Haitz, but despite his help I am stuck. I have added a new example Bruker file in Testing/Data/Input/Bruker2DSEQ. There was already a Bruker dataset in Testing/Data/Input/DCB120604.t61, but this is from (I think) ParaVision 3. Bruker made a *lot* of changes when they released ParaVision 6, one of which was the introduction of a new header file called ?visu_pars?. The actual image data is still in the ?2dseq? file. My problem is that the itk Test Driver only transfers the 2dseq file to build/ExternalData/Testing/Data/Input/Bruker2DSEQ/... , and not the ?visu_pars? file, and hence trying to read the file fails. So, questions: 1 - Is this the correct place to put the test data? Because of the Bruker directory structure, I assumed the recommended way of requesting an MD5 hash and putting the data in the module?s test directory won?t work? 2 - How do I indicate to the test driver that it needs to copy the whole directory structure, and not just the 2dseq file? Eventually, I would like the reader to read all the header files (there are several of them) because they contain useful meta-data that users might want to extract. I was hoping to do a bit more polishing before putting this out for any kind of review, but I guess now is as a good a time as any. Let me know if you need more information. Note - I moved the module out of Nonunit/Review, I hope this was a good idea but I can always move it back if necessary. Thanks, Toby _______________________________________________ Community mailing list Community at itk.org http://public.kitware.com/mailman/listinfo/community -------------- next part -------------- An HTML attachment was scrubbed... URL: From tobias.wood at kcl.ac.uk Wed Jun 14 09:13:49 2017 From: tobias.wood at kcl.ac.uk (Wood, Tobias) Date: Wed, 14 Jun 2017 13:13:49 +0000 Subject: [ITK] Tests with multi-file input data (Bruker2DSEQ) In-Reply-To: References: Message-ID: <5834E78B-3496-485D-B39D-AF3C35E1374C@kcl.ac.uk> Thanks very much Brad. Individual responses below. > If you need an entire folder, you can create it here. I am not sure what problem you encountered with this layout. To be honest, I didn?t try it. I assumed it would cause problems. I will try it. > There are quite a number of options for referencing files series, file pair, and associated directories. I would expect this to meet you needs. Again thanks - I had completely missed this documentation. >?It?s not clear to me what files are needed when reading, if you need recommendation on using `DATA{}` please be specific with the files needed by the IO, and their locations. The bare minimum required to read the image are the ?2dseq? and ?visu_pars? file. I have kept the convention of the old Bruker reader which is to specify the ?2dseq? file as the input, and then to work out the paths to ?visu_pars? and the other headers. The Bruker format is a bit complex. The issue is that each acquisition can be reconstructed multiple times. The directory structure goes something like this: acquistion/ method <- An important header file acqp <- Another important header fid <- Raw data ***bunch of other stuff*** pdata/ 1/ 2dseq <- Reconstructed data visu_pars <- Most important header reco <- Less important header, mostly duplicated in visu_pars procs <- Unimportant header id <- Unimportant header 2/ 2dseq visu_pars reco procs id ... I hope the indentation survives transmission. Here, 1 and 2 are different reconstructed images, for instance magnitude and phase, or for diffusion it might be raw images and a multi-volume file containing FA, MD etc. as calculated by ParaVision. From Paravision 6 onwards, the bare minimum to read an image seems to be 2dseq + visu_pars. However, some important meta-data like diffusion b-values and b-vectors is only present in the method header. Hence I?m not entirely sure what should be considered a valid ?image? by ITK - just 2dseq + visu_pars, or the entire data structure? For my uses, I think the best approach would be to consider 2dseq + visu_pars the minimum, but if the other headers are present read them in to get the meta-data. Is that acceptable? Best wishes, Toby From blowekamp at mail.nih.gov Wed Jun 14 09:30:50 2017 From: blowekamp at mail.nih.gov (Lowekamp, Bradley (NIH/NLM/LHC) [C]) Date: Wed, 14 Jun 2017 13:30:50 +0000 Subject: [ITK] Tests with multi-file input data (Bruker2DSEQ) In-Reply-To: <5834E78B-3496-485D-B39D-AF3C35E1374C@kcl.ac.uk> References: <5834E78B-3496-485D-B39D-AF3C35E1374C@kcl.ac.uk> Message-ID: That is a little complicated of a directory structure. I would separate the arguments to run the test and defining the data dependency. First `ExternalData_Expand_Arguments` is called with the path to ?acquisition? in the source directory, which contains the MD5. Something like: ExternalData_Expand_Arguments(ITKData ExpandedData # ignores output variable DATA{Input/acquisition/,RECURSE:,REGEX:.*} ) Then add the test : itk_add_test( NAME itkBurkerTest1 COMMAND ITKBurkerTestDirver DATA{Input/acquisition/1/2dseq}" You can find an example of this here: https://github.com/InsightSoftwareConsortium/ITK/blob/c5c879ad54778ce3b514fd35c197ed4340ccd976/Modules/Filtering/FFT/test/CMakeLists.txt#L138-L150 Please note I have not tried those lines, but I expect them to be close to the proper things to do. Brad On Jun 14, 2017, at 9:13 AM, Wood, Tobias > wrote: Thanks very much Brad. Individual responses below. If you need an entire folder, you can create it here. I am not sure what problem you encountered with this layout. To be honest, I didn?t try it. I assumed it would cause problems. I will try it. There are quite a number of options for referencing files series, file pair, and associated directories. I would expect this to meet you needs. Again thanks - I had completely missed this documentation. It?s not clear to me what files are needed when reading, if you need recommendation on using `DATA{}` please be specific with the files needed by the IO, and their locations. The bare minimum required to read the image are the ?2dseq? and ?visu_pars? file. I have kept the convention of the old Bruker reader which is to specify the ?2dseq? file as the input, and then to work out the paths to ?visu_pars? and the other headers. The Bruker format is a bit complex. The issue is that each acquisition can be reconstructed multiple times. The directory structure goes something like this: acquistion/ method <- An important header file acqp <- Another important header fid <- Raw data ***bunch of other stuff*** pdata/ 1/ 2dseq <- Reconstructed data visu_pars <- Most important header reco <- Less important header, mostly duplicated in visu_pars procs <- Unimportant header id <- Unimportant header 2/ 2dseq visu_pars reco procs id ... I hope the indentation survives transmission. Here, 1 and 2 are different reconstructed images, for instance magnitude and phase, or for diffusion it might be raw images and a multi-volume file containing FA, MD etc. as calculated by ParaVision. From Paravision 6 onwards, the bare minimum to read an image seems to be 2dseq + visu_pars. However, some important meta-data like diffusion b-values and b-vectors is only present in the method header. Hence I?m not entirely sure what should be considered a valid ?image? by ITK - just 2dseq + visu_pars, or the entire data structure? For my uses, I think the best approach would be to consider 2dseq + visu_pars the minimum, but if the other headers are present read them in to get the meta-data. Is that acceptable? Best wishes, Toby -------------- next part -------------- An HTML attachment was scrubbed... URL: From tobias.wood at kcl.ac.uk Wed Jun 14 10:06:40 2017 From: tobias.wood at kcl.ac.uk (Wood, Tobias) Date: Wed, 14 Jun 2017 14:06:40 +0000 Subject: [ITK] Tests with multi-file input data (Bruker2DSEQ) In-Reply-To: References: <5834E78B-3496-485D-B39D-AF3C35E1374C@kcl.ac.uk> Message-ID: <6DC30F4A-3A7A-4BD9-9974-ED07068BB539@kcl.ac.uk> Thanks again Brad. I have one more question that I apologise in advance for asking, because it is probably in a help guide somewhere but I can?t find it - What is the minimum set of commands required to rebuild and rerun a single test after I make changes? I?m trying to avoid doing a ?make all? or ?make test? so I don?t have to wait for all >2000 tests to compile and run. I have been trying: make ITKIOBruker2DSEQTestDriver -j 4 ctest -R -V itkBruker2DSEQ However, this does not seem to trigger the transfer of the test files into the ExternalData/Modules/IO directory, and the test fails. I?m clearly missing something obvious... Toby On 14/06/2017, 14:30, "Lowekamp, Bradley (NIH/NLM/LHC) [C]" wrote: That is a little complicated of a directory structure. I would separate the arguments to run the test and defining the data dependency. First `ExternalData_Expand_Arguments` is called with the path to ?acquisition? in the source directory, which contains the MD5. Something like: ExternalData_Expand_Arguments(ITKData ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ExpandedData # ignores output variable ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? DATA{Input/acquisition/,RECURSE:,REGEX:.*} ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ) Then add the test : ? ? itk_add_test( NAME itkBurkerTest1 COMMAND ITKBurkerTestDirver DATA{Input/acquisition/1/2dseq}" You can find an example of this here: https://github.com/InsightSoftwareConsortium/ITK/blob/c5c879ad54778ce3b514fd35c197ed4340ccd976/Modules/Filtering/FFT/test/CMakeLists.txt#L138-L150 Please note I have not tried those lines, but I expect them to be close to the proper things to do. Brad On Jun 14, 2017, at 9:13 AM, Wood, Tobias wrote: Thanks very much Brad. Individual responses below. If you need an entire folder, you can create it here. I am not sure what problem you encountered with this layout. To be honest, I didn?t try it. I assumed it would cause problems. I will try it. There are quite a number of options for referencing files series, file pair, and associated directories. I would expect this to meet you needs. Again thanks - I had completely missed this documentation. ?It?s not clear to me what files are needed when reading, if you need recommendation on using `DATA{}` please be specific with the files needed by the IO, and their locations. The bare minimum required to read the image are the ?2dseq? and ?visu_pars? file. I have kept the convention of the old Bruker reader which is to specify the ?2dseq? file as the input, and then to work out the paths to ?visu_pars? and the other headers. The Bruker format is a bit complex. The issue is that each acquisition can be reconstructed multiple times. The directory structure goes something like this: acquistion/ method <- An important header file acqp <- Another important header fid <- Raw data ***bunch of other stuff*** pdata/ 1/ 2dseq <- Reconstructed data ????? visu_pars <- Most important header ????? reco <- Less important header, mostly duplicated in visu_pars procs <- Unimportant header id <- Unimportant header 2/ ????? 2dseq visu_pars reco ????? procs id ... I hope the indentation survives transmission. Here, 1 and 2 are different reconstructed images, for instance magnitude and phase, or for diffusion it might be raw images and a multi-volume file containing FA, MD etc. as calculated by ParaVision. From Paravision 6 onwards, the bare minimum to read an image seems to be 2dseq + visu_pars. However, some important meta-data like diffusion b-values and b-vectors is only present in the method header. Hence I?m not entirely sure what should be considered a valid ?image? by ITK - just 2dseq + visu_pars, or the entire data structure? For my uses, I think the best approach would be to consider 2dseq + visu_pars the minimum, but if the other headers are present read them in to get the meta-data. Is that acceptable? Best wishes, Toby From dzenanz at gmail.com Wed Jun 14 10:13:40 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Wed, 14 Jun 2017 10:13:40 -0400 Subject: [ITK] Tests with multi-file input data (Bruker2DSEQ) In-Reply-To: <6DC30F4A-3A7A-4BD9-9974-ED07068BB539@kcl.ac.uk> References: <5834E78B-3496-485D-B39D-AF3C35E1374C@kcl.ac.uk> <6DC30F4A-3A7A-4BD9-9974-ED07068BB539@kcl.ac.uk> Message-ID: Hi Tobias, maybe you need to call make ITKData before the other two calls (which look OK). Regards, D?enan On Wed, Jun 14, 2017 at 10:06 AM, Wood, Tobias wrote: > Thanks again Brad. > > I have one more question that I apologise in advance for asking, because > it is probably in a help guide somewhere but I can?t find it - What is the > minimum set of commands required to rebuild and rerun a single test after I > make changes? > > I?m trying to avoid doing a ?make all? or ?make test? so I don?t have to > wait for all >2000 tests to compile and run. I have been trying: > > make ITKIOBruker2DSEQTestDriver -j 4 > ctest -R -V itkBruker2DSEQ > > However, this does not seem to trigger the transfer of the test files into > the ExternalData/Modules/IO directory, and the test fails. I?m clearly > missing something obvious... > > Toby > > On 14/06/2017, 14:30, "Lowekamp, Bradley (NIH/NLM/LHC) [C]" < > blowekamp at mail.nih.gov> wrote: > > That is a little complicated of a directory structure. > > I would separate the arguments to run the test and defining the data > dependency. First `ExternalData_Expand_Arguments` is called with the path > to ?acquisition? in the source directory, which contains the MD5. Something > like: > > ExternalData_Expand_Arguments(ITKData > ExpandedData # ignores output variable > DATA{Input/acquisition/,RECURSE:,REGEX:.*} > ) > > Then add the test : > itk_add_test( NAME itkBurkerTest1 COMMAND ITKBurkerTestDirver > DATA{Input/acquisition/1/2dseq}" > > You can find an example of this here: > https://github.com/InsightSoftwareConsortium/ITK/blob/ > c5c879ad54778ce3b514fd35c197ed4340ccd976/Modules/Filtering/ > FFT/test/CMakeLists.txt#L138-L150 > > Please note I have not tried those lines, but I expect them to be close to > the proper things to do. > > Brad > > > On Jun 14, 2017, at 9:13 AM, Wood, Tobias wrote: > > Thanks very much Brad. Individual responses below. > > > If you need an entire folder, you can create it here. I am not sure what > problem you encountered with this layout. > > To be honest, I didn?t try it. I assumed it would cause problems. I will > try it. > > > There are quite a number of options for referencing files series, file > pair, and associated directories. I would expect this to meet you needs. > > Again thanks - I had completely missed this documentation. > > > It?s not clear to me what files are needed when reading, if you need > recommendation on using `DATA{}` please be specific with the files needed > by the IO, and their locations. > > The bare minimum required to read the image are the ?2dseq? and > ?visu_pars? file. I have kept the convention of the old Bruker reader which > is to specify the ?2dseq? file as the input, and then to work out the paths > to ?visu_pars? and the other headers. > > The Bruker format is a bit complex. The issue is that each acquisition can > be reconstructed multiple times. The directory structure goes something > like this: > > acquistion/ > method > <- An important header file > acqp > <- Another important header > fid > <- Raw data > ***bunch of other stuff*** > pdata/ > 1/ > 2dseq > <- Reconstructed data > visu_pars > <- Most important header > reco > <- Less important header, mostly duplicated in visu_pars > procs > <- Unimportant header > id > <- Unimportant header > 2/ > 2dseq > visu_pars > reco > procs > id > ... > > I hope the indentation survives transmission. Here, 1 and 2 are different > reconstructed images, for instance magnitude and phase, or for diffusion it > might be raw images and a multi-volume file containing FA, MD etc. as > calculated by ParaVision. > > From Paravision 6 onwards, the bare minimum to read an image seems to be > 2dseq + visu_pars. However, some important meta-data like diffusion > b-values and b-vectors is only present in the method header. Hence I?m not > entirely sure what should be considered a valid ?image? by ITK - just 2dseq > + visu_pars, or the entire data structure? > > For my uses, I think the best approach would be to consider 2dseq + > visu_pars the minimum, but if the other headers are present read them in to > get the meta-data. Is that acceptable? > > Best wishes, > Toby > > > > > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Wed Jun 14 10:14:55 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Wed, 14 Jun 2017 10:14:55 -0400 Subject: [ITK] Tests with multi-file input data (Bruker2DSEQ) In-Reply-To: <6DC30F4A-3A7A-4BD9-9974-ED07068BB539@kcl.ac.uk> References: <5834E78B-3496-485D-B39D-AF3C35E1374C@kcl.ac.uk> <6DC30F4A-3A7A-4BD9-9974-ED07068BB539@kcl.ac.uk> Message-ID: Hi Toby, Thank you for moving the Bruker support forward! Regarding regeneration of the testing data, re-run the CMake configuration: cd ITK-build cmake . Then run the ExternalData target make ITKData To make CMake configuration faster, turn ITK_BUILD_DEFAULT_MODULES OFF and set Module_ITKIOBruker2DSEQ ON. In terms of uploading the data, there is another option we are trying out that uses Girder and SHA512 -- feel free to try these instructions: https://itk.org/ITKExamples/Documentation/Contribute/UploadBinaryData.html > ctest -R -V itkBruker2DSEQ This works. Another option to be aware of is: ctest -L ITKIOBruker2DSEQ which will run all the tests from the ITKIOBruker2DSEQ module. Thanks, Matt On Wed, Jun 14, 2017 at 10:06 AM, Wood, Tobias wrote: > Thanks again Brad. > > I have one more question that I apologise in advance for asking, because > it is probably in a help guide somewhere but I can?t find it - What is the > minimum set of commands required to rebuild and rerun a single test after I > make changes? > > I?m trying to avoid doing a ?make all? or ?make test? so I don?t have to > wait for all >2000 tests to compile and run. I have been trying: > > make ITKIOBruker2DSEQTestDriver -j 4 > ctest -R -V itkBruker2DSEQ > > However, this does not seem to trigger the transfer of the test files into > the ExternalData/Modules/IO directory, and the test fails. I?m clearly > missing something obvious... > > Toby > > On 14/06/2017, 14:30, "Lowekamp, Bradley (NIH/NLM/LHC) [C]" < > blowekamp at mail.nih.gov> wrote: > > That is a little complicated of a directory structure. > > I would separate the arguments to run the test and defining the data > dependency. First `ExternalData_Expand_Arguments` is called with the path > to ?acquisition? in the source directory, which contains the MD5. Something > like: > > ExternalData_Expand_Arguments(ITKData > ExpandedData # ignores output variable > DATA{Input/acquisition/,RECURSE:,REGEX:.*} > ) > > Then add the test : > itk_add_test( NAME itkBurkerTest1 COMMAND ITKBurkerTestDirver > DATA{Input/acquisition/1/2dseq}" > > You can find an example of this here: > https://github.com/InsightSoftwareConsortium/ITK/blob/ > c5c879ad54778ce3b514fd35c197ed4340ccd976/Modules/Filtering/ > FFT/test/CMakeLists.txt#L138-L150 > > Please note I have not tried those lines, but I expect them to be close to > the proper things to do. > > Brad > > > On Jun 14, 2017, at 9:13 AM, Wood, Tobias wrote: > > Thanks very much Brad. Individual responses below. > > > If you need an entire folder, you can create it here. I am not sure what > problem you encountered with this layout. > > To be honest, I didn?t try it. I assumed it would cause problems. I will > try it. > > > There are quite a number of options for referencing files series, file > pair, and associated directories. I would expect this to meet you needs. > > Again thanks - I had completely missed this documentation. > > > It?s not clear to me what files are needed when reading, if you need > recommendation on using `DATA{}` please be specific with the files needed > by the IO, and their locations. > > The bare minimum required to read the image are the ?2dseq? and > ?visu_pars? file. I have kept the convention of the old Bruker reader which > is to specify the ?2dseq? file as the input, and then to work out the paths > to ?visu_pars? and the other headers. > > The Bruker format is a bit complex. The issue is that each acquisition can > be reconstructed multiple times. The directory structure goes something > like this: > > acquistion/ > method > <- An important header file > acqp > <- Another important header > fid > <- Raw data > ***bunch of other stuff*** > pdata/ > 1/ > 2dseq > <- Reconstructed data > visu_pars > <- Most important header > reco > <- Less important header, mostly duplicated in visu_pars > procs > <- Unimportant header > id > <- Unimportant header > 2/ > 2dseq > visu_pars > reco > procs > id > ... > > I hope the indentation survives transmission. Here, 1 and 2 are different > reconstructed images, for instance magnitude and phase, or for diffusion it > might be raw images and a multi-volume file containing FA, MD etc. as > calculated by ParaVision. > > From Paravision 6 onwards, the bare minimum to read an image seems to be > 2dseq + visu_pars. However, some important meta-data like diffusion > b-values and b-vectors is only present in the method header. Hence I?m not > entirely sure what should be considered a valid ?image? by ITK - just 2dseq > + visu_pars, or the entire data structure? > > For my uses, I think the best approach would be to consider 2dseq + > visu_pars the minimum, but if the other headers are present read them in to > get the meta-data. Is that acceptable? > > Best wishes, > Toby > > > > > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > -------------- next part -------------- An HTML attachment was scrubbed... URL: From blowekamp at mail.nih.gov Wed Jun 14 10:18:22 2017 From: blowekamp at mail.nih.gov (Lowekamp, Bradley (NIH/NLM/LHC) [C]) Date: Wed, 14 Jun 2017 14:18:22 +0000 Subject: [ITK] Tests with multi-file input data (Bruker2DSEQ) In-Reply-To: <6DC30F4A-3A7A-4BD9-9974-ED07068BB539@kcl.ac.uk> References: <5834E78B-3496-485D-B39D-AF3C35E1374C@kcl.ac.uk> <6DC30F4A-3A7A-4BD9-9974-ED07068BB539@kcl.ac.uk> Message-ID: No problem asking the questions. I am not sure where the documentation is for this either :) If you do a `make help`, it will list all the targets. There should be an `ITKIOBruker2DSEQ-all` target which should build everything the module and tests depend on. Also, there an `ITKData` target which does the download, md5, and linking stuff for the ExternalData. Brad > On Jun 14, 2017, at 10:06 AM, Wood, Tobias wrote: > > Thanks again Brad. > > I have one more question that I apologise in advance for asking, because it is probably in a help guide somewhere but I can?t find it - What is the minimum set of commands required to rebuild and rerun a single test after I make changes? > > I?m trying to avoid doing a ?make all? or ?make test? so I don?t have to wait for all >2000 tests to compile and run. I have been trying: > > make ITKIOBruker2DSEQTestDriver -j 4 > ctest -R -V itkBruker2DSEQ > > However, this does not seem to trigger the transfer of the test files into the ExternalData/Modules/IO directory, and the test fails. I?m clearly missing something obvious... > > Toby > > On 14/06/2017, 14:30, "Lowekamp, Bradley (NIH/NLM/LHC) [C]" wrote: > > That is a little complicated of a directory structure. > > I would separate the arguments to run the test and defining the data dependency. First `ExternalData_Expand_Arguments` is called with the path to ?acquisition? in the source directory, which contains the MD5. Something like: > > ExternalData_Expand_Arguments(ITKData > ExpandedData # ignores output variable > DATA{Input/acquisition/,RECURSE:,REGEX:.*} > ) > > Then add the test : > itk_add_test( NAME itkBurkerTest1 COMMAND ITKBurkerTestDirver DATA{Input/acquisition/1/2dseq}" > > You can find an example of this here: > https://github.com/InsightSoftwareConsortium/ITK/blob/c5c879ad54778ce3b514fd35c197ed4340ccd976/Modules/Filtering/FFT/test/CMakeLists.txt#L138-L150 > > Please note I have not tried those lines, but I expect them to be close to the proper things to do. > > Brad > > > On Jun 14, 2017, at 9:13 AM, Wood, Tobias wrote: > > Thanks very much Brad. Individual responses below. > > > If you need an entire folder, you can create it here. I am not sure what problem you encountered with this layout. > > To be honest, I didn?t try it. I assumed it would cause problems. I will try it. > > > There are quite a number of options for referencing files series, file pair, and associated directories. I would expect this to meet you needs. > > Again thanks - I had completely missed this documentation. > > > It?s not clear to me what files are needed when reading, if you need recommendation on using `DATA{}` please be specific with the files needed by the IO, and their locations. > > The bare minimum required to read the image are the ?2dseq? and ?visu_pars? file. I have kept the convention of the old Bruker reader which is to specify the ?2dseq? file as the input, and then to work out the paths to ?visu_pars? and the other headers. > > The Bruker format is a bit complex. The issue is that each acquisition can be reconstructed multiple times. The directory structure goes something like this: > > acquistion/ > method > <- An important header file > acqp > <- Another important header > fid > <- Raw data > ***bunch of other stuff*** > pdata/ > 1/ > 2dseq > <- Reconstructed data > visu_pars > <- Most important header > reco > <- Less important header, mostly duplicated in visu_pars > procs > <- Unimportant header > id > <- Unimportant header > 2/ > 2dseq > visu_pars > reco > procs > id > ... > > I hope the indentation survives transmission. Here, 1 and 2 are different reconstructed images, for instance magnitude and phase, or for diffusion it might be raw images and a multi-volume file containing FA, MD etc. as calculated by ParaVision. > > From Paravision 6 onwards, the bare minimum to read an image seems to be 2dseq + visu_pars. However, some important meta-data like diffusion b-values and b-vectors is only present in the method header. Hence I?m not entirely sure what should be considered a valid ?image? by ITK - just 2dseq + visu_pars, or the entire data structure? > > For my uses, I think the best approach would be to consider 2dseq + visu_pars the minimum, but if the other headers are present read them in to get the meta-data. Is that acceptable? > > Best wishes, > Toby > > > > From tobias.wood at kcl.ac.uk Wed Jun 14 10:25:17 2017 From: tobias.wood at kcl.ac.uk (Wood, Tobias) Date: Wed, 14 Jun 2017 14:25:17 +0000 Subject: [ITK] Tests with multi-file input data (Bruker2DSEQ) In-Reply-To: References: <5834E78B-3496-485D-B39D-AF3C35E1374C@kcl.ac.uk> <6DC30F4A-3A7A-4BD9-9974-ED07068BB539@kcl.ac.uk> Message-ID: <94AB32CC-DCB2-4CD2-86A3-1EF3485C85AD@kcl.ac.uk> Thanks Brad, Matt and D?enan - the ITKData target is the crucial one, which also gets picked up by ITKIOBruker2DSEQ-all. The basic test runs and passes now. Back to polishing - I have two bugs, one minor and one a bit more important - that I will try to fix before submitting properly. Best wishes, Toby From tofijoy at gmail.com Wed Jun 14 11:57:43 2017 From: tofijoy at gmail.com (Fijoy Vadakkumpadan) Date: Wed, 14 Jun 2017 11:57:43 -0400 Subject: [ITK] Extended UID length limit Message-ID: Hello, Is there an upper bound on the length of extended UIDs returned by itk::GDCMSeriesFileNames::GetSeriesUIDs? I'm copying the extended UIDs to a null-terminated buffer, so it would be convenient if I know the the maximum length in advance, i.e., how many additional characters can I expect beyond the DICOM standard UID length of 64 bytes. Thanks, --Fijoy -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhlegarreta at vicomtech.org Wed Jun 14 14:24:48 2017 From: jhlegarreta at vicomtech.org (Jon Haitz Legarreta) Date: Wed, 14 Jun 2017 20:24:48 +0200 Subject: [ITK] Tests with multi-file input data (Bruker2DSEQ) In-Reply-To: <94AB32CC-DCB2-4CD2-86A3-1EF3485C85AD@kcl.ac.uk> References: <5834E78B-3496-485D-B39D-AF3C35E1374C@kcl.ac.uk> <6DC30F4A-3A7A-4BD9-9974-ED07068BB539@kcl.ac.uk> <94AB32CC-DCB2-4CD2-86A3-1EF3485C85AD@kcl.ac.uk> Message-ID: Hi Tobias, this is already a huge step in the right direction ! As for the question *For my uses, I think the best approach would be to consider 2dseq + visu_pars the minimum, but if the other headers are present read them in to get the meta-data. Is that acceptable?* Seems reasonable. You will surely have a better grasp of the format than many of us by now ! Let us know if you encounter further problems, or whether you need help solving the issues. Thanks for the effort. JON HAITZ -- On 14 June 2017 at 16:25, Wood, Tobias wrote: > Thanks Brad, Matt and D?enan - the ITKData target is the crucial one, > which also gets picked up by ITKIOBruker2DSEQ-all. > > The basic test runs and passes now. Back to polishing - I have two bugs, > one minor and one a bit more important - that I will try to fix before > submitting properly. > > Best wishes, > Toby > > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > -------------- next part -------------- An HTML attachment was scrubbed... URL: From niels-xtk at xs4all.nl Thu Jun 15 06:06:14 2017 From: niels-xtk at xs4all.nl (Niels Dekker) Date: Thu, 15 Jun 2017 12:06:14 +0200 Subject: [ITK] [ITK-dev] Name mangling for niftilib (Modules/ThirdParty/NIFTI)? Message-ID: <9b3c34ff3738eeef160c0fe3f1a2fbba@xs4all.nl> Our project links to both ITK and the NiftyReg library (*), and thereby indirectly to two different versions of the niftilib library that have the same binary interface. To avoid potential link errors and unexpected run-time behavior, could there be name mangling added to ITK's niftilib version, at Modules/ThirdParty/NIFTI/src/nifty/niftilib? We would suggest an approach according to the existing ITK third party name mangling practice, e.g., by "itk_png_mangle.h", and "itk_zlib_mangle.h". We already have a patch for ITK within our project, SuperElastix, at https://raw.githubusercontent.com/SuperElastix/SuperElastix/c94d65bef1b0fe368b194bbf4de8ccd505a873b0/SuperBuild/Patches/itk_nifti_mangle.patch Kind regards, also on behalf of Floris Berendsen, Niels (*) The NiftyReg library is from https://cmiclab.cs.ucl.ac.uk/mmodat/niftyreg -- Niels Dekker Scientific programmer LKEB, Leiden University Medical Center, Netherlands _______________________________________________ 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://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-developers From matt.mccormick at kitware.com Thu Jun 15 07:39:12 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Thu, 15 Jun 2017 07:39:12 -0400 Subject: [ITK] [ITK-dev] Name mangling for niftilib (Modules/ThirdParty/NIFTI)? In-Reply-To: <9b3c34ff3738eeef160c0fe3f1a2fbba@xs4all.nl> References: <9b3c34ff3738eeef160c0fe3f1a2fbba@xs4all.nl> Message-ID: Hi Neils, Yes, name mangling for nifti is welcome. Please contribute the patch as described here: https://itk.org/Wiki/ITK/Git/Develop and let us know if you have any questions. Thanks, Matt On Thu, Jun 15, 2017 at 6:06 AM, Niels Dekker wrote: > Our project links to both ITK and the NiftyReg library (*), and thereby > indirectly to two different versions of the niftilib library that have the > same binary interface. To avoid potential link errors and unexpected > run-time behavior, could there be name mangling added to ITK's niftilib > version, at Modules/ThirdParty/NIFTI/src/nifty/niftilib? > > We would suggest an approach according to the existing ITK third party > name mangling practice, e.g., by "itk_png_mangle.h", and > "itk_zlib_mangle.h". > > We already have a patch for ITK within our project, SuperElastix, at > https://raw.githubusercontent.com/SuperElastix/SuperElastix/ > c94d65bef1b0fe368b194bbf4de8ccd505a873b0/SuperBuild/Patches/ > itk_nifti_mangle.patch > > Kind regards, also on behalf of Floris Berendsen, > > Niels > > (*) The NiftyReg library is from https://cmiclab.cs.ucl.ac.uk/m > modat/niftyreg > > -- > Niels Dekker > Scientific programmer > LKEB, Leiden University Medical Center, Netherlands > _______________________________________________ > 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://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-developers > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ 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://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-developers From matt.mccormick at kitware.com Thu Jun 15 07:42:59 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Thu, 15 Jun 2017 07:42:59 -0400 Subject: [ITK] [ITK-dev] Meeting on Friday Message-ID: Hi folks, I will not be able to host the meeting this Friday. Thanks, Matt -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ 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://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-developers From niels-xtk at xs4all.nl Thu Jun 15 08:57:18 2017 From: niels-xtk at xs4all.nl (Niels Dekker) Date: Thu, 15 Jun 2017 14:57:18 +0200 Subject: [ITK] [ITK-dev] Name mangling for niftilib (Modules/ThirdParty/NIFTI)? In-Reply-To: References: <9b3c34ff3738eeef160c0fe3f1a2fbba@xs4all.nl> Message-ID: Thanks for your encouraging reply, Matt! My colleague Floris Berendsen has just submitted the patch: COMP: add symbol name mangling for niftilib in ITK http://review.source.kitware.com/#/c/22450/ Kind regards, Niels Matt McCormick wrote on 2017-06-15: > Hi Neils, > > Yes, name mangling for nifti is welcome. Please contribute the patch > as described here: > > https://itk.org/Wiki/ITK/Git/Develop > > and let us know if you have any questions. > > Thanks, > Matt > > On Thu, Jun 15, 2017 at 6:06 AM, Niels Dekker > wrote: > >> Our project links to both ITK and the NiftyReg library (*), and >> thereby indirectly to two different versions of the niftilib library >> that have the same binary interface. To avoid potential link errors >> and unexpected run-time behavior, could there be name mangling added >> to ITK's niftilib version, at >> Modules/ThirdParty/NIFTI/src/nifty/niftilib? >> >> We would suggest an approach according to the existing ITK third >> party name mangling practice, e.g., by "itk_png_mangle.h", and >> "itk_zlib_mangle.h". >> >> We already have a patch for ITK within our project, SuperElastix, at >> > https://raw.githubusercontent.com/SuperElastix/SuperElastix/c94d65bef1b0fe368b194bbf4de8ccd505a873b0/SuperBuild/Patches/itk_nifti_mangle.patch >> [1] >> >> Kind regards, also on behalf of Floris , >> >> Niels >> >> (*) The NiftyReg library is from >> https://cmiclab.cs.ucl.ac.uk/mmodat/niftyreg [2] -- Niels Dekker Scientific programmer LKEB, Leiden University Medical Center, Netherlands _______________________________________________ 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://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-developers From marc.boucher88 at gmail.com Tue Jun 20 12:53:51 2017 From: marc.boucher88 at gmail.com (MAB12) Date: Tue, 20 Jun 2017 09:53:51 -0700 (MST) Subject: [ITK] [ITK-users] ITK MESH Message-ID: <1497977631780-38315.post@n7.nabble.com> Hi I have a binary mask, (segmentation result) and I convert it to a an itk::Mesh using BinaryMask3DMeshSource. I write the result into a byu Mesh after. The outcome is a byu Mesh file but that lost all spatial configuration and is far away in the spatial coordinate from my ground truth segmentation. The binary mask before was fine I used it to convert it manually with itk-SNAP. Any idea was is the problem or insight into how itk Mesh works? -- View this message in context: http://itk-users.7.n7.nabble.com/ITK-MESH-tp38315.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 matt.mccormick at kitware.com Tue Jun 20 13:12:19 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Tue, 20 Jun 2017 13:12:19 -0400 Subject: [ITK] [ITK-users] ITK MESH In-Reply-To: <1497977631780-38315.post@n7.nabble.com> References: <1497977631780-38315.post@n7.nabble.com> Message-ID: Hi, Points in the itk::Mesh are in physical coordinates. So, it is important that the metadata such as the Image Spacing and Origin are preserved, etc. For more information see the Mesh section of the ITK Software Guide [1] and the Image section [2]. Hope this helps, Matt [1] https://itk.org/ITKSoftwareGuide/html/Book1/ITKSoftwareGuide-Book1ch4.html#x38-620004.3 [2] https://itk.org/ITKSoftwareGuide/html/Book1/ITKSoftwareGuide-Book1ch4.html#x38-470004.1 On Tue, Jun 20, 2017 at 12:53 PM, MAB12 wrote: > Hi > > I have a binary mask, (segmentation result) and I convert it to a an > itk::Mesh using BinaryMask3DMeshSource. I write the result into a byu Mesh > after. The outcome is a byu Mesh file but that lost all spatial > configuration and is far away in the spatial coordinate from my ground > truth > segmentation. The binary mask before was fine I used it to convert it > manually with itk-SNAP. > > Any idea was is the problem or insight into how itk Mesh works? > > > > -- > View this message in context: http://itk-users.7.n7.nabble. > com/ITK-MESH-tp38315.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: -------------- next part -------------- _____________________________________ 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 marc.boucher88 at gmail.com Tue Jun 20 14:44:09 2017 From: marc.boucher88 at gmail.com (MAB12) Date: Tue, 20 Jun 2017 11:44:09 -0700 (MST) Subject: [ITK] [ITK-users] ITK MESH In-Reply-To: References: <1497977631780-38315.post@n7.nabble.com> Message-ID: <1497984249177-38317.post@n7.nabble.com> Hi Thank for response. Since I simply use the itk::BinaryMask3DMeshSource filter to convert to a mesh and I don't see parameters to set the spatial parameters I assumed it should be done automatically... I write the mesh into a byu format, is it possible that byu format is not well handle in itk? I saw a post saying that only vtk handle byu file... -- View this message in context: http://itk-users.7.n7.nabble.com/ITK-MESH-tp38315p38317.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 markus.gramer at kuleuven.be Wed Jun 21 02:48:34 2017 From: markus.gramer at kuleuven.be (Markus Gramer) Date: Wed, 21 Jun 2017 06:48:34 +0000 Subject: [ITK] Wrong RescaleIntercept (0028, 1052) when saving float images to DICOM? Message-ID: Hi there, I'm relatively new to ITK and DICOM so maybe I am misunderstanding something. I am trying to save a Nifti image in DICOM format using the meta information of a reference DICOM image. This works quite well for most of my images. However, I have some issues with images of data type float: When I try to save those images with the ImageSeriesFileWriter the DICOM tags for RescaleIntercept and RescaleSlope are set during writing (i.e. they got overwritten when I tried to set them manually before). It seems to me, however, that the intercept that is set should be still divided by the slope to follow the DICOM definition for those tags i.e. "IV = (slope*SV)+Intercept" to receive the image value (IV) from the stored value (SV). Currently it seems as if the intercept and slope are calculated for "IV=slope*(SV+intercept)". Could anyone verify this? Best, Markus PS: I am using ITK version 4.9. -------------- next part -------------- An HTML attachment was scrubbed... URL: From 438821082 at qq.com Wed Jun 21 04:44:17 2017 From: 438821082 at qq.com (Tendy Fang) Date: Wed, 21 Jun 2017 01:44:17 -0700 (MST) Subject: [ITK] [ITK-users] vnl_numeric_traits.h :Error C2413, C2510& FATAL error C1004 Message-ID: <1498034657374-38318.post@n7.nabble.com> I'm reeditting a series of old MFC codes based on ITK in my lab which was wrote in 2005 since there is some function that is useful for our lab's present work. I download ITK 1.6.0 (released in January,2004) , Cmake2.4 and VC6.0 to reappear the compile environment at that time since there are numerous errors built in VS2010 or using latest ITK package. In fact I've tried ITK package from 1.2.0 to 2.0.0 and the results tell there are least errors( 24 errors) when I use ITK 1.6.0 . But there are the errors of vnl_numeric_traits.h as referred in topic and they are also shown in pictures above. Part codes of vnl_numeric_traits.h are shown below. Has anyone faced the errors like this before ? I need your help. Best regards Tendy -- View this message in context: http://itk-users.7.n7.nabble.com/vnl-numeric-traits-h-Error-C2413-C2510-FATAL-error-C1004-tp38318.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 sg.ele.eng at gmail.com Wed Jun 21 10:19:12 2017 From: sg.ele.eng at gmail.com (Sara Gh) Date: Wed, 21 Jun 2017 10:19:12 -0400 Subject: [ITK] Problem with Writing Dicom Series Message-ID: Hello, I have a question regarding writing Dicom series using SimpleITK in Python. I read a 3D scan, resampled it, and stored it as a Dicom series. However, when I try to read the stored data, I am unable to load the whole 3D images and it only displays one of the slices. It seems that the header is corrupted. I would be thankful if someone could help me to fix this issue. Here is my write method: def WriteDicomSeries(imagein,outDir): writer = sitk.ImageSeriesWriter() filenames = [ outDir+'MR_{0:04}.dcm'.format(i) for i in range(imagein.GetSize()[2])] writer.SetFileNames(filenames) writer.Execute(imagein) Thanks, Sara -------------- next part -------------- An HTML attachment was scrubbed... URL: From zivrafael.yaniv at nih.gov Wed Jun 21 10:41:05 2017 From: zivrafael.yaniv at nih.gov (Yaniv, Ziv Rafael (NIH/NLM/LHC) [C]) Date: Wed, 21 Jun 2017 14:41:05 +0000 Subject: [ITK] Problem with Writing Dicom Series In-Reply-To: References: Message-ID: <66B6A67B-9D3C-467A-996E-E0C9C4DF79A5@mail.nih.gov> Hello Sara, Please take a look at this example on readthedocs (part of the Examples found in the SimpleITK source): http://simpleitk.readthedocs.io/en/latest/Examples/DicomSeriesReadModifyWrite/Documentation.html Writing a valid DICOM series which contains all of the tag information you need may be tricky, depending on the information you need to encode in the meta-data dictionary (private tags etc.). As a side note, the problem you have with the series writer is that it is writing each of the images into its own series. hope this helps Ziv From: Sara Gh Date: Wednesday, June 21, 2017 at 10:19 AM To: "community at itk.org" Subject: [ITK] Problem with Writing Dicom Series Hello, I have a question regarding writing Dicom series using SimpleITK in Python. I read a 3D scan, resampled it, and stored it as a Dicom series. However, when I try to read the stored data, I am unable to load the whole 3D images and it only displays one of the slices. It seems that the header is corrupted. I would be thankful if someone could help me to fix this issue. Here is my write method: def WriteDicomSeries(imagein,outDir): writer = sitk.ImageSeriesWriter() filenames = [ outDir+'MR_{0:04}.dcm'.format(i) for i in range(imagein.GetSize()[2])] writer.SetFileNames(filenames) writer.Execute(imagein) Thanks, Sara -------------- next part -------------- An HTML attachment was scrubbed... URL: From niels-xtk at xs4all.nl Thu Jun 22 10:18:52 2017 From: niels-xtk at xs4all.nl (Niels Dekker) Date: Thu, 22 Jun 2017 16:18:52 +0200 Subject: [ITK] [ITK-dev] #include leaking from itkNiftiImageIO.h into user code (+ 3 ways to fix it) Message-ID: <867edd4bd10c4814f84f03fe34560fdc@xs4all.nl> We're glad to see our niftilib-name-mangling patch made it into the master branch: https://github.com/InsightSoftwareConsortium/ITK/commit/370c3116d3edac3a3bc36e03e1b1b655df0f04af Now we do have another nifty ITK issue! itkNiftiImageIO.h has an '#include ', which leaks into user code: https://github.com/InsightSoftwareConsortium/ITK/blob/61e8029ef53e2d37cfa3c5bad999e582326e36ee/Modules/IO/NIFTI/include/itkNiftiImageIO.h#L26 Our project uses both ITK and the NiftyReg library, and thereby indirectly uses two different versions of the niftilib library, with different versions of , so we foresee potential conflicts in the current situation. itkNiftiImageIO.h only needs for its 'nifti_image' typedef, as it has a private member, itk::NiftiImageIO::m_NiftiImage of type 'nifti_image *'. So basically is just an implementation detail of itk::NiftiImageIO. It is not part of the public interface of the ITK class. Do you think it would be feasible to move '#include ' from itkNiftiImageIO.h to its CXX file, itkNiftiImageIO.cxx? We can think of three different ways to achieve this: 1. The void pointer approach: Declare itk::NiftiImageIO::m_NiftiImage as a 'void *', instead of 'nifti_image *', and cast m_NiftiImage to 'nifti_image *' within itkNiftiImageIO.cxx, whenever needed. I would expect more than 200 casts, doing static_cast< nifti_image *>(this->m_NiftiImage). 2. The Pimpl way : Move the declaration of m_NiftiImage, and possibly any other data member of itk::NiftiImageIO, from itkNiftiImageIO.h to itkNiftiImageIO.cxx, according to the Pimpl idiom http://wiki.c2.com/?PimplIdiom All access to these data members should then be adapted accordingly, so this would result in many modifications of existing code in itkNiftiImageIO.cxx. Optionally, private member function declarations could also be moved from itkNiftiImageIO.h to itkNiftiImageIO.cxx this way. It seems like a lot of work. 3. The proxy approach: Declare itk::NiftiImageIO::m_NiftiImage as a reference to a proxy, which behaves like a 'nifti_image *'. This way, no existing lines of code from itkNiftiImageIO.cxx would need to be changed, except for the initialization of m_NiftiImage. The proxy class should be forward-declared in itkNiftiImageIO.h, and defined in itkNiftiImageIO.cxx, for example as follows: class NiftiImageProxy { nifti_image* m_ptr; public: NiftiImageProxy(nifti_image* ptr) ; // Converts pointer to proxy. operator nifti_image*(); // Converts proxy to pointer. nifti_image* operator->(); }; We did fully implement and test the proxy approach, and we can make a patch, if you think that's an interesting option for ITK. What do you think? Kind regards, also on behalf of my colleague Floris Berendsen, Niels -- Niels Dekker Scientific programmer LKEB, Leiden University Medical Center, Netherlands _______________________________________________ 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://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-developers From blowekamp at mail.nih.gov Thu Jun 22 10:58:25 2017 From: blowekamp at mail.nih.gov (Lowekamp, Bradley (NIH/NLM/LHC) [C]) Date: Thu, 22 Jun 2017 14:58:25 +0000 Subject: [ITK] [ITK-dev] #include leaking from itkNiftiImageIO.h into user code (+ 3 ways to fix it) In-Reply-To: <867edd4bd10c4814f84f03fe34560fdc@xs4all.nl> References: <867edd4bd10c4814f84f03fe34560fdc@xs4all.nl> Message-ID: <72E5C1C6-555A-49DB-90E9-BF1487E07E16@mail.nih.gov> Hello, I looked into this a little the other day. I tried #2, but it did not work due to the way `nifty_image` is a typedef an anonymous structure. Your #3 approach looks good to me. I look forward to seeing the patch. You can also make ITKNIFTI a private dependency for the module by undoing the following: https://github.com/InsightSoftwareConsortium/ITK/commit/67e308fc8470c8119323a8954d53c777966c5ad5 On 6/22/17, 10:18 AM, "Niels Dekker" wrote: We're glad to see our niftilib-name-mangling patch made it into the master branch: https://github.com/InsightSoftwareConsortium/ITK/commit/370c3116d3edac3a3bc36e03e1b1b655df0f04af Now we do have another nifty ITK issue! itkNiftiImageIO.h has an '#include ', which leaks into user code: https://github.com/InsightSoftwareConsortium/ITK/blob/61e8029ef53e2d37cfa3c5bad999e582326e36ee/Modules/IO/NIFTI/include/itkNiftiImageIO.h#L26 Our project uses both ITK and the NiftyReg library, and thereby indirectly uses two different versions of the niftilib library, with different versions of , so we foresee potential conflicts in the current situation. itkNiftiImageIO.h only needs for its 'nifti_image' typedef, as it has a private member, itk::NiftiImageIO::m_NiftiImage of type 'nifti_image *'. So basically is just an implementation detail of itk::NiftiImageIO. It is not part of the public interface of the ITK class. Do you think it would be feasible to move '#include ' from itkNiftiImageIO.h to its CXX file, itkNiftiImageIO.cxx? We can think of three different ways to achieve this: 1. The void pointer approach: Declare itk::NiftiImageIO::m_NiftiImage as a 'void *', instead of 'nifti_image *', and cast m_NiftiImage to 'nifti_image *' within itkNiftiImageIO.cxx, whenever needed. I would expect more than 200 casts, doing static_cast< nifti_image *>(this->m_NiftiImage). 2. The Pimpl way : Move the declaration of m_NiftiImage, and possibly any other data member of itk::NiftiImageIO, from itkNiftiImageIO.h to itkNiftiImageIO.cxx, according to the Pimpl idiom http://wiki.c2.com/?PimplIdiom All access to these data members should then be adapted accordingly, so this would result in many modifications of existing code in itkNiftiImageIO.cxx. Optionally, private member function declarations could also be moved from itkNiftiImageIO.h to itkNiftiImageIO.cxx this way. It seems like a lot of work. 3. The proxy approach: Declare itk::NiftiImageIO::m_NiftiImage as a reference to a proxy, which behaves like a 'nifti_image *'. This way, no existing lines of code from itkNiftiImageIO.cxx would need to be changed, except for the initialization of m_NiftiImage. The proxy class should be forward-declared in itkNiftiImageIO.h, and defined in itkNiftiImageIO.cxx, for example as follows: class NiftiImageProxy { nifti_image* m_ptr; public: NiftiImageProxy(nifti_image* ptr) ; // Converts pointer to proxy. operator nifti_image*(); // Converts proxy to pointer. nifti_image* operator->(); }; We did fully implement and test the proxy approach, and we can make a patch, if you think that's an interesting option for ITK. What do you think? Kind regards, also on behalf of my colleague Floris Berendsen, Niels -- Niels Dekker Scientific programmer LKEB, Leiden University Medical Center, Netherlands _______________________________________________ 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://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-developers _______________________________________________ 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://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-developers From thanosxania at gmail.com Thu Jun 22 20:13:09 2017 From: thanosxania at gmail.com (thanos thanos) Date: Fri, 23 Jun 2017 02:13:09 +0200 Subject: [ITK] Conductance parameter on Curvature Anisotropic Diffusion Message-ID: Hello everyone, I am using the algorithm for Curvature Anisotropic Diffusion where it uses the algorithm from Whitaker MCDE. As it is also mentioned on the User's guide the conductance modified curvature term is the divergence of the normalized gradient. (I also had a look on the original paper) So, as far as I understand the conductance, which is the curvature of the level set, is defined by the image. Then why do we have to set the value of the parameter in order to run the example? Please forgive me if I understood something wrong. Looking forward for your answers! Best regards, Thanos -------------- next part -------------- An HTML attachment was scrubbed... URL: From thanosxania at gmail.com Fri Jun 23 05:31:13 2017 From: thanosxania at gmail.com (Thanos) Date: Fri, 23 Jun 2017 02:31:13 -0700 (MST) Subject: [ITK] [ITK-users] Conductance parameter on CurvatureAnisotropicDiffusion Filtering Message-ID: <1498210273594-38319.post@n7.nabble.com> Hello everyone, I am using the algorithm for Curvature Anisotropic Diffusion where it uses the algorithm from Whitaker MCDE. As it is also mentioned on the User's guide the conductance modified curvature term is the divergence of the normalized gradient. (I also had a look on the original paper) So, as far as I understand the conductance, which is the curvature of the level set, is defined by the level set function and therefore the image. Then why do we have to set the value of the parameter in order to run the example? Please forgive me if I understood something wrong. Looking forward for your answers! Best regards, Thanos -- View this message in context: http://itk-users.7.n7.nabble.com/Conductance-parameter-on-CurvatureAnisotropicDiffusion-Filtering-tp38319.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 niels-xtk at xs4all.nl Fri Jun 23 11:05:15 2017 From: niels-xtk at xs4all.nl (Niels Dekker) Date: Fri, 23 Jun 2017 17:05:15 +0200 Subject: [ITK] [ITK-dev] #include leaking from itkNiftiImageIO.h into user code (+ 3 ways to fix it) In-Reply-To: <72E5C1C6-555A-49DB-90E9-BF1487E07E16@mail.nih.gov> References: <867edd4bd10c4814f84f03fe34560fdc@xs4all.nl> <72E5C1C6-555A-49DB-90E9-BF1487E07E16@mail.nih.gov> Message-ID: <86ce78052ac7c56dbaba332b8464f69f@xs4all.nl> Hi Bradley, Thank you for your encouraging feedback :-) Please have a look at our proxy based fix: "COMP: Fixed leak into user code", http://review.source.kitware.com/#/c/22461/ Kind regards, Niels On 2017-06-22 16:58, Lowekamp, Bradley (NIH/NLM/LHC) [C] wrote: > Hello, > > I looked into this a little the other day. I tried #2, but it did not > work due to the way `nifty_image` is a typedef an anonymous structure. > > Your #3 approach looks good to me. I look forward to seeing the patch. > > You can also make ITKNIFTI a private dependency for the module by > undoing the following: > https://github.com/InsightSoftwareConsortium/ITK/commit/67e308fc8470c8119323a8954d53c777966c5ad5 > > > On 6/22/17, 10:18 AM, "Niels Dekker" wrote: > > We're glad to see our niftilib-name-mangling patch made it into the > master branch: > > https://github.com/InsightSoftwareConsortium/ITK/commit/370c3116d3edac3a3bc36e03e1b1b655df0f04af > > Now we do have another nifty ITK issue! itkNiftiImageIO.h has an > '#include ', which leaks into user code: > > https://github.com/InsightSoftwareConsortium/ITK/blob/61e8029ef53e2d37cfa3c5bad999e582326e36ee/Modules/IO/NIFTI/include/itkNiftiImageIO.h#L26 > Our project uses both ITK and the NiftyReg library, and thereby > indirectly uses two different versions of the niftilib library, > with > different versions of , so we foresee potential > conflicts > in the current situation. itkNiftiImageIO.h only needs > for > its 'nifti_image' typedef, as it has a private member, > itk::NiftiImageIO::m_NiftiImage of type 'nifti_image *'. So > basically > is just an implementation detail of > itk::NiftiImageIO. It > is not part of the public interface of the ITK class. > > Do you think it would be feasible to move '#include ' > from > itkNiftiImageIO.h to its CXX file, itkNiftiImageIO.cxx? > > We can think of three different ways to achieve this: > > 1. The void pointer approach: Declare > itk::NiftiImageIO::m_NiftiImage > as a 'void *', instead of 'nifti_image *', and cast m_NiftiImage to > 'nifti_image *' within itkNiftiImageIO.cxx, whenever needed. I > would > expect more than 200 casts, doing static_cast< nifti_image > *>(this->m_NiftiImage). > > 2. The Pimpl way : Move the declaration of m_NiftiImage, and > possibly > any other data member of itk::NiftiImageIO, from itkNiftiImageIO.h > to > itkNiftiImageIO.cxx, according to the Pimpl idiom > http://wiki.c2.com/?PimplIdiom All access to these data members > should > then be adapted accordingly, so this would result in many > modifications > of existing code in itkNiftiImageIO.cxx. Optionally, private member > function declarations could also be moved from itkNiftiImageIO.h to > itkNiftiImageIO.cxx this way. It seems like a lot of work. > > 3. The proxy approach: Declare itk::NiftiImageIO::m_NiftiImage as > a > reference to a proxy, which behaves like a 'nifti_image *'. This > way, no > existing lines of code from itkNiftiImageIO.cxx would need to be > changed, except for the initialization of m_NiftiImage. The proxy > class > should be forward-declared in itkNiftiImageIO.h, and defined in > itkNiftiImageIO.cxx, for example as follows: > > class NiftiImageProxy > { > nifti_image* m_ptr; > public: > NiftiImageProxy(nifti_image* ptr) ; // Converts pointer to > proxy. > operator nifti_image*(); // Converts proxy to pointer. > nifti_image* operator->(); > }; > > We did fully implement and test the proxy approach, and we can make > a > patch, if you think that's an interesting option for ITK. What do > you > think? > > Kind regards, also on behalf of my colleague Floris Berendsen, > > Niels -- Niels Dekker Scientific programmer LKEB, Leiden University Medical Center, Netherlands _______________________________________________ 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://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-developers From sg.ele.eng at gmail.com Fri Jun 23 11:47:12 2017 From: sg.ele.eng at gmail.com (Sara Gh) Date: Fri, 23 Jun 2017 11:47:12 -0400 Subject: [ITK] Problem with Writing Dicom Series In-Reply-To: <66B6A67B-9D3C-467A-996E-E0C9C4DF79A5@mail.nih.gov> References: <66B6A67B-9D3C-467A-996E-E0C9C4DF79A5@mail.nih.gov> Message-ID: Dear Ziv, Thank you for your reply. I tried the sample code; however, I am getting below error: 'ImageSeriesReader' object has no attribute 'MetaDataDictionaryArrayUpdateOn'. Do you know how I should fix that? I have installed SimpleITK using python binary package for the Anaconda and currently, its version is simpleitk 1.0.0-py27_0. Sincerely, Sara On Wed, Jun 21, 2017 at 10:41 AM, Yaniv, Ziv Rafael (NIH/NLM/LHC) [C] < zivrafael.yaniv at nih.gov> wrote: > Hello Sara, > > > > Please take a look at this example on readthedocs (part of the Examples > found in the SimpleITK source): > > http://simpleitk.readthedocs.io/en/latest/Examples/ > DicomSeriesReadModifyWrite/Documentation.html > > > > Writing a valid DICOM series which contains all of the tag information you > need may be tricky, depending on the information you need to encode in the > meta-data dictionary (private tags etc.). > > > > As a side note, the problem you have with the series writer is that it is > writing each of the images into its own series. > > > > hope this helps > > Ziv > > > > *From: *Sara Gh > *Date: *Wednesday, June 21, 2017 at 10:19 AM > *To: *"community at itk.org" > *Subject: *[ITK] Problem with Writing Dicom Series > > > > Hello, > > > > I have a question regarding writing Dicom series using SimpleITK in > Python. I read a 3D scan, resampled it, and stored it as a Dicom series. > However, when I try to read the stored data, I am unable to load the whole > 3D images and it only displays one of the slices. It seems that the header > is corrupted. I would be thankful if someone could help me to fix this > issue. > > > > Here is my write method: > > > > def WriteDicomSeries(imagein,outDir): > > writer = sitk.ImageSeriesWriter() > > filenames = [ outDir+'MR_{0:04}.dcm'.format(i) for i in > range(imagein.GetSize()[2])] > > writer.SetFileNames(filenames) > > writer.Execute(imagein) > > > > Thanks, > > Sara > -------------- next part -------------- An HTML attachment was scrubbed... URL: From zivrafael.yaniv at nih.gov Fri Jun 23 11:57:46 2017 From: zivrafael.yaniv at nih.gov (Yaniv, Ziv Rafael (NIH/NLM/LHC) [C]) Date: Fri, 23 Jun 2017 15:57:46 +0000 Subject: [ITK] Problem with Writing Dicom Series In-Reply-To: References: <66B6A67B-9D3C-467A-996E-E0C9C4DF79A5@mail.nih.gov> Message-ID: <61FE8BD4-4CF7-44E1-9DCE-97C3F2591AC3@mail.nih.gov> Hello Sara, As you correctly identified, the problem is with the version of SimpleITK. The addition of the meta-data dictionaries to the series reader was done after the release of version 1.0.0. As an immediate solution, you will need to build SimpleITK yourself. For Anaconda we have a build recipe on github: https://github.com/SimpleITK/SimpleITKCondaRecipe#process Please follow the detailed instructions there (read all of the instructions before you start the build as you will need to change the version of SimpleITK you are building, currently set to 1.0.0 and you need master). regards Ziv From: Sara Gh Date: Friday, June 23, 2017 at 11:47 AM To: "Yaniv, Ziv Rafael (NIH/NLM/LHC) [C]" Cc: "community at itk.org" Subject: Re: [ITK] Problem with Writing Dicom Series Dear Ziv, Thank you for your reply. I tried the sample code; however, I am getting below error: 'ImageSeriesReader' object has no attribute 'MetaDataDictionaryArrayUpdateOn'. Do you know how I should fix that? I have installed SimpleITK using python binary package for the Anaconda and currently, its version is simpleitk 1.0.0-py27_0. Sincerely, Sara On Wed, Jun 21, 2017 at 10:41 AM, Yaniv, Ziv Rafael (NIH/NLM/LHC) [C] > wrote: Hello Sara, Please take a look at this example on readthedocs (part of the Examples found in the SimpleITK source): http://simpleitk.readthedocs.io/en/latest/Examples/DicomSeriesReadModifyWrite/Documentation.html Writing a valid DICOM series which contains all of the tag information you need may be tricky, depending on the information you need to encode in the meta-data dictionary (private tags etc.). As a side note, the problem you have with the series writer is that it is writing each of the images into its own series. hope this helps Ziv From: Sara Gh > Date: Wednesday, June 21, 2017 at 10:19 AM To: "community at itk.org" > Subject: [ITK] Problem with Writing Dicom Series Hello, I have a question regarding writing Dicom series using SimpleITK in Python. I read a 3D scan, resampled it, and stored it as a Dicom series. However, when I try to read the stored data, I am unable to load the whole 3D images and it only displays one of the slices. It seems that the header is corrupted. I would be thankful if someone could help me to fix this issue. Here is my write method: def WriteDicomSeries(imagein,outDir): writer = sitk.ImageSeriesWriter() filenames = [ outDir+'MR_{0:04}.dcm'.format(i) for i in range(imagein.GetSize()[2])] writer.SetFileNames(filenames) writer.Execute(imagein) Thanks, Sara -------------- next part -------------- An HTML attachment was scrubbed... URL: From sg.ele.eng at gmail.com Fri Jun 23 14:18:47 2017 From: sg.ele.eng at gmail.com (Sara Gh) Date: Fri, 23 Jun 2017 14:18:47 -0400 Subject: [ITK] Problem with Writing Dicom Series In-Reply-To: <61FE8BD4-4CF7-44E1-9DCE-97C3F2591AC3@mail.nih.gov> References: <66B6A67B-9D3C-467A-996E-E0C9C4DF79A5@mail.nih.gov> <61FE8BD4-4CF7-44E1-9DCE-97C3F2591AC3@mail.nih.gov> Message-ID: Dear Ziv, Thank you for your reply. Should I change the version of SimpleITK to 1.1.0 or 1.0.0? Thanks, Sara On Fri, Jun 23, 2017 at 11:57 AM, Yaniv, Ziv Rafael (NIH/NLM/LHC) [C] < zivrafael.yaniv at nih.gov> wrote: > Hello Sara, > > > > As you correctly identified, the problem is with the version of SimpleITK. > The addition of the meta-data dictionaries to the series reader was done > after the release of version 1.0.0. > > > > As an immediate solution, you will need to build SimpleITK yourself. For > Anaconda we have a build recipe on github: https://github.com/SimpleITK/ > SimpleITKCondaRecipe#process > > > > Please follow the detailed instructions there (read all of the > instructions before you start the build as you will need to change the > version of SimpleITK you are building, currently set to 1.0.0 and you need > master). > > regards > > Ziv > > > > *From: *Sara Gh > *Date: *Friday, June 23, 2017 at 11:47 AM > *To: *"Yaniv, Ziv Rafael (NIH/NLM/LHC) [C]" > *Cc: *"community at itk.org" > *Subject: *Re: [ITK] Problem with Writing Dicom Series > > > > Dear Ziv, > > > > Thank you for your reply. > > > > I tried the sample code; however, I am getting below error: > > 'ImageSeriesReader' object has no attribute ' > MetaDataDictionaryArrayUpdateOn'. Do you know how I should fix that? I > have installed SimpleITK using python binary package for the Anaconda and > currently, its version is simpleitk 1.0.0-py27_0. > > > > Sincerely, > > Sara > > > > > > On Wed, Jun 21, 2017 at 10:41 AM, Yaniv, Ziv Rafael (NIH/NLM/LHC) [C] < > zivrafael.yaniv at nih.gov> wrote: > > Hello Sara, > > > > Please take a look at this example on readthedocs (part of the Examples > found in the SimpleITK source): > > http://simpleitk.readthedocs.io/en/latest/Examples/ > DicomSeriesReadModifyWrite/Documentation.html > > > > Writing a valid DICOM series which contains all of the tag information you > need may be tricky, depending on the information you need to encode in the > meta-data dictionary (private tags etc.). > > > > As a side note, the problem you have with the series writer is that it is > writing each of the images into its own series. > > > > hope this helps > > Ziv > > > > *From: *Sara Gh > *Date: *Wednesday, June 21, 2017 at 10:19 AM > *To: *"community at itk.org" > *Subject: *[ITK] Problem with Writing Dicom Series > > > > Hello, > > > > I have a question regarding writing Dicom series using SimpleITK in > Python. I read a 3D scan, resampled it, and stored it as a Dicom series. > However, when I try to read the stored data, I am unable to load the whole > 3D images and it only displays one of the slices. It seems that the header > is corrupted. I would be thankful if someone could help me to fix this > issue. > > > > Here is my write method: > > > > def WriteDicomSeries(imagein,outDir): > > writer = sitk.ImageSeriesWriter() > > filenames = [ outDir+'MR_{0:04}.dcm'.format(i) for i in > range(imagein.GetSize()[2])] > > writer.SetFileNames(filenames) > > writer.Execute(imagein) > > > > Thanks, > > Sara > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From zivrafael.yaniv at nih.gov Fri Jun 23 14:36:35 2017 From: zivrafael.yaniv at nih.gov (Yaniv, Ziv Rafael (NIH/NLM/LHC) [C]) Date: Fri, 23 Jun 2017 18:36:35 +0000 Subject: [ITK] Problem with Writing Dicom Series In-Reply-To: References: <66B6A67B-9D3C-467A-996E-E0C9C4DF79A5@mail.nih.gov> <61FE8BD4-4CF7-44E1-9DCE-97C3F2591AC3@mail.nih.gov> Message-ID: <65C7C55B-1011-4ADF-81AF-B53C00970D77@mail.nih.gov> For the latest stable version of SimpleITK the easiest thing to do is to set the following in the meta.yaml file: git_tag: master version: ?master? regards Ziv From: Sara Gh Date: Friday, June 23, 2017 at 2:18 PM To: "Yaniv, Ziv Rafael (NIH/NLM/LHC) [C]" Cc: "community at itk.org" Subject: Re: [ITK] Problem with Writing Dicom Series Dear Ziv, Thank you for your reply. Should I change the version of SimpleITK to 1.1.0 or 1.0.0? Thanks, Sara On Fri, Jun 23, 2017 at 11:57 AM, Yaniv, Ziv Rafael (NIH/NLM/LHC) [C] > wrote: Hello Sara, As you correctly identified, the problem is with the version of SimpleITK. The addition of the meta-data dictionaries to the series reader was done after the release of version 1.0.0. As an immediate solution, you will need to build SimpleITK yourself. For Anaconda we have a build recipe on github: https://github.com/SimpleITK/SimpleITKCondaRecipe#process Please follow the detailed instructions there (read all of the instructions before you start the build as you will need to change the version of SimpleITK you are building, currently set to 1.0.0 and you need master). regards Ziv From: Sara Gh > Date: Friday, June 23, 2017 at 11:47 AM To: "Yaniv, Ziv Rafael (NIH/NLM/LHC) [C]" > Cc: "community at itk.org" > Subject: Re: [ITK] Problem with Writing Dicom Series Dear Ziv, Thank you for your reply. I tried the sample code; however, I am getting below error: 'ImageSeriesReader' object has no attribute 'MetaDataDictionaryArrayUpdateOn'. Do you know how I should fix that? I have installed SimpleITK using python binary package for the Anaconda and currently, its version is simpleitk 1.0.0-py27_0. Sincerely, Sara On Wed, Jun 21, 2017 at 10:41 AM, Yaniv, Ziv Rafael (NIH/NLM/LHC) [C] > wrote: Hello Sara, Please take a look at this example on readthedocs (part of the Examples found in the SimpleITK source): http://simpleitk.readthedocs.io/en/latest/Examples/DicomSeriesReadModifyWrite/Documentation.html Writing a valid DICOM series which contains all of the tag information you need may be tricky, depending on the information you need to encode in the meta-data dictionary (private tags etc.). As a side note, the problem you have with the series writer is that it is writing each of the images into its own series. hope this helps Ziv From: Sara Gh > Date: Wednesday, June 21, 2017 at 10:19 AM To: "community at itk.org" > Subject: [ITK] Problem with Writing Dicom Series Hello, I have a question regarding writing Dicom series using SimpleITK in Python. I read a 3D scan, resampled it, and stored it as a Dicom series. However, when I try to read the stored data, I am unable to load the whole 3D images and it only displays one of the slices. It seems that the header is corrupted. I would be thankful if someone could help me to fix this issue. Here is my write method: def WriteDicomSeries(imagein,outDir): writer = sitk.ImageSeriesWriter() filenames = [ outDir+'MR_{0:04}.dcm'.format(i) for i in range(imagein.GetSize()[2])] writer.SetFileNames(filenames) writer.Execute(imagein) Thanks, Sara -------------- next part -------------- An HTML attachment was scrubbed... URL: From 787aditi at gmail.com Sat Jun 24 10:31:12 2017 From: 787aditi at gmail.com (mojo_jojo) Date: Sat, 24 Jun 2017 07:31:12 -0700 (MST) Subject: [ITK] [ITK-users] CUDA 7.5 compatibility with ITK 4.11.0 Message-ID: <1498314672496-7590021.post@n2.nabble.com> Hello, I am trying to optimize some image processes in ITK, using CUDA. I am using ITK 4.11.0, built using gcc 4.9, and CUDA version 7.5 for the purpose. I ended up getting a build error. Also I couldn't find anything much about direct CUDA version and ITK version compatibility. I built the ITK and CUDA using same gcc version successfully, and they work well separately. It will be great if I could get some help with this. Thanks. -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/CUDA-7-5-compatibility-with-ITK-4-11-0-tp7590021.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 goretzki.imre at gmail.com Sat Jun 24 11:08:37 2017 From: goretzki.imre at gmail.com (Imre Goretzki) Date: Sat, 24 Jun 2017 17:08:37 +0200 Subject: [ITK] [ITK-users] CUDA 7.5 compatibility with ITK 4.11.0 In-Reply-To: <1498314672496-7590021.post@n2.nabble.com> References: <1498314672496-7590021.post@n2.nabble.com> Message-ID: <8bfdb0cb-9f07-a2e2-7ea8-fe1f378049dc@gmail.com> Hey, if you post the build error, someone may exactly help with your problem instead of just guessing :) Greetings On 24.06.2017 16:31, mojo_jojo wrote: > Hello, > > I am trying to optimize some image processes in ITK, using CUDA. I am using > ITK 4.11.0, built using gcc 4.9, and CUDA version 7.5 for the purpose. > I ended up getting a build error. Also I couldn't find anything much about > direct CUDA version and ITK version compatibility. I built the ITK and CUDA > using same gcc version successfully, and they work well separately. > > It will be great if I could get some help with this. > > Thanks. > > > > > -- > View this message in context: http://itk-insight-users.2283740.n2.nabble.com/CUDA-7-5-compatibility-with-ITK-4-11-0-tp7590021.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 > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > > --- > Diese E-Mail wurde von AVG auf Viren gepr??ft. > http://www.avg.com > From matt.mccormick at kitware.com Sat Jun 24 19:09:10 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Sat, 24 Jun 2017 19:09:10 -0400 Subject: [ITK] [ITK-dev] Gerrit is Down Message-ID: Hi folks, Our Gerrit instance is currently offline. I will follow-up when we get it online again. Thanks, Matt -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ 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://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-developers From matt.mccormick at kitware.com Sat Jun 24 22:06:50 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Sat, 24 Jun 2017 22:06:50 -0400 Subject: [ITK] [ITK-dev] Gerrit is Down In-Reply-To: References: Message-ID: Gerrit is now back online. - M On Sat, Jun 24, 2017 at 7:09 PM, Matt McCormick wrote: > Hi folks, > > Our Gerrit instance is currently offline. I will follow-up when we get it > online again. > > Thanks, > Matt > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ 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://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-developers From andx_roo at live.com Mon Jun 26 12:39:02 2017 From: andx_roo at live.com (Andaharoo) Date: Mon, 26 Jun 2017 09:39:02 -0700 (MST) Subject: [ITK] [ITK-users] Recentering Output of fast marching Message-ID: <1498495142874-7590022.post@n2.nabble.com> I've been using the fast marching filter to segment out a particular piece of a 3d image and now I would like to recenter this segmented part. Sometimes the segmented part can be at the edge of the image which makes it hard to rotate since it will only rotate around the center. I tried using fast marchings getOutputOrigin but that doesn't do what I had hoped it would do. If I were to write it would go something along the lines of this with a binary image: for every pixel if the pixel is 1 if the pixels x val is greater than maxX maxX = the pixels x val if the pixels x val is smaller than minX minX = the pixels x val Do the same with the y and z and mins Then after getting the extents I coudl just do (minX + maxX) / 2, (minY + maxY) / 2, (minZ + maxZ) / 2 -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/Recentering-Output-of-fast-marching-tp7590022.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 Mon Jun 26 13:03:52 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Mon, 26 Jun 2017 13:03:52 -0400 Subject: [ITK] [ITK-users] Recentering Output of fast marching In-Reply-To: <1498495142874-7590022.post@n2.nabble.com> References: <1498495142874-7590022.post@n2.nabble.com> Message-ID: Hi, This example shows how to find the bounding box of a binary image: https://itk.org/Insight/Doxygen/html/Examples_2SpatialObjects_2BoundingBoxFromImageMaskSpatialObject_8cxx-example.html Hope this helps, Matt On Mon, Jun 26, 2017 at 12:39 PM, Andaharoo wrote: > I've been using the fast marching filter to segment out a particular piece of > a 3d image and now I would like to recenter this segmented part. Sometimes > the segmented part can be at the edge of the image which makes it hard to > rotate since it will only rotate around the center. I tried using fast > marchings getOutputOrigin but that doesn't do what I had hoped it would do. > If I were to write it would go something along the lines of this with a > binary image: > for every pixel > if the pixel is 1 > if the pixels x val is greater than maxX > maxX = the pixels x val > if the pixels x val is smaller than minX > minX = the pixels x val > Do the same with the y and z and mins > Then after getting the extents I coudl just do (minX + maxX) / 2, (minY + > maxY) / 2, (minZ + maxZ) / 2 > > > > -- > View this message in context: http://itk-insight-users.2283740.n2.nabble.com/Recentering-Output-of-fast-marching-tp7590022.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 blowekamp at mail.nih.gov Mon Jun 26 13:06:13 2017 From: blowekamp at mail.nih.gov (Lowekamp, Bradley (NIH/NLM/LHC) [C]) Date: Mon, 26 Jun 2017 17:06:13 +0000 Subject: [ITK] [ITK-users] Recentering Output of fast marching In-Reply-To: <1498495142874-7590022.post@n2.nabble.com> References: <1498495142874-7590022.post@n2.nabble.com> Message-ID: <251F3CA8-2958-4F1D-9340-55D90492FBD6@mail.nih.gov> Hello, Have you looked at the LabelImageStatisticsImageFilter[1]? This should compute what you describe. The ?GetRegion? methods returns a bounding ImageRegion, for a given label. In your case this would be for the label 1. Brad [1]https://itk.org/Doxygen/html/classitk_1_1LabelStatisticsImageFilter.html#aa0de894e901cf64495f5690f77b73efb On 6/26/17, 12:39 PM, "Andaharoo" wrote: I've been using the fast marching filter to segment out a particular piece of a 3d image and now I would like to recenter this segmented part. Sometimes the segmented part can be at the edge of the image which makes it hard to rotate since it will only rotate around the center. I tried using fast marchings getOutputOrigin but that doesn't do what I had hoped it would do. If I were to write it would go something along the lines of this with a binary image: for every pixel if the pixel is 1 if the pixels x val is greater than maxX maxX = the pixels x val if the pixels x val is smaller than minX minX = the pixels x val Do the same with the y and z and mins Then after getting the extents I coudl just do (minX + maxX) / 2, (minY + maxY) / 2, (minZ + maxZ) / 2 -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/Recentering-Output-of-fast-marching-tp7590022.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 matt.mccormick at kitware.com Mon Jun 26 13:11:03 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Mon, 26 Jun 2017 13:11:03 -0400 Subject: [ITK] [ITK-users] Conductance parameter on CurvatureAnisotropicDiffusion Filtering In-Reply-To: <1498210273594-38319.post@n7.nabble.com> References: <1498210273594-38319.post@n7.nabble.com> Message-ID: Hello Thanos, The Conductance parameter is a global scalar that controls the sensitivity to the conductance term in the level set evolution equation. For more information, see the Doxygen pages: - https://itk.org/Doxygen/html/classitk_1_1AnisotropicDiffusionFunction.html - https://itk.org/Insight/Doxygen/html/classitk_1_1AnisotropicDiffusionImageFilter.html#a14a5b3acabcd97c07645750bb735e251 - https://itk.org/Insight/Doxygen/html/classitk_1_1CurvatureAnisotropicDiffusionImageFilter.html Hope this helps, Matt On Fri, Jun 23, 2017 at 5:31 AM, Thanos wrote: > Hello everyone, > > I am using the algorithm for Curvature Anisotropic Diffusion where it uses > the algorithm from Whitaker MCDE. As it is also mentioned on the User's > guide the conductance modified curvature term is the divergence of the > normalized gradient. (I also had a look on the original paper) So, as far as > I understand the conductance, which is the curvature of the level set, is > defined by the level set function and therefore the image. Then why do we > have to set the value of the parameter in order to run the example? > Please forgive me if I understood something wrong. > Looking forward for your answers! > > Best regards, > Thanos > > > > -- > View this message in context: http://itk-users.7.n7.nabble.com/Conductance-parameter-on-CurvatureAnisotropicDiffusion-Filtering-tp38319.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 _____________________________________ 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 Mon Jun 26 13:25:50 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Mon, 26 Jun 2017 13:25:50 -0400 Subject: [ITK] Wrong RescaleIntercept (0028, 1052) when saving float images to DICOM? In-Reply-To: References: Message-ID: Hi Markus, DICOM support for float pixel type images is limited, so it recommended to cast to short or unsigned short with itk::RescaleIntensityImageFilter. Care needs to be taken or RescaleIntercept and RescaleSlope. In general, upgrading to the latest ITK is a good idea. DICOM writing improvements are planned on this repository: https://github.com/KitwareMedical/ITKDICOM Thanks, Matt On Wed, Jun 21, 2017 at 2:48 AM, Markus Gramer wrote: > Hi there, > > I'm relatively new to ITK and DICOM so maybe I am misunderstanding > something. > > I am trying to save a Nifti image in DICOM format using the meta information > of a reference DICOM image. This works quite well for most of my images. > However, I have some issues with images of data type float: When I try to > save those images with the ImageSeriesFileWriter the DICOM tags for > RescaleIntercept and RescaleSlope are set during writing (i.e. they got > overwritten when I tried to set them manually before). It seems to me, > however, that the intercept that is set should be still divided by the slope > to follow the DICOM definition for those tags i.e. "IV = > (slope*SV)+Intercept" to receive the image value (IV) from the stored value > (SV). Currently it seems as if the intercept and slope are calculated for > "IV=slope*(SV+intercept)". > > Could anyone verify this? > > Best, > > Markus > > PS: I am using ITK version 4.9. > > > > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > From matt.mccormick at kitware.com Mon Jun 26 13:49:02 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Mon, 26 Jun 2017 13:49:02 -0400 Subject: [ITK] [ANN] Binary ITK Python Packages now available on PyPI! Message-ID: Hi folks, Binary Python wheels are now available on PyPI for Linux, MacOS, and Windows, for Python 2.7 and the recent Python 3.X. These binary wheels are built to be compatible with Python distributions from Python.org, system package managers like apt and Homebrew, and Anaconda. When a binary package is not available for the current platform, an sdist is provided that will guide a researcher through the steps to build the packages from source code. To install ITK from the command line, run: python -m pip install --upgrade pip python -m pip install itk The itk metapackage will pull in the subpackages itk-segmentation, itk-registration, itk-numerics, itk-io, itk-filtering, and itk-core. These packages can also be installed independently if only a portion of the toolkit is desired. Enjoy ITK! From Gordian.Kabelitz at medma.uni-heidelberg.de Wed Jun 28 09:51:41 2017 From: Gordian.Kabelitz at medma.uni-heidelberg.de (Kabelitz, Gordian) Date: Wed, 28 Jun 2017 13:51:41 +0000 Subject: [ITK] [ITK-users] Writing from an external buffer to VectorImage Message-ID: <81be8e27dd684f54944a7ff7b0d67c42@exch06.ad.uni-heidelberg.de> Hello, i computed a gradient with my own function and as a result a pointer to an image buffer is provided. I know the size, origin and spacing of the gradient component image. I want to copy the gradient image into an itk::VectorImage with the components for the x,y,z gradients. The way I copied the image to the GPU is that I retrieved the buffer pointer from my input image and use the pointer to copy the image data to the GPU. I used the way proposed in [1]. The computeGradientImage method is listed at the end of this mail. [...] // get float pointer to image data ImageType::Pointer image = reader->GetOutput(); Image->Update(); float* data = image.GetBufferPointer(); // copy image data to GPU texture memory (this works) gpu_dev->setVoxels(dimension, voxelSize, data); [...] computeGradientImage<<>> (dev_gradientImage, dimension); // copy resulting gradientImage to host variable float4* host_gradientImage; cudaMemcpy(host_gradient, dev_gradientImage, numberOfVoxels*sizeof(float4)); --> Pseudo Code <-- // Now I want to reverse the copy process. I have a float4 image and want to copy this into a itk::VectorImage with VariableVectorLength of 3 (skipping the magnitude value). [...] -> size, spacing, origin, region definition Itk::VectorImageType vecImage = VectorImageType::New(); vecImage->setRegion(region); vecImage ->SetVectorLength(3); vecImage->Allocate(); // copy image buffer to vecImage, component by component auto vecBuffer = vecImage->getBufferPointer(); auto j = 0; for (i=0; i References: <81be8e27dd684f54944a7ff7b0d67c42@exch06.ad.uni-heidelberg.de> Message-ID: Hi Gordian, this approach looks like it should work. What is wrong with it? Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Wed, Jun 28, 2017 at 9:51 AM, Kabelitz, Gordian < Gordian.Kabelitz at medma.uni-heidelberg.de> wrote: > Hello, > > i computed a gradient with my own function and as a result a pointer to an > image buffer is provided. I know the size, origin and spacing of the > gradient component image. > I want to copy the gradient image into an itk::VectorImage with the > components for the x,y,z gradients. > > The way I copied the image to the GPU is that I retrieved the buffer > pointer from my input image and use the pointer to copy the image data to > the GPU. > I used the way proposed in [1]. The computeGradientImage method is listed > at the end of this mail. > > [...] > // get float pointer to image data > ImageType::Pointer image = reader->GetOutput(); > Image->Update(); > > float* data = image.GetBufferPointer(); > // copy image data to GPU texture memory (this works) > gpu_dev->setVoxels(dimension, voxelSize, data); > [...] > computeGradientImage<<>> (dev_gradientImage, dimension); > > // copy resulting gradientImage to host variable > float4* host_gradientImage; > cudaMemcpy(host_gradient, dev_gradientImage, numberOfVoxels*sizeof(float4)) > ; > > --> Pseudo Code <-- > // Now I want to reverse the copy process. I have a float4 image and want > to copy this into a itk::VectorImage with VariableVectorLength of 3 > (skipping the magnitude value). > [...] -> size, spacing, origin, region definition > Itk::VectorImageType vecImage = VectorImageType::New(); > vecImage->setRegion(region); > vecImage ->SetVectorLength(3); > vecImage->Allocate(); > > // copy image buffer to vecImage, component by component > auto vecBuffer = vecImage->getBufferPointer(); > auto j = 0; > for (i=0; i { > vecbuffer[j] = host_gradient[i].x; j++; > vecbuffer[j] = host_gradient[i].y; j++; > vecbuffer[j] = host_gradient[i].z; j++; > } > > // save vecImage as nrrd image > [...] > > I haven't found a way to achieve my idea. > Are there any suggestions or examples? > As far I can see I cannot use the itk::ImportImageFilter. > > Thank you for any suggestions. > With kind regards, > Gordian > > [1]: https://itk.org/CourseWare/Training/GettingStarted-V.pdf > > void computeGradientImage(float4* gradientImage, int* dimension) > { > // every thread computes the float4 voxel with theta,phi,magnitude > from gradient image > int idx = blockIdx.x * blockDim.x + threadIdx.x; > int idy = blockIdx.y * blockDim.y + threadIdx.y; > int idz = blockIdx.z * blockDim.z + threadIdx.z; > > if (idx < dimension[0] && idy < dimension[1] && idz < dimension[2]) > { > // define sobel filter for each direction > [...] > > // run sobel on image in texture memory for each direction > and put result into a float4 image > gradientImage[idx + dimension[0] * (idy + idz * > dimension[1])] = make_float4(sobelX, sobelY, sobelZ, magn); > } > } > > > _____________________________________ > 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: -------------- next part -------------- _____________________________________ 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 Wed Jun 28 12:25:46 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Wed, 28 Jun 2017 12:25:46 -0400 Subject: [ITK] [ITK-users] Writing from an external buffer to VectorImage In-Reply-To: <81be8e27dd684f54944a7ff7b0d67c42@exch06.ad.uni-heidelberg.de> References: <81be8e27dd684f54944a7ff7b0d67c42@exch06.ad.uni-heidelberg.de> Message-ID: Hi Gordian, Examining or using the code in ITKGPUCommon may be helpful. The methods transfer data from CPU to GPU memory and back. https://github.com/InsightSoftwareConsortium/ITK/tree/master/Modules/Core/GPUCommon Hope this helps, Matt On Wed, Jun 28, 2017 at 9:51 AM, Kabelitz, Gordian wrote: > Hello, > > i computed a gradient with my own function and as a result a pointer to an image buffer is provided. I know the size, origin and spacing of the gradient component image. > I want to copy the gradient image into an itk::VectorImage with the components for the x,y,z gradients. > > The way I copied the image to the GPU is that I retrieved the buffer pointer from my input image and use the pointer to copy the image data to the GPU. > I used the way proposed in [1]. The computeGradientImage method is listed at the end of this mail. > > [...] > // get float pointer to image data > ImageType::Pointer image = reader->GetOutput(); > Image->Update(); > > float* data = image.GetBufferPointer(); > // copy image data to GPU texture memory (this works) > gpu_dev->setVoxels(dimension, voxelSize, data); > [...] > computeGradientImage<<>> (dev_gradientImage, dimension); > > // copy resulting gradientImage to host variable > float4* host_gradientImage; > cudaMemcpy(host_gradient, dev_gradientImage, numberOfVoxels*sizeof(float4)); > > --> Pseudo Code <-- > // Now I want to reverse the copy process. I have a float4 image and want to copy this into a itk::VectorImage with VariableVectorLength of 3 (skipping the magnitude value). > [...] -> size, spacing, origin, region definition > Itk::VectorImageType vecImage = VectorImageType::New(); > vecImage->setRegion(region); > vecImage ->SetVectorLength(3); > vecImage->Allocate(); > > // copy image buffer to vecImage, component by component > auto vecBuffer = vecImage->getBufferPointer(); > auto j = 0; > for (i=0; i { > vecbuffer[j] = host_gradient[i].x; j++; > vecbuffer[j] = host_gradient[i].y; j++; > vecbuffer[j] = host_gradient[i].z; j++; > } > > // save vecImage as nrrd image > [...] > > I haven't found a way to achieve my idea. > Are there any suggestions or examples? > As far I can see I cannot use the itk::ImportImageFilter. > > Thank you for any suggestions. > With kind regards, > Gordian > > [1]: https://itk.org/CourseWare/Training/GettingStarted-V.pdf > > void computeGradientImage(float4* gradientImage, int* dimension) > { > // every thread computes the float4 voxel with theta,phi,magnitude from gradient image > int idx = blockIdx.x * blockDim.x + threadIdx.x; > int idy = blockIdx.y * blockDim.y + threadIdx.y; > int idz = blockIdx.z * blockDim.z + threadIdx.z; > > if (idx < dimension[0] && idy < dimension[1] && idz < dimension[2]) > { > // define sobel filter for each direction > [...] > > // run sobel on image in texture memory for each direction and put result into a float4 image > gradientImage[idx + dimension[0] * (idy + idz * dimension[1])] = make_float4(sobelX, sobelY, sobelZ, magn); > } > } > > > _____________________________________ > 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 aharr8 at uwo.ca Wed Jun 28 15:14:51 2017 From: aharr8 at uwo.ca (Andrew Harris) Date: Wed, 28 Jun 2017 15:14:51 -0400 Subject: [ITK] [ITK-users] applying a transform to an ITK Point object results in it moving the opposite direction from the image Message-ID: Hi there, I have been trying for a while to get this working: I want to be able to select corresponding points in a fixed and moving image, and determine how well the moving image is transformed to overlay the fixed image by using target registration error. The problem is, using the same transform I applied to a moving image that translated it to the left, the point selected in the moving image gets translated to the right for example. -- AH Andrew Harris, Honours BSc (Medical Physics) PhD (CAMPEP) & MClSc Candidate ----------------------------------------------------------------------------------------------- *This email and any attachments thereto may contain private, confidential, and privileged materials for the sole use of the intended recipient. Any reviewing, copying, or distribution of this email (or any attachments thereto) by other than the intended recipient is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently destroy this email and any attachments thereto.* -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ 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 Wed Jun 28 16:50:04 2017 From: zivrafael.yaniv at nih.gov (Yaniv, Ziv Rafael (NIH/NLM/LHC) [C]) Date: Wed, 28 Jun 2017 20:50:04 +0000 Subject: [ITK] [ITK-users] applying a transform to an ITK Point object results in it moving the opposite direction from the image In-Reply-To: References: Message-ID: <6ABFBEEB-EBE8-478C-BEEB-747A5373FBE9@mail.nih.gov> Hello Andrew, In ITK the result of a registration maps points from the fixed image coordinate system to the moving coordinate system, so T(p_f) = p_m and the TRE is || T(p_f) ? p_m||. I suspect you just need to use the inverse transform. You may be interested in this SimpleITK notebook (http://insightsoftwareconsortium.github.io/SimpleITK-Notebooks/Python_html/67_Registration_Semiautomatic_Homework.html) which has a linked cursor GUI (gui. RegistrationPointDataAquisition). The source code for the UI is here: https://github.com/InsightSoftwareConsortium/SimpleITK-Notebooks/blob/master/Python/gui.py . hope this helps Ziv From: Andrew Harris Date: Wednesday, June 28, 2017 at 3:14 PM To: Insight-users Subject: [ITK-users] [ITK] applying a transform to an ITK Point object results in it moving the opposite direction from the image Hi there, I have been trying for a while to get this working: I want to be able to select corresponding points in a fixed and moving image, and determine how well the moving image is transformed to overlay the fixed image by using target registration error. The problem is, using the same transform I applied to a moving image that translated it to the left, the point selected in the moving image gets translated to the right for example. -- AH Andrew Harris, Honours BSc (Medical Physics) PhD (CAMPEP) & MClSc Candidate ----------------------------------------------------------------------------------------------- This email and any attachments thereto may contain private, confidential, and privileged materials for the sole use of the intended recipient. Any reviewing, copying, or distribution of this email (or any attachments thereto) by other than the intended recipient is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently destroy this email and any attachments thereto. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ 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 aharr8 at uwo.ca Thu Jun 29 13:21:11 2017 From: aharr8 at uwo.ca (Andrew Harris) Date: Thu, 29 Jun 2017 13:21:11 -0400 Subject: [ITK] [ITK-users] applying a transform to an ITK Point object results in it moving the opposite direction from the image In-Reply-To: <6ABFBEEB-EBE8-478C-BEEB-747A5373FBE9@mail.nih.gov> References: <6ABFBEEB-EBE8-478C-BEEB-747A5373FBE9@mail.nih.gov> Message-ID: Thanks for getting back to me. Using the inverse transform on the point selected in the moving image works to transform the point within a reasonable amount to the homologous feature selected in the fixed image when I use two identical images with a known offset of 100 voxels in each direction. However, upon testing identical images with a known rotation the selected points again fail to line up. The transform I have been using is the Rigid3DVersorTransform, and the lines of code I'm using to set the inverse are: newTransform->SetCenter(oldTransform->GetCenter()); oldTransform->GetInverse(newTransform); Any idea why translation would work but rotation causes a problem? -- AH Andrew Harris, Honours BSc (Medical Physics) PhD (CAMPEP) & MClSc Candidate ----------------------------------------------------------------------------------------------- *This email and any attachments thereto may contain private, confidential, and privileged materials for the sole use of the intended recipient. Any reviewing, copying, or distribution of this email (or any attachments thereto) by other than the intended recipient is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently destroy this email and any attachments thereto.* On Wed, Jun 28, 2017 at 4:50 PM, Yaniv, Ziv Rafael (NIH/NLM/LHC) [C] < zivrafael.yaniv at nih.gov> wrote: > Hello Andrew, > > > > In ITK the result of a registration maps points from the fixed image > coordinate system to the moving coordinate system, so T(p_f) = p_m and the > TRE is || T(p_f) ? p_m||. I suspect you just need to use the inverse > transform. > > > > You may be interested in this SimpleITK notebook (http:// > insightsoftwareconsortium.github.io/SimpleITK-Notebooks/ > Python_html/67_Registration_Semiautomatic_Homework.html) which has a > linked cursor GUI (gui. RegistrationPointDataAquisition). The source code > for the UI is here: https://github.com/InsightSoftwareConsortium/ > SimpleITK-Notebooks/blob/master/Python/gui.py . > > > > hope this helps > > Ziv > > > > > > > > > > *From: *Andrew Harris > *Date: *Wednesday, June 28, 2017 at 3:14 PM > *To: *Insight-users > *Subject: *[ITK-users] [ITK] applying a transform to an ITK Point object > results in it moving the opposite direction from the image > > > > Hi there, > > I have been trying for a while to get this working: I want to be able to > select corresponding points in a fixed and moving image, and determine how > well the moving image is transformed to overlay the fixed image by using > target registration error. The problem is, using the same transform I > applied to a moving image that translated it to the left, the point > selected in the moving image gets translated to the right for example. > > -- > > AH > > > > Andrew Harris, Honours BSc (Medical Physics) > > PhD (CAMPEP) & MClSc Candidate > > ------------------------------------------------------------ > ----------------------------------- > > *This email and any attachments thereto may contain private, > confidential, and privileged materials for the sole use of the intended > recipient. Any reviewing, copying, or distribution of this email (or any > attachments thereto) by other than the intended recipient is strictly > prohibited. If you are not the intended recipient, please contact the > sender immediately and permanently destroy this email and any attachments > thereto.* > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ 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 Thu Jun 29 15:04:59 2017 From: zivrafael.yaniv at nih.gov (Yaniv, Ziv Rafael (NIH/NLM/LHC) [C]) Date: Thu, 29 Jun 2017 19:04:59 +0000 Subject: [ITK] [ITK-users] applying a transform to an ITK Point object results in it moving the opposite direction from the image In-Reply-To: References: <6ABFBEEB-EBE8-478C-BEEB-747A5373FBE9@mail.nih.gov> Message-ID: The code snippet looks correct. I would advise that you print the transformations to see that you are getting what you expect. The relevant entries, Matrix, Center, Translation, Offset: Original transform is: T(x)=A(x?c)+t+c Where: A ? matrix c ? center t ? translation t+c ?Ac ? offset The inverse should have: A^{-1} ? matrix c ? center -A^{-1} t ? translation c - A^{-1} t - A^{-1} c - offset hope this helps Ziv p.s. When working with ITK always remember that you are dealing with physical space, distances are in mm/km?, volumes in mm^3?. Don?t be tempted to measure things in pixels/voxels. From: Andrew Harris Date: Thursday, June 29, 2017 at 1:21 PM To: "Yaniv, Ziv Rafael (NIH/NLM/LHC) [C]" Cc: Insight-users Subject: Re: [ITK-users] [ITK] applying a transform to an ITK Point object results in it moving the opposite direction from the image Thanks for getting back to me. Using the inverse transform on the point selected in the moving image works to transform the point within a reasonable amount to the homologous feature selected in the fixed image when I use two identical images with a known offset of 100 voxels in each direction. However, upon testing identical images with a known rotation the selected points again fail to line up. The transform I have been using is the Rigid3DVersorTransform, and the lines of code I'm using to set the inverse are: newTransform->SetCenter(oldTransform->GetCenter()); oldTransform->GetInverse(newTransform); Any idea why translation would work but rotation causes a problem? -- AH Andrew Harris, Honours BSc (Medical Physics) PhD (CAMPEP) & MClSc Candidate ----------------------------------------------------------------------------------------------- This email and any attachments thereto may contain private, confidential, and privileged materials for the sole use of the intended recipient. Any reviewing, copying, or distribution of this email (or any attachments thereto) by other than the intended recipient is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently destroy this email and any attachments thereto. On Wed, Jun 28, 2017 at 4:50 PM, Yaniv, Ziv Rafael (NIH/NLM/LHC) [C] > wrote: Hello Andrew, In ITK the result of a registration maps points from the fixed image coordinate system to the moving coordinate system, so T(p_f) = p_m and the TRE is || T(p_f) ? p_m||. I suspect you just need to use the inverse transform. You may be interested in this SimpleITK notebook (http://insightsoftwareconsortium.github.io/SimpleITK-Notebooks/Python_html/67_Registration_Semiautomatic_Homework.html) which has a linked cursor GUI (gui. RegistrationPointDataAquisition). The source code for the UI is here: https://github.com/InsightSoftwareConsortium/SimpleITK-Notebooks/blob/master/Python/gui.py . hope this helps Ziv From: Andrew Harris > Date: Wednesday, June 28, 2017 at 3:14 PM To: Insight-users > Subject: [ITK-users] [ITK] applying a transform to an ITK Point object results in it moving the opposite direction from the image Hi there, I have been trying for a while to get this working: I want to be able to select corresponding points in a fixed and moving image, and determine how well the moving image is transformed to overlay the fixed image by using target registration error. The problem is, using the same transform I applied to a moving image that translated it to the left, the point selected in the moving image gets translated to the right for example. -- AH Andrew Harris, Honours BSc (Medical Physics) PhD (CAMPEP) & MClSc Candidate ----------------------------------------------------------------------------------------------- This email and any attachments thereto may contain private, confidential, and privileged materials for the sole use of the intended recipient. Any reviewing, copying, or distribution of this email (or any attachments thereto) by other than the intended recipient is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently destroy this email and any attachments thereto. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ 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 andx_roo at live.com Thu Jun 29 22:19:36 2017 From: andx_roo at live.com (Andaharoo) Date: Thu, 29 Jun 2017 19:19:36 -0700 (MST) Subject: [ITK] [ITK-users] Problems Using GPU Filters Message-ID: <1498789176254-7590036.post@n2.nabble.com> I've been looking to use some of the GPU filters provided by ITK recently. Namely the GPU anisotropic filter and binary threshold filter. I downloaded CUDA and ran cmake again with use gpu on flag and it found all my cuda stuff automatically. Everything appeared to build fine. I then looked up some implementation details and examples but couldn't really find any. There was one itk powerpoint from a long while ago that seemed to suggest I'd be able to just put a gpu filter in the pipeline like any other filter. I liked this implementation but it didn't work. So right now I have a pipeline that looks like the following in order to load images with vtk, process with itk, and then render with vtk. vtkToItkFilter -> array of ImageToImageFilters all connected -> itkToVtkFilter I tried to stick the GPUBinaryThresholdImageFilter in the array like I would a normal filter connecting it appropriately and calling update but it broke throwing a read access violation on line 46 of the GPUGenerateData function in itkGPUUnaryFunctorImageFilter.hxx saying otPtr.m_Pointer was nullptr. My code goes a little something like this: typedef itk::Image Image; typedef itk::GPUBinaryThresholdImageFilter GPUBinaryThresholdFilter; GPUBinaryThresholdFilter::Pointer filter = GPUBinaryThresholdFilter::New(); double* range = pipe->GetOutput()->GetScalarRange(); filter->SetLowerThreshold(filterWidget->getDoubleFromSlider("Lower")); filter->SetUpperThreshold(filterWidget->getDoubleFromSlider("Upper")); filter->SetOutsideValue(range[0]); filter->SetInsideValue(range[1]); filters.push_back(filter); if (filters.size() > 0) filter->SetInput(filters.back()->GetOutput()); else filter->SetInput(vtkToItkLoader->GetOutput()); itkToVtkFilter->SetInput(filters.back()->GetOutput()); -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/Problems-Using-GPU-Filters-tp7590036.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 felix.burk at gmail.com Fri Jun 30 06:58:40 2017 From: felix.burk at gmail.com (Felix Burk) Date: Fri, 30 Jun 2017 12:58:40 +0200 Subject: [ITK] [ITK-users] Combining several segmenations Message-ID: Hello, I'm using ITKs ScalarChanAndVeseDenseLevelSetImageFilter to segment parts of a medical image file series. The problem is that the resolution is pretty low. So far its working well, but I'd like to have more accurate results. The images in the file series are similar, but change more after each time step. Some segmentations work really well but others differ quite a bit from the desired result. My idea is to combine segmentations from different time steps, like the current and previous one. I think this might lead to better results, because the segmentations should be similar too. I'm quite new to ITK and image analysis in general, maybe that's why I couldn't find something useful for this kind of problem. I already tried to compare them using SquaredDifferenceImageFilter and SimilarityIndexImageFilter, but I don't know if the results are of any use. Is there any way to combine segmentations from several time steps to obtain better results for a single time step? I implemented the algorithm as a Paraview Plugin, if that matters. I could provide some Screenshots too if this might help. Thanks, Felix -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ 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 emilianoberonich at gmail.com Fri Jun 30 07:52:48 2017 From: emilianoberonich at gmail.com (Emiliano Beronich) Date: Fri, 30 Jun 2017 08:52:48 -0300 Subject: [ITK] [ITK-users] Problems Using GPU Filters In-Reply-To: <1498789176254-7590036.post@n2.nabble.com> References: <1498789176254-7590036.post@n2.nabble.com> Message-ID: Hi Andarahoo, GPUBinaryThresholdImageFilter should be used with GPUImage. Try defining: typedef itk::GPUImage Image; There is a cast in the method GPUUnaryFunctorImageFilter::GenerateData (ancester of GPUBinaryThresholdImageFilter) which may be the cause of the null pointer: typename GPUOutputImage::Pointer otPtr = dynamic_cast< GPUOutputImage * >( this->ProcessObject::GetOutput(0) ); Cheers, Emiliano 2017-06-29 23:19 GMT-03:00 Andaharoo : > I've been looking to use some of the GPU filters provided by ITK recently. > Namely the GPU anisotropic filter and binary threshold filter. I downloaded > CUDA and ran cmake again with use gpu on flag and it found all my cuda > stuff > automatically. Everything appeared to build fine. I then looked up some > implementation details and examples but couldn't really find any. There was > one itk powerpoint from a long while ago that seemed to suggest I'd be able > to just put a gpu filter in the pipeline like any other filter. I liked > this > implementation but it didn't work. So right now I have a pipeline that > looks > like the following in order to load images with vtk, process with itk, and > then render with vtk. > > vtkToItkFilter -> array of ImageToImageFilters all connected -> > itkToVtkFilter > > I tried to stick the GPUBinaryThresholdImageFilter in the array like I > would > a normal filter connecting it appropriately and calling update but it broke > throwing a read access violation on line 46 of the GPUGenerateData function > in itkGPUUnaryFunctorImageFilter.hxx saying otPtr.m_Pointer was nullptr. > > My code goes a little something like this: > > typedef itk::Image Image; > typedef itk::GPUBinaryThresholdImageFilter > GPUBinaryThresholdFilter; > GPUBinaryThresholdFilter::Pointer filter = GPUBinaryThresholdFilter::New( > ); > double* range = pipe->GetOutput()->GetScalarRange(); > filter->SetLowerThreshold(filterWidget->getDoubleFromSlider("Lower")); > filter->SetUpperThreshold(filterWidget->getDoubleFromSlider("Upper")); > filter->SetOutsideValue(range[0]); > filter->SetInsideValue(range[1]); > filters.push_back(filter); > if (filters.size() > 0) > filter->SetInput(filters.back()->GetOutput()); > else > filter->SetInput(vtkToItkLoader->GetOutput()); > itkToVtkFilter->SetInput(filters.back()->GetOutput()); > > > > -- > View this message in context: http://itk-insight-users. > 2283740.n2.nabble.com/Problems-Using-GPU-Filters-tp7590036.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: -------------- next part -------------- _____________________________________ 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 30 17:02:43 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Fri, 30 Jun 2017 17:02:43 -0400 Subject: [ITK] [ITK-users] Combining several segmenations In-Reply-To: References: Message-ID: Hello Felix, Once approach is to use the LabelVotingImageFilter: https://itk.org/Doxygen/html/classitk_1_1LabelVotingImageFilter.html Hope this helps, Matt On Fri, Jun 30, 2017 at 6:58 AM, Felix Burk wrote: > Hello, > > I'm using ITKs ScalarChanAndVeseDenseLevelSetImageFilter to segment parts of > a medical image file series. The problem is that the resolution is pretty > low. So far its working well, but I'd like to have more accurate results. > > The images in the file series are similar, but change more after each time > step. Some segmentations work really well but others differ quite a bit from > the desired result. > My idea is to combine segmentations from different time steps, like the > current and previous one. I think this might lead to better results, because > the segmentations should be similar too. > I'm quite new to ITK and image analysis in general, maybe that's why I > couldn't find something useful for this kind of problem. > > I already tried to compare them using SquaredDifferenceImageFilter and > SimilarityIndexImageFilter, but I don't know if the results are of any use. > Is there any way to combine segmentations from several time steps to obtain > better results for a single time step? > > I implemented the algorithm as a Paraview Plugin, if that matters. I could > provide some Screenshots too if this might help. > > Thanks, > Felix > > _____________________________________ > 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