From filippo.brogi at topic.nl Mon May 1 05:43:04 2017 From: filippo.brogi at topic.nl (Filippo Brogi) Date: Mon, 1 May 2017 02:43:04 -0700 (MST) Subject: [ITK-users] image position Message-ID: <1493631784790-38165.post@n7.nabble.com> Hello folks, I'm reading a dicom series using ImageSeriesReader. I can retrieve all the parameters that I need but lloks liken is not possible to retrieve the physical image position of the images forming the dicom volume. Should I used a specific filter for that? Thanks in advance -- View this message in context: http://itk-users.7.n7.nabble.com/image-position-tp38165.html Sent from the ITK - Users mailing list archive at Nabble.com. From agubernmerida at gmail.com Mon May 1 08:59:11 2017 From: agubernmerida at gmail.com (=?UTF-8?Q?Albert_Gubern_M=C3=A9rida?=) Date: Mon, 1 May 2017 14:59:11 +0200 Subject: [ITK-users] Ignore background pixels for gaussian filter computations Message-ID: Hi, I want to compute voxel features using Gaussian filters such as LaplacianRecursiveGaussianImageFilter in breast x-ray images. However, I get very strong responses at the skin line due to the large intensity difference between tissue and backgound. I do have the segmentation of the background. Is there anyway to exclude/ignore the background voxels from the computation using a mask or setting a specific intensity value? Thanks! Best, Albert -------------- next part -------------- An HTML attachment was scrubbed... URL: From filippo.brogi at topic.nl Mon May 1 10:52:26 2017 From: filippo.brogi at topic.nl (Filippo Brogi) Date: Mon, 1 May 2017 07:52:26 -0700 (MST) Subject: [ITK-users] DICOM Dataset GetOrigin Message-ID: <1493650346854-38167.post@n7.nabble.com> Hello guys, I'm reading a dicom dataset formed by 17 MR images using ITK 4.9.1. According to the documentation "Origin" is the physical position of the pixel whose "Index" is all zeros, but the GetOrigin() method is returning the physical position of index = {0, 0, 16}. Here a simplified code snippet SeriesReaderType::Pointer reader = SeriesReaderType::New(); ImageIOType::Pointer dicomIO = ImageIOType::New(); reader->SetImageIO( dicomIO ); // mFilenames contains the list of dicom files reader->SetFileNames ( mFileNames ); try { reader->Update(); auto pImage = reader->GetOutput(); ShortImageType3D::PointType point1; ShortImageType3D::IndexType index1 = {0, 0, 0}; pImage->TransformIndexToPhysicalPoint( index1, point1 ); double imgPos[3]; imgPos[0] = dicomIO->GetOrigin(0); imgPos[1] = dicomIO->GetOrigin(1); imgPos[2] = dicomIO->GetOrigin(2); ShortImageType3D::IndexType indexOfOrigin; ShortImageType3D::PointType point2; point2[0] = imgPos[0]; point2[1] = imgPos[1]; point2[2] = imgPos[2]; pImage->TransformPhysicalPointToIndex(point2, indexOfOrigin); } catch(itk::ExceptionObject &) { std::cout << "ERROR" << std::endl; return res; } This is the console output: GetOrigin (-172.9, -116.666, 55.594) [-99.3719, -182.98, -25.5239] - index = [0, 0, 0] [-172.9, -116.666, 55.594] - index = [0, 0, 16] Am I doing something wrong? Thanks in advance -- View this message in context: http://itk-users.7.n7.nabble.com/DICOM-Dataset-GetOrigin-tp38167.html Sent from the ITK - Users mailing list archive at Nabble.com. From matt.mccormick at kitware.com Mon May 1 11:18:12 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Mon, 1 May 2017 11:18:12 -0400 Subject: [ITK-users] DICOM Dataset GetOrigin In-Reply-To: <1493650346854-38167.post@n7.nabble.com> References: <1493650346854-38167.post@n7.nabble.com> Message-ID: Hi Filippo, Yes, those results are odd. What is the resulting Spacing and Direction of the itk::Image? Thanks, Matt On Mon, May 1, 2017 at 10:52 AM, Filippo Brogi wrote: > > Hello guys, > I'm reading a dicom dataset formed by 17 MR images using ITK 4.9.1. > > According to the documentation "Origin" is the physical position of the > pixel whose "Index" is all zeros, but the GetOrigin() method is returning > the physical position of index = {0, 0, 16}. > > > Here a simplified code snippet > > SeriesReaderType::Pointer reader = SeriesReaderType::New(); > ImageIOType::Pointer dicomIO = ImageIOType::New(); > reader->SetImageIO( dicomIO ); > > // mFilenames contains the list of dicom files > reader->SetFileNames ( mFileNames ); > try > { > reader->Update(); > > auto pImage = reader->GetOutput(); > > ShortImageType3D::PointType point1; > ShortImageType3D::IndexType index1 = {0, 0, 0}; > > pImage->TransformIndexToPhysicalPoint( index1, point1 ); > > double imgPos[3]; > imgPos[0] = dicomIO->GetOrigin(0); > imgPos[1] = dicomIO->GetOrigin(1); > imgPos[2] = dicomIO->GetOrigin(2); > > ShortImageType3D::IndexType indexOfOrigin; > ShortImageType3D::PointType point2; > point2[0] = imgPos[0]; > point2[1] = imgPos[1]; > point2[2] = imgPos[2]; > pImage->TransformPhysicalPointToIndex(point2, > indexOfOrigin); > } > catch(itk::ExceptionObject &) > { > std::cout << "ERROR" << std::endl; > return res; > } > > This is the console output: > > GetOrigin (-172.9, -116.666, 55.594) > [-99.3719, -182.98, -25.5239] - index = [0, 0, 0] > [-172.9, -116.666, 55.594] - index = [0, 0, 16] > > Am I doing something wrong? > Thanks in advance > > > > > -- > View this message in context: http://itk-users.7.n7.nabble. > com/DICOM-Dataset-GetOrigin-tp38167.html > Sent from the ITK - Users mailing list archive at Nabble.com. > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Mon May 1 11:20:18 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Mon, 1 May 2017 11:20:18 -0400 Subject: [ITK-users] image position In-Reply-To: <1493631784790-38165.post@n7.nabble.com> References: <1493631784790-38165.post@n7.nabble.com> Message-ID: Hi Filippo, The physical position of the image is stored in the Spacing, Origin, and Direction metadata of the resulting itk::Image. More information can be found in section 4.1 of the ITK Software Guide: https://itk.org/ITKSoftwareGuide/html/Book1/ITKSoftwareGuide-Book1ch4.html#x38-450004.1 Hope this helps, Matt On Mon, May 1, 2017 at 5:43 AM, Filippo Brogi wrote: > Hello folks, > > I'm reading a dicom series using ImageSeriesReader. I can retrieve all the > parameters that I need but lloks liken is not possible to retrieve the > physical image position of the images forming the dicom volume. > Should I used a specific filter for that? > > Thanks in advance > > > > -- > View this message in context: http://itk-users.7.n7.nabble. > com/image-position-tp38165.html > Sent from the ITK - Users mailing list archive at Nabble.com. > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Mon May 1 11:22:26 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Mon, 1 May 2017 11:22:26 -0400 Subject: [ITK-users] Ignore background pixels for gaussian filter computations In-Reply-To: References: Message-ID: Hi Albert, The result could be masked. Here's an example of one approach: https://itk.org/ITKExamples/src/Filtering/LabelMap/MaskOneImageGivenLabelMap/Documentation.html HTH, Matt On Mon, May 1, 2017 at 8:59 AM, Albert Gubern M?rida < agubernmerida at gmail.com> wrote: > Hi, > > I want to compute voxel features using Gaussian filters such as > LaplacianRecursiveGaussianImageFilter in breast x-ray images. However, I > get very strong responses at the skin line due to the large intensity > difference between tissue and backgound. I do have the segmentation of the > background. Is there anyway to exclude/ignore the background voxels from > the computation using a mask or setting a specific intensity value? > > Thanks! > > Best, > > Albert > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From filippo.brogi at topic.nl Mon May 1 11:37:48 2017 From: filippo.brogi at topic.nl (Filippo Brogi) Date: Mon, 1 May 2017 08:37:48 -0700 (MST) Subject: [ITK-users] DICOM Dataset GetOrigin In-Reply-To: References: <1493650346854-38167.post@n7.nabble.com> Message-ID: <1493653068068-38171.post@n7.nabble.com> Hi Matt, thanks for your reply, this is the the console output GetOrigin (-172.9, -116.666, 55.594) [-99.3719, -182.98, -25.5239] - index = [0, 0, 0] [-172.9, -116.666, 55.594] - index = [0, 0, 16] Spacing (1.25, 1.25, 8) Dimensions (256, 256, 1) Direction ((0.74092, -2.22888e-008, 0.671593),(0.347938, 0.855333, -0.383855),(-0.574435, 0.518079, 0.633733)) What it is also odd the Dimension, I would expect Dimensions(2) to be equal to 17, the number of slices -- View this message in context: http://itk-users.7.n7.nabble.com/DICOM-Dataset-GetOrigin-tp38167p38171.html Sent from the ITK - Users mailing list archive at Nabble.com. From chinander at gmail.com Mon May 1 11:44:29 2017 From: chinander at gmail.com (Mike Chinander) Date: Mon, 1 May 2017 10:44:29 -0500 Subject: [ITK-users] DICOM Dataset GetOrigin In-Reply-To: <1493653068068-38171.post@n7.nabble.com> References: <1493650346854-38167.post@n7.nabble.com> <1493653068068-38171.post@n7.nabble.com> Message-ID: Are you sure all your files belong to the same image series (have the same SeriesUID)? How are you populating mFileNames and what does it contain? On Mon, May 1, 2017 at 10:37 AM, Filippo Brogi wrote: > Hi Matt, > thanks for your reply, this is the the console output > > > GetOrigin (-172.9, -116.666, 55.594) > [-99.3719, -182.98, -25.5239] - index = [0, 0, 0] > [-172.9, -116.666, 55.594] - index = [0, 0, 16] > Spacing (1.25, 1.25, 8) > Dimensions (256, 256, 1) > Direction ((0.74092, -2.22888e-008, 0.671593),(0.347938, 0.855333, > -0.383855),(-0.574435, 0.518079, 0.633733)) > > What it is also odd the Dimension, I would expect Dimensions(2) to be equal > to 17, the number of slices > > > > > > > > -- > View this message in context: http://itk-users.7.n7.nabble. > com/DICOM-Dataset-GetOrigin-tp38167p38171.html > Sent from the ITK - Users mailing list archive at Nabble.com. > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From filippo.brogi at topic.nl Mon May 1 12:03:52 2017 From: filippo.brogi at topic.nl (Filippo Brogi) Date: Mon, 1 May 2017 09:03:52 -0700 (MST) Subject: [ITK-users] DICOM Dataset GetOrigin In-Reply-To: References: <1493650346854-38167.post@n7.nabble.com> <1493653068068-38171.post@n7.nabble.com> Message-ID: <1493654632046-38173.post@n7.nabble.com> Hi Mike, I'm sure that the files belongs to the same series. These images belongs to a multiphase cardiac dataset. all the images they have the same series UID 1.3.46.670589.11.41301.5.0.10016.2015052010370537279 the only difference with a "common" dataset is that the instance number is increased by the number of phases. For instance in this data I have for image 1 = InstanceNumber 1 for image 2 = InstanceNumber 31 ...... for image 17 = InstanceNumber 481 Is ITK expecting consecutive instance numbers? Thanks -- View this message in context: http://itk-users.7.n7.nabble.com/DICOM-Dataset-GetOrigin-tp38167p38173.html Sent from the ITK - Users mailing list archive at Nabble.com. From agubernmerida at gmail.com Mon May 1 14:14:33 2017 From: agubernmerida at gmail.com (=?UTF-8?Q?Albert_Gubern_M=C3=A9rida?=) Date: Mon, 1 May 2017 20:14:33 +0200 Subject: [ITK-users] Ignore background pixels for gaussian filter computations In-Reply-To: References: Message-ID: Thanks Matt! I was not aware of this filter. However, instead of masking an image after filtering, I would like that the filter itself ignores a specific region (i.e. background) for any calculation. Masking is not enough if I apply large sigmas. I am also interested in making the filter faster by ignoring computations in specified voxels. Best, Albert On May 1, 2017 17:22, "Matt McCormick" wrote: > Hi Albert, > > The result could be masked. Here's an example of one approach: > > https://itk.org/ITKExamples/src/Filtering/LabelMap/ > MaskOneImageGivenLabelMap/Documentation.html > > HTH, > Matt > > On Mon, May 1, 2017 at 8:59 AM, Albert Gubern M?rida < > agubernmerida at gmail.com> wrote: > >> Hi, >> >> I want to compute voxel features using Gaussian filters such as >> LaplacianRecursiveGaussianImageFilter in breast x-ray images. However, I >> get very strong responses at the skin line due to the large intensity >> difference between tissue and backgound. I do have the segmentation of the >> background. Is there anyway to exclude/ignore the background voxels from >> the computation using a mask or setting a specific intensity value? >> >> Thanks! >> >> Best, >> >> Albert >> >> _____________________________________ >> Powered by www.kitware.com >> >> Visit other Kitware open-source projects at >> http://www.kitware.com/opensource/opensource.html >> >> Kitware offers ITK Training Courses, for more information visit: >> http://www.kitware.com/products/protraining.php >> >> Please keep messages on-topic and check the ITK FAQ at: >> http://www.itk.org/Wiki/ITK_FAQ >> >> Follow this link to subscribe/unsubscribe: >> http://public.kitware.com/mailman/listinfo/insight-users >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Mon May 1 14:40:44 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Mon, 1 May 2017 14:40:44 -0400 Subject: [ITK-users] Ignore background pixels for gaussian filter computations In-Reply-To: References: Message-ID: Another approach: mask before passing the data to the filter, too. Unless the unmasked region is very sparse, skipping the masked region in general will not speed up the computation -- it may even slow it down, depending on the implementation. This is due to CPU memory cache pipelines and the need to treat mask boundaries in a special way. HTH, Matt On Mon, May 1, 2017 at 2:14 PM, Albert Gubern M?rida < agubernmerida at gmail.com> wrote: > Thanks Matt! I was not aware of this filter. However, instead of masking > an image after filtering, I would like that the filter itself ignores a > specific region (i.e. background) for any calculation. Masking is not > enough if I apply large sigmas. I am also interested in making the filter > faster by ignoring computations in specified voxels. > > Best, > > Albert > > > > On May 1, 2017 17:22, "Matt McCormick" wrote: > >> Hi Albert, >> >> The result could be masked. Here's an example of one approach: >> >> https://itk.org/ITKExamples/src/Filtering/LabelMap/MaskOne >> ImageGivenLabelMap/Documentation.html >> >> HTH, >> Matt >> >> On Mon, May 1, 2017 at 8:59 AM, Albert Gubern M?rida < >> agubernmerida at gmail.com> wrote: >> >>> Hi, >>> >>> I want to compute voxel features using Gaussian filters such as >>> LaplacianRecursiveGaussianImageFilter in breast x-ray images. However, >>> I get very strong responses at the skin line due to the large intensity >>> difference between tissue and backgound. I do have the segmentation of the >>> background. Is there anyway to exclude/ignore the background voxels from >>> the computation using a mask or setting a specific intensity value? >>> >>> Thanks! >>> >>> Best, >>> >>> Albert >>> >>> _____________________________________ >>> Powered by www.kitware.com >>> >>> Visit other Kitware open-source projects at >>> http://www.kitware.com/opensource/opensource.html >>> >>> Kitware offers ITK Training Courses, for more information visit: >>> http://www.kitware.com/products/protraining.php >>> >>> Please keep messages on-topic and check the ITK FAQ at: >>> http://www.itk.org/Wiki/ITK_FAQ >>> >>> Follow this link to subscribe/unsubscribe: >>> http://public.kitware.com/mailman/listinfo/insight-users >>> >>> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From pablo.hernandez.cerdan at outlook.com Mon May 1 22:41:53 2017 From: pablo.hernandez.cerdan at outlook.com (=?utf-8?B?UGFibG8gSGVybsOhbmRleg==?=) Date: Tue, 2 May 2017 02:41:53 +0000 Subject: [ITK-users] Metadata Information in FFT images can be misleading. In-Reply-To: References: Message-ID: Thanks Matt, I agree that the more appropriate thing to do would be to document better, but maybe only in the ForwardFFT filter instead of ImageBase? I can imagine experiments where the input images are in the frequency domain: photo detectors in scattering ( from this search [1], these images [2] for example). In this case origin and spacing metadata make sense as they are, even though the experimenters know the physical units of the images are in hertz, not in meters. The problem with the metadata arises exclusively doing the FFT. If we modify it, we will lose the input image metadata. If we don't, the metadata of the output requires extra knowledge and read the documentation to be meaningful. Also the Origin is tricky... the first bin, or index {0}, of the output of an FFT depends on the frequency layout of the algorithm, usually in the "standard" layout, it corresponds to zero frequency [3]. So the Origin(Frequency) will be 0.0 if we understand the origin with the value of the first index..., but if the FFT is shifted, the first index would be now a large, negative frequency. In the ExternalModule, I am using a FrequencyIterator, derived from a regular ImageRegionIterator. It adds a GetFrequency() function, providing an abstraction to let the user stop worrying about the specifics of the frequency layout. There are 3 different layouts, Regular, FFTLayout, and ShiftedFFTLayout. - Regular is a normal iterator, with GetFrequency() calling Get(), for the case I commented when the image is taken in the frequency domain, but the user needs to use the IsotropicWavelet module on it (which requires frequency iterators). - FFTLayout is the standard FFT layout, vnl, fftw, and I think python uses it as well. This is the default type. - ShiftedFFTLayout, the layout after shifting the FFT. This allows to iterate an image from the frequency domain, and get the frequency value, the frequency bin, as well as actual value of the current pixel. And also they are a good place to store frequency 'metadata' information such as FrequencyOrigin, and FrequencySpacing, that depends on the frequency layout: See [4] Cheers, Pablo [1] https://www.google.co.nz/search?q=photo+detector+scattering+result&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjK2NbzntzSAhUEmZQKHZenBU4Q_AUIBigB&biw=1920&bih=947#imgrc=OA28hyPkRDniVM: [2] http://www.azom.com/article.aspx?ArticleID=12502 [3] https://docs.scipy.org/doc/numpy/reference/routines.fft.html [4] https://github.com/phcerdan/ITKIsotropicWavelets/blob/master/include/itkFrequencyFFTLayoutImageRegionConstIteratorWithIndex.h#L288 On Fri, Mar 17, 2017 at 8:43 AM, matt.mccormick at kitware.com > wrote: Hi Pablo, Thanks for discussing this issue and the excellent overview of the topic. The meaning of metadata in the frequency domain could definitely a source of confusion and bugs, and we would benefit from a clarity and consensus on the subject. For practical reasons of pipeline use and existing algorithm application, re-use of itk::Image as much about seems beneficial. What do you think about adding documentation to itk::ImageBase::GetSpacing() [1]? We could state that the Spacing is always in physical units. If the image is in the frequency domain, then Spacing is equal to 1 / Frequency Sampling and the Frequency Bin Resolution equals 1 / (Frequency Sampling * N), where N is the Size of the LargestPossibleImageRegion (but not in the half-Hermitian storage). Then, the frequency shrinkage filter would increase its output Spacing accordingly so metadata is updated throughout an analysis pipeline. Thanks, Matt [1] https://itk.org/Doxygen/html/classitk_1_1ImageBase.html#aaadef7c0a9627cf22b0fbf2de6de913c On Tue, Mar 14, 2017 at 4:54 AM, Pablo Hern?ndez > wrote: > Hey there, > > I am contributing with the IsotropicWavelet external module, and I am facing > some doubts about the meaning of image metadata in frequency-domain images. > > Current behavior performing a FFTforward is to copy the input image > metadata: spacing,origin, and direction to the output, even though the > output is in the frequency domain or dual space. I guess it is better copy > it than to lose it, but doesn't mean that the metadata is meaningful in the > frequency domain. Spacing information can led the user to think that between > each pixel holding a frequency value, that spacing is like a frequency > resolution, but it is not. > > Some refresh of the lingo to help: > dual space: f ~ 1/T (where T can represent time or space) > Units of frequency are: Hertz = 1 / [ T ], or Radians (Rad = 2pi Hz) > Spacing (or Sampling in the lingo of digital signaling processing) in a > spatial domain image is associated with the resolution of the image, and > represents the pixel width in physical units. > The Origin is an array holding some relative units to world coordinates that > are meaningful for the experimenter. > > What does spacing mean in a frequency domain image? The frequency resolution > after an FFT is related to the size of the FFT (the size of the image) and > the sampling rate of the original image (more here). > > Freq_bin_resolution = Freq_sampling / N. Where N is the size of the image, > and Freq_sampling = 1 / Spacing. All these variables are arrays, with size > equal to the dimension of the image. > > And the origin, in the case of the output of an FFT, depends on the layout > of that particular FFT algorithm. VNL and FFTW share the same layout, where, > for example, the zero frequency bin is stored the first index {{0}} , (also > note that the physical units of that first index is always 0.0 Hz, > regardless of origin, or spacing of the original image). > > If we set the Freq_sampling to {{1.0}} (corresponding to a Spacing of > {{1.0}}, then the freq resolution will be {{1/N}} (depending on the size!), > and the range of frequencies will always be: (-0.5, 0.5] Hz, or (-pi, pi] > rads (independent of the size). > > So right now, in the wavelet module that works in the frequency domain, and > does some shrinkage in this domain, I have chosen to ignore all this > metadata, and let the user recover it if he/she needs it, but it might be > worth to think about this. > > For example, in a shrinkage by a factor of 2, the width of a pixel > representing a frequency, doubles. F_bin_resolution =1/(N/2) = 2/N, and the > range of allowed frequencies keeps the same: (-Freq_sampling/2.0, > Freq_sampling/2.0] or (-0.5, 0.5] or (-pi,pi] if Freq_sampling =1.0 > > This is all good, but hard to grasp when the metadata can be misleading. If > you have any thoughts on how to improve this or be clearer to the user, > happy to hear, meanwhile I think I will keep ignoring any metadata > associated with the spatial domain when dealing with frequency domain > images. > > Cheers, > Pablo > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From pablo.hernandez.cerdan at outlook.com Mon May 1 22:41:57 2017 From: pablo.hernandez.cerdan at outlook.com (=?utf-8?B?UGFibG8gSGVybsOhbmRleg==?=) Date: Tue, 2 May 2017 02:41:57 +0000 Subject: [ITK-users] Metadata Information in FFT images can be misleading. In-Reply-To: References: Message-ID: Thanks Matt, I agree that the more appropriate thing to do would be to document better, but maybe only in the ForwardFFT filter instead of ImageBase? I can imagine experiments where the input images are in the frequency domain: photo detectors in scattering ( from this search [1], these images [2] for example). In this case origin and spacing metadata make sense as they are, even though the experimenters know the physical units of the images are in hertz, not in meters. The problem with the metadata arises exclusively doing the FFT. If we modify it, we will lose the input image metadata. If we don't, the metadata of the output requires extra knowledge and read the documentation to be meaningful. Also the Origin is tricky... the first bin, or index {0}, of the output of an FFT depends on the frequency layout of the algorithm, usually in the "standard" layout, it corresponds to zero frequency [3]. So the Origin(Frequency) will be 0.0 if we understand the origin with the value of the first index..., but if the FFT is shifted, the first index would be now a large, negative frequency. In the ExternalModule, I am using a FrequencyIterator, derived from a regular ImageRegionIterator. It adds a GetFrequency() function, providing an abstraction to let the user stop worrying about the specifics of the frequency layout. There are 3 different layouts, Regular, FFTLayout, and ShiftedFFTLayout. - Regular is a normal iterator, with GetFrequency() calling Get(), for the case I commented when the image is taken in the frequency domain, but the user needs to use the IsotropicWavelet module on it (which requires frequency iterators). - FFTLayout is the standard FFT layout, vnl, fftw, and I think python uses it as well. This is the default type. - ShiftedFFTLayout, the layout after shifting the FFT. This allows to iterate an image from the frequency domain, and get the frequency value, the frequency bin, as well as actual value of the current pixel. And also they are a good place to store frequency 'metadata' information such as FrequencyOrigin, and FrequencySpacing, that depends on the frequency layout: See [4] Cheers, Pablo [1] https://www.google.co.nz/search?q=photo+detector+scattering+result&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjK2NbzntzSAhUEmZQKHZenBU4Q_AUIBigB&biw=1920&bih=947#imgrc=OA28hyPkRDniVM: [2] http://www.azom.com/article.aspx?ArticleID=12502 [3] https://docs.scipy.org/doc/numpy/reference/routines.fft.html [4] https://github.com/phcerdan/ITKIsotropicWavelets/blob/master/include/itkFrequencyFFTLayoutImageRegionConstIteratorWithIndex.h#L288 On Fri, Mar 17, 2017 at 8:43 AM, matt.mccormick at kitware.com > wrote: Hi Pablo, Thanks for discussing this issue and the excellent overview of the topic. The meaning of metadata in the frequency domain could definitely a source of confusion and bugs, and we would benefit from a clarity and consensus on the subject. For practical reasons of pipeline use and existing algorithm application, re-use of itk::Image as much about seems beneficial. What do you think about adding documentation to itk::ImageBase::GetSpacing() [1]? We could state that the Spacing is always in physical units. If the image is in the frequency domain, then Spacing is equal to 1 / Frequency Sampling and the Frequency Bin Resolution equals 1 / (Frequency Sampling * N), where N is the Size of the LargestPossibleImageRegion (but not in the half-Hermitian storage). Then, the frequency shrinkage filter would increase its output Spacing accordingly so metadata is updated throughout an analysis pipeline. Thanks, Matt [1] https://itk.org/Doxygen/html/classitk_1_1ImageBase.html#aaadef7c0a9627cf22b0fbf2de6de913c On Tue, Mar 14, 2017 at 4:54 AM, Pablo Hern?ndez > wrote: > Hey there, > > I am contributing with the IsotropicWavelet external module, and I am facing > some doubts about the meaning of image metadata in frequency-domain images. > > Current behavior performing a FFTforward is to copy the input image > metadata: spacing,origin, and direction to the output, even though the > output is in the frequency domain or dual space. I guess it is better copy > it than to lose it, but doesn't mean that the metadata is meaningful in the > frequency domain. Spacing information can led the user to think that between > each pixel holding a frequency value, that spacing is like a frequency > resolution, but it is not. > > Some refresh of the lingo to help: > dual space: f ~ 1/T (where T can represent time or space) > Units of frequency are: Hertz = 1 / [ T ], or Radians (Rad = 2pi Hz) > Spacing (or Sampling in the lingo of digital signaling processing) in a > spatial domain image is associated with the resolution of the image, and > represents the pixel width in physical units. > The Origin is an array holding some relative units to world coordinates that > are meaningful for the experimenter. > > What does spacing mean in a frequency domain image? The frequency resolution > after an FFT is related to the size of the FFT (the size of the image) and > the sampling rate of the original image (more here). > > Freq_bin_resolution = Freq_sampling / N. Where N is the size of the image, > and Freq_sampling = 1 / Spacing. All these variables are arrays, with size > equal to the dimension of the image. > > And the origin, in the case of the output of an FFT, depends on the layout > of that particular FFT algorithm. VNL and FFTW share the same layout, where, > for example, the zero frequency bin is stored the first index {{0}} , (also > note that the physical units of that first index is always 0.0 Hz, > regardless of origin, or spacing of the original image). > > If we set the Freq_sampling to {{1.0}} (corresponding to a Spacing of > {{1.0}}, then the freq resolution will be {{1/N}} (depending on the size!), > and the range of frequencies will always be: (-0.5, 0.5] Hz, or (-pi, pi] > rads (independent of the size). > > So right now, in the wavelet module that works in the frequency domain, and > does some shrinkage in this domain, I have chosen to ignore all this > metadata, and let the user recover it if he/she needs it, but it might be > worth to think about this. > > For example, in a shrinkage by a factor of 2, the width of a pixel > representing a frequency, doubles. F_bin_resolution =1/(N/2) = 2/N, and the > range of allowed frequencies keeps the same: (-Freq_sampling/2.0, > Freq_sampling/2.0] or (-0.5, 0.5] or (-pi,pi] if Freq_sampling =1.0 > > This is all good, but hard to grasp when the metadata can be misleading. If > you have any thoughts on how to improve this or be clearer to the user, > happy to hear, meanwhile I think I will keep ignoring any metadata > associated with the spatial domain when dealing with frequency domain > images. > > Cheers, > Pablo > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From pablo.hernandez.cerdan at outlook.com Tue May 2 01:24:48 2017 From: pablo.hernandez.cerdan at outlook.com (=?utf-8?B?UGFibG8gSGVybsOhbmRleg==?=) Date: Tue, 2 May 2017 05:24:48 +0000 Subject: [ITK-users] Metadata Information in FFT images can be misleading. In-Reply-To: References: Message-ID: >> - Regular is a normal iterator, with GetFrequency() calling Get(), for the case I commented when the image is taken in the frequency domain, but the user needs to use the IsotropicWavelet module on it (which requires frequency iterators) Sorry, here, the iterator method GetFrequency() does not calls Get(), it returns an array similar to using TransformIndexToPhysicalPoint on GetIndex() (but ignoring Direction metadata) [1] [1] https://github.com/phcerdan/ITKIsotropicWavelets/blob/master/include/itkFrequencyImageRegionConstIteratorWithIndex.h#L135 On Tue, May 2, 2017 at 2:41 PM, Pablo Hern?ndez > wrote: Thanks Matt, I agree that the more appropriate thing to do would be to document better, but maybe only in the ForwardFFT filter instead of ImageBase? I can imagine experiments where the input images are in the frequency domain: photo detectors in scattering ( from this search [1], these images [2] for example). In this case origin and spacing metadata make sense as they are, even though the experimenters know the physical units of the images are in hertz, not in meters. The problem with the metadata arises exclusively doing the FFT. If we modify it, we will lose the input image metadata. If we don't, the metadata of the output requires extra knowledge and read the documentation to be meaningful. Also the Origin is tricky... the first bin, or index {0}, of the output of an FFT depends on the frequency layout of the algorithm, usually in the "standard" layout, it corresponds to zero frequency [3]. So the Origin(Frequency) will be 0.0 if we understand the origin with the value of the first index..., but if the FFT is shifted, the first index would be now a large, negative frequency. In the ExternalModule, I am using a FrequencyIterator, derived from a regular ImageRegionIterator. It adds a GetFrequency() function, providing an abstraction to let the user stop worrying about the specifics of the frequency layout. There are 3 different layouts, Regular, FFTLayout, and ShiftedFFTLayout. - Regular is a normal iterator, with GetFrequency() calling Get(), for the case I commented when the image is taken in the frequency domain, but the user needs to use the IsotropicWavelet module on it (which requires frequency iterators). - FFTLayout is the standard FFT layout, vnl, fftw, and I think python uses it as well. This is the default type. - ShiftedFFTLayout, the layout after shifting the FFT. This allows to iterate an image from the frequency domain, and get the frequency value, the frequency bin, as well as actual value of the current pixel. And also they are a good place to store frequency 'metadata' information such as FrequencyOrigin, and FrequencySpacing, that depends on the frequency layout: See [4] Cheers, Pablo [1] https://www.google.co.nz/search?q=photo+detector+scattering+result&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjK2NbzntzSAhUEmZQKHZenBU4Q_AUIBigB&biw=1920&bih=947#imgrc=OA28hyPkRDniVM: [2] http://www.azom.com/article.aspx?ArticleID=12502 [3] https://docs.scipy.org/doc/numpy/reference/routines.fft.html [4] https://github.com/phcerdan/ITKIsotropicWavelets/blob/master/include/itkFrequencyFFTLayoutImageRegionConstIteratorWithIndex.h#L288 On Fri, Mar 17, 2017 at 8:43 AM, matt.mccormick at kitware.com > wrote: Hi Pablo, Thanks for discussing this issue and the excellent overview of the topic. The meaning of metadata in the frequency domain could definitely a source of confusion and bugs, and we would benefit from a clarity and consensus on the subject. For practical reasons of pipeline use and existing algorithm application, re-use of itk::Image as much about seems beneficial. What do you think about adding documentation to itk::ImageBase::GetSpacing() [1]? We could state that the Spacing is always in physical units. If the image is in the frequency domain, then Spacing is equal to 1 / Frequency Sampling and the Frequency Bin Resolution equals 1 / (Frequency Sampling * N), where N is the Size of the LargestPossibleImageRegion (but not in the half-Hermitian storage). Then, the frequency shrinkage filter would increase its output Spacing accordingly so metadata is updated throughout an analysis pipeline. Thanks, Matt [1] https://itk.org/Doxygen/html/classitk_1_1ImageBase.html#aaadef7c0a9627cf22b0fbf2de6de913c On Tue, Mar 14, 2017 at 4:54 AM, Pablo Hern?ndez > wrote: > Hey there, > > I am contributing with the IsotropicWavelet external module, and I am facing > some doubts about the meaning of image metadata in frequency-domain images. > > Current behavior performing a FFTforward is to copy the input image > metadata: spacing,origin, and direction to the output, even though the > output is in the frequency domain or dual space. I guess it is better copy > it than to lose it, but doesn't mean that the metadata is meaningful in the > frequency domain. Spacing information can led the user to think that between > each pixel holding a frequency value, that spacing is like a frequency > resolution, but it is not. > > Some refresh of the lingo to help: > dual space: f ~ 1/T (where T can represent time or space) > Units of frequency are: Hertz = 1 / [ T ], or Radians (Rad = 2pi Hz) > Spacing (or Sampling in the lingo of digital signaling processing) in a > spatial domain image is associated with the resolution of the image, and > represents the pixel width in physical units. > The Origin is an array holding some relative units to world coordinates that > are meaningful for the experimenter. > > What does spacing mean in a frequency domain image? The frequency resolution > after an FFT is related to the size of the FFT (the size of the image) and > the sampling rate of the original image (more here). > > Freq_bin_resolution = Freq_sampling / N. Where N is the size of the image, > and Freq_sampling = 1 / Spacing. All these variables are arrays, with size > equal to the dimension of the image. > > And the origin, in the case of the output of an FFT, depends on the layout > of that particular FFT algorithm. VNL and FFTW share the same layout, where, > for example, the zero frequency bin is stored the first index {{0}} , (also > note that the physical units of that first index is always 0.0 Hz, > regardless of origin, or spacing of the original image). > > If we set the Freq_sampling to {{1.0}} (corresponding to a Spacing of > {{1.0}}, then the freq resolution will be {{1/N}} (depending on the size!), > and the range of frequencies will always be: (-0.5, 0.5] Hz, or (-pi, pi] > rads (independent of the size). > > So right now, in the wavelet module that works in the frequency domain, and > does some shrinkage in this domain, I have chosen to ignore all this > metadata, and let the user recover it if he/she needs it, but it might be > worth to think about this. > > For example, in a shrinkage by a factor of 2, the width of a pixel > representing a frequency, doubles. F_bin_resolution =1/(N/2) = 2/N, and the > range of allowed frequencies keeps the same: (-Freq_sampling/2.0, > Freq_sampling/2.0] or (-0.5, 0.5] or (-pi,pi] if Freq_sampling =1.0 > > This is all good, but hard to grasp when the metadata can be misleading. If > you have any thoughts on how to improve this or be clearer to the user, > happy to hear, meanwhile I think I will keep ignoring any metadata > associated with the spatial domain when dealing with frequency domain > images. > > Cheers, > Pablo > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From pablo.hernandez.cerdan at outlook.com Tue May 2 01:24:55 2017 From: pablo.hernandez.cerdan at outlook.com (=?utf-8?B?UGFibG8gSGVybsOhbmRleg==?=) Date: Tue, 2 May 2017 05:24:55 +0000 Subject: [ITK-users] Metadata Information in FFT images can be misleading. In-Reply-To: References: Message-ID: >> - Regular is a normal iterator, with GetFrequency() calling Get(), for the case I commented when the image is taken in the frequency domain, but the user needs to use the IsotropicWavelet module on it (which requires frequency iterators) Sorry, here, the iterator method GetFrequency() does not calls Get(), it returns an array similar to using TransformIndexToPhysicalPoint on GetIndex() (but ignoring Direction metadata) [1] [1] https://github.com/phcerdan/ITKIsotropicWavelets/blob/master/include/itkFrequencyImageRegionConstIteratorWithIndex.h#L135 On Tue, May 2, 2017 at 2:41 PM, Pablo Hern?ndez > wrote: Thanks Matt, I agree that the more appropriate thing to do would be to document better, but maybe only in the ForwardFFT filter instead of ImageBase? I can imagine experiments where the input images are in the frequency domain: photo detectors in scattering ( from this search [1], these images [2] for example). In this case origin and spacing metadata make sense as they are, even though the experimenters know the physical units of the images are in hertz, not in meters. The problem with the metadata arises exclusively doing the FFT. If we modify it, we will lose the input image metadata. If we don't, the metadata of the output requires extra knowledge and read the documentation to be meaningful. Also the Origin is tricky... the first bin, or index {0}, of the output of an FFT depends on the frequency layout of the algorithm, usually in the "standard" layout, it corresponds to zero frequency [3]. So the Origin(Frequency) will be 0.0 if we understand the origin with the value of the first index..., but if the FFT is shifted, the first index would be now a large, negative frequency. In the ExternalModule, I am using a FrequencyIterator, derived from a regular ImageRegionIterator. It adds a GetFrequency() function, providing an abstraction to let the user stop worrying about the specifics of the frequency layout. There are 3 different layouts, Regular, FFTLayout, and ShiftedFFTLayout. - Regular is a normal iterator, with GetFrequency() calling Get(), for the case I commented when the image is taken in the frequency domain, but the user needs to use the IsotropicWavelet module on it (which requires frequency iterators). - FFTLayout is the standard FFT layout, vnl, fftw, and I think python uses it as well. This is the default type. - ShiftedFFTLayout, the layout after shifting the FFT. This allows to iterate an image from the frequency domain, and get the frequency value, the frequency bin, as well as actual value of the current pixel. And also they are a good place to store frequency 'metadata' information such as FrequencyOrigin, and FrequencySpacing, that depends on the frequency layout: See [4] Cheers, Pablo [1] https://www.google.co.nz/search?q=photo+detector+scattering+result&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjK2NbzntzSAhUEmZQKHZenBU4Q_AUIBigB&biw=1920&bih=947#imgrc=OA28hyPkRDniVM: [2] http://www.azom.com/article.aspx?ArticleID=12502 [3] https://docs.scipy.org/doc/numpy/reference/routines.fft.html [4] https://github.com/phcerdan/ITKIsotropicWavelets/blob/master/include/itkFrequencyFFTLayoutImageRegionConstIteratorWithIndex.h#L288 On Fri, Mar 17, 2017 at 8:43 AM, matt.mccormick at kitware.com > wrote: Hi Pablo, Thanks for discussing this issue and the excellent overview of the topic. The meaning of metadata in the frequency domain could definitely a source of confusion and bugs, and we would benefit from a clarity and consensus on the subject. For practical reasons of pipeline use and existing algorithm application, re-use of itk::Image as much about seems beneficial. What do you think about adding documentation to itk::ImageBase::GetSpacing() [1]? We could state that the Spacing is always in physical units. If the image is in the frequency domain, then Spacing is equal to 1 / Frequency Sampling and the Frequency Bin Resolution equals 1 / (Frequency Sampling * N), where N is the Size of the LargestPossibleImageRegion (but not in the half-Hermitian storage). Then, the frequency shrinkage filter would increase its output Spacing accordingly so metadata is updated throughout an analysis pipeline. Thanks, Matt [1] https://itk.org/Doxygen/html/classitk_1_1ImageBase.html#aaadef7c0a9627cf22b0fbf2de6de913c On Tue, Mar 14, 2017 at 4:54 AM, Pablo Hern?ndez > wrote: > Hey there, > > I am contributing with the IsotropicWavelet external module, and I am facing > some doubts about the meaning of image metadata in frequency-domain images. > > Current behavior performing a FFTforward is to copy the input image > metadata: spacing,origin, and direction to the output, even though the > output is in the frequency domain or dual space. I guess it is better copy > it than to lose it, but doesn't mean that the metadata is meaningful in the > frequency domain. Spacing information can led the user to think that between > each pixel holding a frequency value, that spacing is like a frequency > resolution, but it is not. > > Some refresh of the lingo to help: > dual space: f ~ 1/T (where T can represent time or space) > Units of frequency are: Hertz = 1 / [ T ], or Radians (Rad = 2pi Hz) > Spacing (or Sampling in the lingo of digital signaling processing) in a > spatial domain image is associated with the resolution of the image, and > represents the pixel width in physical units. > The Origin is an array holding some relative units to world coordinates that > are meaningful for the experimenter. > > What does spacing mean in a frequency domain image? The frequency resolution > after an FFT is related to the size of the FFT (the size of the image) and > the sampling rate of the original image (more here). > > Freq_bin_resolution = Freq_sampling / N. Where N is the size of the image, > and Freq_sampling = 1 / Spacing. All these variables are arrays, with size > equal to the dimension of the image. > > And the origin, in the case of the output of an FFT, depends on the layout > of that particular FFT algorithm. VNL and FFTW share the same layout, where, > for example, the zero frequency bin is stored the first index {{0}} , (also > note that the physical units of that first index is always 0.0 Hz, > regardless of origin, or spacing of the original image). > > If we set the Freq_sampling to {{1.0}} (corresponding to a Spacing of > {{1.0}}, then the freq resolution will be {{1/N}} (depending on the size!), > and the range of frequencies will always be: (-0.5, 0.5] Hz, or (-pi, pi] > rads (independent of the size). > > So right now, in the wavelet module that works in the frequency domain, and > does some shrinkage in this domain, I have chosen to ignore all this > metadata, and let the user recover it if he/she needs it, but it might be > worth to think about this. > > For example, in a shrinkage by a factor of 2, the width of a pixel > representing a frequency, doubles. F_bin_resolution =1/(N/2) = 2/N, and the > range of allowed frequencies keeps the same: (-Freq_sampling/2.0, > Freq_sampling/2.0] or (-0.5, 0.5] or (-pi,pi] if Freq_sampling =1.0 > > This is all good, but hard to grasp when the metadata can be misleading. If > you have any thoughts on how to improve this or be clearer to the user, > happy to hear, meanwhile I think I will keep ignoring any metadata > associated with the spatial domain when dealing with frequency domain > images. > > Cheers, > Pablo > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Tue May 2 10:28:02 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Tue, 2 May 2017 10:28:02 -0400 Subject: [ITK-users] Metadata Information in FFT images can be misleading. In-Reply-To: References: Message-ID: On Mon, May 1, 2017 at 10:41 PM, Pablo Hern?ndez < pablo.hernandez.cerdan at outlook.com> wrote: > Thanks Matt, I agree that the more appropriate thing to do would be to > document better, but maybe only in the ForwardFFT filter instead of > ImageBase? > Yes, ForwardFFTImageFilter is a good location, too. I can imagine experiments where the input images are in the frequency > domain: photo detectors in scattering ( from this search [1], these images > [2] for example). In this case origin and spacing metadata make sense as > they are, even though the experimenters know the physical units of the > images are in hertz, not in meters. > Clarification and a good interface is also important for a common application encountered in medical imaging: magnetic resonance imaging collects samples in k-space. > The problem with the metadata arises exclusively doing the FFT. If we > modify it, we will lose the input image metadata. If we don't, the metadata > of the output requires extra knowledge and read the documentation to be > meaningful. > > Also the Origin is tricky... the first bin, or index {0}, of the output of > an FFT depends on the frequency layout of the algorithm, usually in the > "standard" layout, it corresponds to zero frequency [3]. So the > Origin(Frequency) will be 0.0 if we understand the origin with the value of > the first index..., but if the FFT is shifted, the first index would be now > a large, negative frequency. > > In the ExternalModule, I am using a FrequencyIterator, derived from a > regular ImageRegionIterator. It adds a GetFrequency() function, providing > an abstraction to let the user stop worrying about the specifics of the > frequency layout. > There are 3 different layouts, Regular, FFTLayout, and ShiftedFFTLayout. > - Regular is a normal iterator, with GetFrequency() calling Get(), for the > case I commented when the image is taken in the frequency domain, but the > user needs to use the IsotropicWavelet module on it (which requires > frequency iterators). > - FFTLayout is the standard FFT layout, vnl, fftw, and I think python uses > it as well. This is the default type. > - ShiftedFFTLayout, the layout after shifting the FFT. > > This allows to iterate an image from the frequency domain, and get the > frequency value, the frequency bin, as well as actual value of the current > pixel. > And also they are a good place to store frequency 'metadata' information > such as FrequencyOrigin, and FrequencySpacing, that depends on the > frequency layout: See [4] > These iterators with the explicit methods are excellent! The naming makes their meaning clear, and they are also practically useful for processing FFT data. Great idea. Cheers, Matt -------------- next part -------------- An HTML attachment was scrubbed... URL: From fisidoro at ethz.ch Tue May 2 11:20:48 2017 From: fisidoro at ethz.ch (D'Isidoro Fabio) Date: Tue, 2 May 2017 15:20:48 +0000 Subject: [ITK-users] [ITK] ITK PyBuffer get physical point coordinates In-Reply-To: References: <50B858FB5F53124F9E32314E5C1B409445984B2A@MBX112.d.ethz.ch> <50B858FB5F53124F9E32314E5C1B409445984BBC@MBX112.d.ethz.ch> Message-ID: <50B858FB5F53124F9E32314E5C1B4094459858FA@MBX112.d.ethz.ch> Hi Francois, It works with your commands, the difference being the use of: itk.GetArrayFromImage(source) in your version, instead of: itk.PyBuffer[ImageType].GetArrayFromImage(source) in my version. May you explain me the difference, and why using PyBuffer does not work for this case? Also, when using VectorImage I get the error ?No module named 'ITKQuadEdgeMeshPython'?. This is the only module that failed in my ITK Python build. Is this a known bug or it was just for my build? Thank you! Fabio. From: Francois Budin [mailto:francois.budin at kitware.com] Sent: Freitag, 28. April 2017 23:12 To: D'Isidoro Fabio Cc: Lowekamp, Bradley (NIH/NLM/LHC) [C] ; insight-users at itk.org Subject: Re: [ITK-users] [ITK] ITK PyBuffer get physical point coordinates Hello Fabio, I was able to use this filter in Python. Here is the commands I typed: In [14]: ImageType=itk.Image[itk.Vector[itk.F,2],2] In [15]: source=itk.PhysicalPointImageSource[ImageType].New() In [16]: source.SetSize([5,5]) In [17]: source.SetOrigin([0,0]) In [18]: source.SetSpacing([.5,.5]) In [19]: source.Update() In [20]: itk.GetArrayFromImage(source) Out[20]: itkndarray([[[ 0. , 0. ], [ 0.5, 0. ], [ 1. , 0. ], [ 1.5, 0. ], [ 2. , 0. ]], [[ 0. , 0.5], [ 0.5, 0.5], [ 1. , 0.5], [ 1.5, 0.5], [ 2. , 0.5]], [[ 0. , 1. ], [ 0.5, 1. ], [ 1. , 1. ], [ 1.5, 1. ], [ 2. , 1. ]], [[ 0. , 1.5], [ 0.5, 1.5], [ 1. , 1.5], [ 1.5, 1.5], [ 2. , 1.5]], [[ 0. , 2. ], [ 0.5, 2. ], [ 1. , 2. ], [ 1.5, 2. ], [ 2. , 2. ]]], dtype=float32) It also worked with VectorImages: In [22]: ImageType=itk.VectorImage[itk.F,2] In [23]: source=itk.PhysicalPointImageSource[ImageType].New() In [24]: source.SetOrigin([0,0]) In [25]: source.SetSize([5,5]) In [26]: source.SetSpacing([.5,.5]) In [27]: source.Update() In [28]: itk.GetArrayFromImage(source) To answer your questions: 1) This filter is only wrapped over image of vectors and vector images. You can have the list of types that are available in Python with itk.PhysicalPointImageSource.GetTypes() 2) You may have a version of ITK Python for which VectorImage is not wrapped for PyBuffer. You can try to update your ITK Python [1] Hope this helps, Francois [1] https://github.com/InsightSoftwareConsortium/ITKPythonPackage On Fri, Apr 28, 2017 at 12:05 PM, D'Isidoro Fabio > wrote: Thank you for your reply. 1) I have tried as a first step the following: DRRPhy = itk.PhysicalPointImageSource[itk.Image[itk.Point[itk.F, Dimension], Dimension]].New() But I get the error: KeyError: "itkTemplate : No template (, 3) for the itk::Image class" So I guess I can?t generate an image with itk.Points as PixelType. Therefore I chose to use a VectorImage as ImageType in Input to the PhysicalPointImageSource. sourceImage = itk.PhysicalPointImageSource[itk.VectorImage[itk.F, Dimension]].New() sourceImage.SetSize(size) sourceImage.SetSpacing(spacing) sourceImage.SetOrigin(origin) #DRRPhy.SetIndex(start) it does not work, how to set the start index? DRRPhy.SetDirection(direction) 2) However, using PyBuffer to get a numpy array form that does not work: sourceImageArray = itk. PyBuffer[ImageType].GetArrayFromImage(sourceImage) I get the error: AttributeError: 'itkPhysicalPointImageSourceVIF3' object has no attribute 'GetLargestPossibleRegion' Am I doing the right thing in point 1) ? How could I solve point 2) ? Thank you ! Fabio. From: Lowekamp, Bradley (NIH/NLM/LHC) [C] [mailto:blowekamp at mail.nih.gov] Sent: Donnerstag, 27. April 2017 23:16 To: D'Isidoro Fabio > Cc: insight-users at itk.org Subject: Re: [ITK] [ITK-users] ITK PyBuffer get physical point coordinates Hi! You can generate an image of the physical locations of each pixel with the PhysicalPointImageSource filter: https://itk.org/Doxygen/html/classitk_1_1PhysicalPointImageSource.html Very recently added is the SetReferenceImage, which can be use to copy the meta data from one image to the parameters of this filter. If your version is not super recent then you can manually set the Size, Spacing, Origin, Direction and StartIndex. After you generate the point image you should be able to convert to with the same method. HTH, Brad On Apr 27, 2017, at 4:58 PM, D'Isidoro Fabio > wrote: Hallo, I know it?s possible to get a numpy array of an itk image with: itk.PyBuffer[ImageType].GetArrayFromImage(Image) Is it by any chance also possible to obtain a (flattended) numpy array of the physical coordinates of the image pixels too? Thank you! _____________________________________ 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: From francois.budin at kitware.com Tue May 2 11:48:51 2017 From: francois.budin at kitware.com (Francois Budin) Date: Tue, 2 May 2017 11:48:51 -0400 Subject: [ITK-users] [ITK] ITK PyBuffer get physical point coordinates In-Reply-To: <50B858FB5F53124F9E32314E5C1B4094459858FA@MBX112.d.ethz.ch> References: <50B858FB5F53124F9E32314E5C1B409445984B2A@MBX112.d.ethz.ch> <50B858FB5F53124F9E32314E5C1B409445984BBC@MBX112.d.ethz.ch> <50B858FB5F53124F9E32314E5C1B4094459858FA@MBX112.d.ethz.ch> Message-ID: Hello Fabio, The main difference between itk.GetArrayFromImage() and itk.PyBuffer[ImageType].GetArrayFromImage() is that itk.GetAraryFromImage() is a wrapping of itk.PyBuffer[ImageType].GetArrayFromImage() in Python that automatically finds the type of the input image (and is a shorted command line). The reason why this worked but not itk.PyBuffer[ImageType.GetArrayFromImage() is because in the wrapping, if a filter is given instead of an image, the output of the filter will be used. Which means that what really happen is that you gave a filter to a function (itk.PyBuffer[ImageType].GetArrayFromImage()) expecting an image. If you want to work with the long command, you have to make sure that the input is an image: image=source.GetOutput() itk.PyBuffer[ImageType].GetArrayFromImage(image) And then it should work. Hope this helps, Francois On Tue, May 2, 2017 at 11:20 AM, D'Isidoro Fabio wrote: > Hi Francois, > > > > It works with your commands, the difference being the use of: > > > > itk.GetArrayFromImage(source) > > > > in your version, instead of: > > > > itk.PyBuffer[ImageType].GetArrayFromImage(source) > > > > in my version. > > > > May you explain me the difference, and why using PyBuffer does not work > for this case? > > > > Also, when using VectorImage I get the error ?No module named > 'ITKQuadEdgeMeshPython'?. This is the only module that failed in my ITK > Python build. Is this a known bug or it was just for my build? > > > > Thank you! > > > > Fabio. > > *From:* Francois Budin [mailto:francois.budin at kitware.com] > *Sent:* Freitag, 28. April 2017 23:12 > *To:* D'Isidoro Fabio > *Cc:* Lowekamp, Bradley (NIH/NLM/LHC) [C] ; > insight-users at itk.org > *Subject:* Re: [ITK-users] [ITK] ITK PyBuffer get physical point > coordinates > > > > Hello Fabio, > > I was able to use this filter in Python. Here is the commands I typed: > In [14]: ImageType=itk.Image[itk.Vector[itk.F,2],2] > > In [15]: source=itk.PhysicalPointImageSource[ImageType].New() > > In [16]: source.SetSize([5,5]) > > In [17]: source.SetOrigin([0,0]) > > In [18]: source.SetSpacing([.5,.5]) > > In [19]: source.Update() > > In [20]: itk.GetArrayFromImage(source) > Out[20]: > itkndarray([[[ 0. , 0. ], > [ 0.5, 0. ], > [ 1. , 0. ], > [ 1.5, 0. ], > [ 2. , 0. ]], > > [[ 0. , 0.5], > [ 0.5, 0.5], > [ 1. , 0.5], > [ 1.5, 0.5], > [ 2. , 0.5]], > > [[ 0. , 1. ], > [ 0.5, 1. ], > [ 1. , 1. ], > [ 1.5, 1. ], > [ 2. , 1. ]], > > [[ 0. , 1.5], > [ 0.5, 1.5], > [ 1. , 1.5], > [ 1.5, 1.5], > [ 2. , 1.5]], > > [[ 0. , 2. ], > [ 0.5, 2. ], > [ 1. , 2. ], > [ 1.5, 2. ], > [ 2. , 2. ]]], dtype=float32) > > It also worked with VectorImages: > > In [22]: ImageType=itk.VectorImage[itk.F,2] > > In [23]: source=itk.PhysicalPointImageSource[ImageType].New() > > In [24]: source.SetOrigin([0,0]) > > In [25]: source.SetSize([5,5]) > > In [26]: source.SetSpacing([.5,.5]) > > In [27]: source.Update() > > In [28]: itk.GetArrayFromImage(source) > > > > To answer your questions: > > 1) This filter is only wrapped over image of vectors and vector images. > You can have the list of types that are available in Python with > itk.PhysicalPointImageSource.GetTypes() > > 2) You may have a version of ITK Python for which VectorImage is not > wrapped for PyBuffer. You can try to update your ITK Python [1] > > Hope this helps, > > Francois > > > [1] https://github.com/InsightSoftwareConsortium/ITKPythonPackage > > > > On Fri, Apr 28, 2017 at 12:05 PM, D'Isidoro Fabio > wrote: > > Thank you for your reply. > > > > 1) I have tried as a first step the following: > > > > DRRPhy = itk.PhysicalPointImageSource[itk.Image[itk.Point[itk.F, > Dimension], Dimension]].New() > > > > But I get the error: > > > > KeyError: "itkTemplate : No template (, > 3) for the itk::Image class" > > > > So I guess I can?t generate an image with itk.Points as PixelType. > Therefore I chose to use a VectorImage as ImageType in Input to the > PhysicalPointImageSource. > > > > sourceImage = itk.PhysicalPointImageSource[itk.VectorImage[itk.F, > Dimension]].New() > > sourceImage.SetSize(size) > > sourceImage.SetSpacing(spacing) > > sourceImage.SetOrigin(origin) > > #DRRPhy.SetIndex(start) it does not work, how to set the start index? > > DRRPhy.SetDirection(direction) > > > > 2) However, using PyBuffer to get a numpy array form that does not > work: > > > > sourceImageArray = itk. PyBuffer[ImageType].GetArrayFromImage(sourceImage) > > > > I get the error: > > > > AttributeError: 'itkPhysicalPointImageSourceVIF3' object has no attribute > 'GetLargestPossibleRegion' > > > > > > Am I doing the right thing in point 1) ? > > How could I solve point 2) ? > > > > Thank you ! > > > > Fabio. > > > > *From:* Lowekamp, Bradley (NIH/NLM/LHC) [C] [mailto:blowekamp at mail.nih.gov] > > *Sent:* Donnerstag, 27. April 2017 23:16 > *To:* D'Isidoro Fabio > *Cc:* insight-users at itk.org > *Subject:* Re: [ITK] [ITK-users] ITK PyBuffer get physical point > coordinates > > > > Hi! > > > > You can generate an image of the physical locations of each pixel with the > PhysicalPointImageSource filter: > > https://itk.org/Doxygen/html/classitk_1_1PhysicalPointImageSource.html > > > > Very recently added is the SetReferenceImage, which can be use to copy the > meta data from one image to the parameters of this filter. If your version > is not super recent then you can manually set the Size, Spacing, Origin, > Direction and StartIndex. > > > > After you generate the point image you should be able to convert to with > the same method. > > > > HTH, > > Brad > > > > > > On Apr 27, 2017, at 4:58 PM, D'Isidoro Fabio wrote: > > > > Hallo, > > > > I know it?s possible to get a numpy array of an itk image with: > > > > itk.PyBuffer[ImageType].GetArrayFromImage(Image) > > > > Is it by any chance also possible to obtain a (flattended) numpy array of > the physical coordinates of the image pixels too? > > > > Thank you! > > > > _____________________________________ > 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 > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From noreply at insightsoftwareconsortium.org Wed May 3 16:42:13 2017 From: noreply at insightsoftwareconsortium.org (Insight Journal) Date: Wed, 3 May 2017 16:42:13 -0400 (EDT) Subject: [ITK-users] New Submission: N-Dimensional Computation of Strain Tensor Images in the Insight Toolkit Message-ID: <20170503204213.A94883D6213A@insight-journal.org> Hello, A new submission has been added to the Insight Journal. Title: N-Dimensional Computation of Strain Tensor Images in the Insight Toolkit Authors: McCormick M. Abstract: Strain quantifies local deformation of a solid body. In medical imaging, strain reflects how tissue deforms under load. Or, it can quantify growth or atrophy of tissue, such as the growth of a tumor. Additionally, strain from the transformation that results from image-to-image registration can be applied as an input to a biomechanical constitutive model. This document describes N-dimensional computation of strain tensor images in the Insight Toolkit (ITK), www.itk.org. Two filters are described. The first filter computes a strain tensor image from a displacement field image. The second filter computes a strain tensor image from a general spatial transform. In both cases, infinitesimal, Green-Lagrangian, or Eulerian-Almansi strain can be generated. This paper is accompanied with the source code, input data, parameters and output data that the authors 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/3573 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/ . From jonasteuwen at gmail.com Thu May 4 12:48:55 2017 From: jonasteuwen at gmail.com (Jonas Teuwen) Date: Thu, 4 May 2017 18:48:55 +0200 Subject: [ITK-users] sitk.DiscreteGaussianImageFilter with different variances per direction Message-ID: Dear all, I am downsampling an image in the in-plane resolution (3D) and I want to apply a Gaussian filter beforehand. I want to have a different variance (0) in depth as I do not downsample in this direction. https://itk.org/SimpleITKDoxygen/html/classitk_1_1simple_1_1DiscreteGaussianImageFilter.html#details mentions that the 'variance can be set independently in each dimension'. How would I do this with SetVariance()? Best Regards, Jonas Teuwen -------------- next part -------------- An HTML attachment was scrubbed... URL: From dzenanz at gmail.com Thu May 4 13:18:43 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Thu, 4 May 2017 13:18:43 -0400 Subject: [ITK-users] sitk.DiscreteGaussianImageFilter with different variances per direction In-Reply-To: References: Message-ID: Hi Jonas, I don't know whether that is possible with SimpleITK, but with regular ITK you just pass an array of variances (each corresponding to one spatial dimension). Make sure that (last) one is 0. Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Thu, May 4, 2017 at 12:48 PM, Jonas Teuwen wrote: > Dear all, > > I am downsampling an image in the in-plane resolution (3D) and I want to > apply a Gaussian filter beforehand. I want to have a different variance (0) > in depth as I do not downsample in this direction. https://itk.org/ > SimpleITKDoxygen/html/classitk_1_1simple_1_1DiscreteGaussianImageFilter. > html#details mentions that the 'variance can be set independently in each > dimension'. How would I do this with SetVariance()? > > Best Regards, > Jonas Teuwen > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From zivrafael.yaniv at nih.gov Thu May 4 14:16:55 2017 From: zivrafael.yaniv at nih.gov (Yaniv, Ziv Rafael (NIH/NLM/LHC) [C]) Date: Thu, 4 May 2017 18:16:55 +0000 Subject: [ITK-users] sitk.DiscreteGaussianImageFilter with different variances per direction In-Reply-To: References: Message-ID: <07380EA2-EEE1-470F-ADEA-21985B856445@mail.nih.gov> Hello Jonas, Unfortunately, this is currently not supported by the Discrete Gaussian filter in SimpleITK. I would recommend doing it with the recursive Gaussian filter which will let you independently filter along each dimension: img = sitk.ReadImage("sphere.mha") # directions are 0,1,2 (x,y,z), as you only want to blur in x and y x_blurred = sitk.RecursiveGaussian(img, sigma = 2, direction = 0) xy_blurred = sitk.RecursiveGaussian(x_blurred, sigma = 4, direction = 1) Please also add this as a feature request for the Discrete Gaussian filter on our github issue tracker (https://github.com/SimpleITK/SimpleITK/issues). regards Ziv From: Jonas Teuwen Date: Thursday, May 4, 2017 at 12:48 PM To: "insight-users at itk.org" Subject: [ITK-users] sitk.DiscreteGaussianImageFilter with different variances per direction Dear all, I am downsampling an image in the in-plane resolution (3D) and I want to apply a Gaussian filter beforehand. I want to have a different variance (0) in depth as I do not downsample in this direction. https://itk.org/SimpleITKDoxygen/html/classitk_1_1simple_1_1DiscreteGaussianImageFilter.html#details mentions that the 'variance can be set independently in each dimension'. How would I do this with SetVariance()? Best Regards, Jonas Teuwen -------------- next part -------------- An HTML attachment was scrubbed... URL: From anqin888 at gmail.com Fri May 5 12:22:55 2017 From: anqin888 at gmail.com (an qin) Date: Fri, 5 May 2017 12:22:55 -0400 Subject: [ITK-users] simple ITK C# show image Message-ID: Hi, I am new to C# simpleITK and can't find much sample codes. I tried to read dicom image and display them in simpleITK. The dicom image was read without a problem. But got an exception when show. Any suggestion will be appreciated. Thanks. Andy //-------------code------------ using itk.simple; namespace TestReadDicom { class Program { static void Main(string[] args) { var myreader = new ImageSeriesReader(); var names = ImageSeriesReader.GetGDCMSeriesFileNames(@"E:\ImageSet_0.DICOM"); myreader.SetFileNames(names); var image = myreader.Execute(); VectorDouble imDim = image.GetOrigin(); Console.WriteLine(imDim[0].ToString()); SimpleITK.Show(image); } } } //-------------output------------ Additional information: Exception thrown in SimpleITK Show: ..\..\..\..\..\SimpleITK\Code\IO\src\sitkShow.cxx:500: sitk::ERROR: Error in administrating child process: [The parameter is incorrect -------------- next part -------------- An HTML attachment was scrubbed... URL: From blowekamp at mail.nih.gov Fri May 5 13:11:47 2017 From: blowekamp at mail.nih.gov (Lowekamp, Bradley (NIH/NLM/LHC) [C]) Date: Fri, 5 May 2017 17:11:47 +0000 Subject: [ITK-users] [ITK] simple ITK C# show image In-Reply-To: References: Message-ID: <90BA44E8-E6FD-4167-9F10-B07A66801A23@mail.nih.gov> Hello, The documentation for the sitk::Show method can be found here: https://itk.org/SimpleITKDoxygen/html/namespaceitk_1_1simple.html#ac8416e6e7f02dedfe8373b83dbea411d I suspect that you don?t have Fiji/ImageJ installed, or the method was not able to locate the executable. There are some environment variables that can be set to properly configure it. The Show method is designed to be a convenience method to launch an external viewer to display data. It is convenient to use in interactive environments such as python or R for a quick display. SimpleITK provides wrapping for a large number of languages include Python, R, Lua, Tcl, Ruby, Java and C#. Some languages have more examples then others. In general it?s not too hard to figure out how to translate an useful example from one language to another. You can find a list of basic examples here: https://itk.org/SimpleITKDoxygen/html/examples.html And may Python and R notebooks here: https://github.com/InsightSoftwareConsortium/SimpleITK-Notebooks Hope that helps, Brad On May 5, 2017, at 12:22 PM, an qin > wrote: Hi, I am new to C# simpleITK and can't find much sample codes. I tried to read dicom image and display them in simpleITK. The dicom image was read without a problem. But got an exception when show. Any suggestion will be appreciated. Thanks. Andy //-------------code------------ using itk.simple; namespace TestReadDicom { class Program { static void Main(string[] args) { var myreader = new ImageSeriesReader(); var names = ImageSeriesReader.GetGDCMSeriesFileNames(@"E:\ImageSet_0.DICOM"); myreader.SetFileNames(names); var image = myreader.Execute(); VectorDouble imDim = image.GetOrigin(); Console.WriteLine(imDim[0].ToString()); SimpleITK.Show(image); } } } //-------------output------------ Additional information: Exception thrown in SimpleITK Show: ..\..\..\..\..\SimpleITK\Code\IO\src\sitkShow.cxx:500: sitk::ERROR: Error in administrating child process: [The parameter is incorrect _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users _______________________________________________ Community mailing list Community at itk.org http://public.kitware.com/mailman/listinfo/community -------------- next part -------------- An HTML attachment was scrubbed... URL: From anqin888 at gmail.com Fri May 5 13:35:26 2017 From: anqin888 at gmail.com (an qin) Date: Fri, 5 May 2017 13:35:26 -0400 Subject: [ITK-users] [ITK] simple ITK C# show image In-Reply-To: <90BA44E8-E6FD-4167-9F10-B07A66801A23@mail.nih.gov> References: <90BA44E8-E6FD-4167-9F10-B07A66801A23@mail.nih.gov> Message-ID: Brad, Thank you so much. Yes, I do not have Fiji/ImageJ installed. --Andy On Fri, May 5, 2017 at 1:11 PM, Lowekamp, Bradley (NIH/NLM/LHC) [C] < blowekamp at mail.nih.gov> wrote: > Hello, > > The documentation for the sitk::Show method can be found here: > https://itk.org/SimpleITKDoxygen/html/namespaceitk_1_1simple.html# > ac8416e6e7f02dedfe8373b83dbea411d > > I suspect that you don?t have Fiji/ImageJ installed, or the method was not > able to locate the executable. There are some environment variables that > can be set to properly configure it. > > The Show method is designed to be a convenience method to launch an > external viewer to display data. It is convenient to use in interactive > environments such as python or R for a quick display. > > SimpleITK provides wrapping for a large number of languages include > Python, R, Lua, Tcl, Ruby, Java and C#. Some languages have more examples > then others. In general it?s not too hard to figure out how to translate an > useful example from one language to another. > > You can find a list of basic examples here: > > https://itk.org/SimpleITKDoxygen/html/examples.html > > And may Python and R notebooks here: > > https://github.com/InsightSoftwareConsortium/SimpleITK-Notebooks > > Hope that helps, > Brad > > On May 5, 2017, at 12:22 PM, an qin wrote: > > Hi, I am new to C# simpleITK and can't find much sample codes. I tried to > read dicom image and display them in simpleITK. The dicom image was read > without a problem. But got an exception when show. > > Any suggestion will be appreciated. > > Thanks. > Andy > > > //-------------code------------ > using itk.simple; > > namespace TestReadDicom > { > class Program > { > static void Main(string[] args) > { > var myreader = new ImageSeriesReader(); > var names = ImageSeriesReader.GetGDCMSeriesFileNames(@"E:\ > ImageSet_0.DICOM"); > myreader.SetFileNames(names); > var image = myreader.Execute(); > VectorDouble imDim = image.GetOrigin(); > Console.WriteLine(imDim[0].ToString()); > SimpleITK.Show(image); > } > } > } > > //-------------output------------ > Additional information: Exception thrown in SimpleITK Show: > ..\..\..\..\..\SimpleITK\Code\IO\src\sitkShow.cxx:500: > > sitk::ERROR: Error in administrating child process: [The parameter is > incorrect > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From fisidoro at ethz.ch Mon May 8 07:40:14 2017 From: fisidoro at ethz.ch (D'Isidoro Fabio) Date: Mon, 8 May 2017 11:40:14 +0000 Subject: [ITK-users] [ITK] ITK PyBuffer get physical point coordinates In-Reply-To: References: <50B858FB5F53124F9E32314E5C1B409445984B2A@MBX112.d.ethz.ch> <50B858FB5F53124F9E32314E5C1B409445984BBC@MBX112.d.ethz.ch> <50B858FB5F53124F9E32314E5C1B4094459858FA@MBX112.d.ethz.ch> Message-ID: <50B858FB5F53124F9E32314E5C1B409445990758@MBX212.d.ethz.ch> Thank you for your reply. I am now working on a itk project with C++ (no Python binding), but I can?t reproduce what I did in Python with the PhysicalPointImageSource filter: typedef itk::Image< itk::Vector, Dimension > PhyImageType; typedef itk:: typedef itk::PhysicalPointImageSource< PhyImageType > PhysicalPointImagefilter; // error ITK has no member PhysicalPointImageSource It is strange to me, since it is part of manual? Is this filter not for the ITK C++ distribution? If this is the case, how can I get an image of physical coordinates with itk C++? Thank you again, Fabio. From: Francois Budin [mailto:francois.budin at kitware.com] Sent: Dienstag, 2. Mai 2017 17:49 To: D'Isidoro Fabio Cc: Lowekamp, Bradley (NIH/NLM/LHC) [C] ; insight-users at itk.org Subject: Re: [ITK-users] [ITK] ITK PyBuffer get physical point coordinates Hello Fabio, The main difference between itk.GetArrayFromImage() and itk.PyBuffer[ImageType].GetArrayFromImage() is that itk.GetAraryFromImage() is a wrapping of itk.PyBuffer[ImageType].GetArrayFromImage() in Python that automatically finds the type of the input image (and is a shorted command line). The reason why this worked but not itk.PyBuffer[ImageType.GetArrayFromImage() is because in the wrapping, if a filter is given instead of an image, the output of the filter will be used. Which means that what really happen is that you gave a filter to a function (itk.PyBuffer[ImageType].GetArrayFromImage()) expecting an image. If you want to work with the long command, you have to make sure that the input is an image: image=source.GetOutput() itk.PyBuffer[ImageType].GetArrayFromImage(image) And then it should work. Hope this helps, Francois On Tue, May 2, 2017 at 11:20 AM, D'Isidoro Fabio > wrote: Hi Francois, It works with your commands, the difference being the use of: itk.GetArrayFromImage(source) in your version, instead of: itk.PyBuffer[ImageType].GetArrayFromImage(source) in my version. May you explain me the difference, and why using PyBuffer does not work for this case? Also, when using VectorImage I get the error ?No module named 'ITKQuadEdgeMeshPython'?. This is the only module that failed in my ITK Python build. Is this a known bug or it was just for my build? Thank you! Fabio. From: Francois Budin [mailto:francois.budin at kitware.com] Sent: Freitag, 28. April 2017 23:12 To: D'Isidoro Fabio > Cc: Lowekamp, Bradley (NIH/NLM/LHC) [C] >; insight-users at itk.org Subject: Re: [ITK-users] [ITK] ITK PyBuffer get physical point coordinates Hello Fabio, I was able to use this filter in Python. Here is the commands I typed: In [14]: ImageType=itk.Image[itk.Vector[itk.F,2],2] In [15]: source=itk.PhysicalPointImageSource[ImageType].New() In [16]: source.SetSize([5,5]) In [17]: source.SetOrigin([0,0]) In [18]: source.SetSpacing([.5,.5]) In [19]: source.Update() In [20]: itk.GetArrayFromImage(source) Out[20]: itkndarray([[[ 0. , 0. ], [ 0.5, 0. ], [ 1. , 0. ], [ 1.5, 0. ], [ 2. , 0. ]], [[ 0. , 0.5], [ 0.5, 0.5], [ 1. , 0.5], [ 1.5, 0.5], [ 2. , 0.5]], [[ 0. , 1. ], [ 0.5, 1. ], [ 1. , 1. ], [ 1.5, 1. ], [ 2. , 1. ]], [[ 0. , 1.5], [ 0.5, 1.5], [ 1. , 1.5], [ 1.5, 1.5], [ 2. , 1.5]], [[ 0. , 2. ], [ 0.5, 2. ], [ 1. , 2. ], [ 1.5, 2. ], [ 2. , 2. ]]], dtype=float32) It also worked with VectorImages: In [22]: ImageType=itk.VectorImage[itk.F,2] In [23]: source=itk.PhysicalPointImageSource[ImageType].New() In [24]: source.SetOrigin([0,0]) In [25]: source.SetSize([5,5]) In [26]: source.SetSpacing([.5,.5]) In [27]: source.Update() In [28]: itk.GetArrayFromImage(source) To answer your questions: 1) This filter is only wrapped over image of vectors and vector images. You can have the list of types that are available in Python with itk.PhysicalPointImageSource.GetTypes() 2) You may have a version of ITK Python for which VectorImage is not wrapped for PyBuffer. You can try to update your ITK Python [1] Hope this helps, Francois [1] https://github.com/InsightSoftwareConsortium/ITKPythonPackage On Fri, Apr 28, 2017 at 12:05 PM, D'Isidoro Fabio > wrote: Thank you for your reply. 1) I have tried as a first step the following: DRRPhy = itk.PhysicalPointImageSource[itk.Image[itk.Point[itk.F, Dimension], Dimension]].New() But I get the error: KeyError: "itkTemplate : No template (, 3) for the itk::Image class" So I guess I can?t generate an image with itk.Points as PixelType. Therefore I chose to use a VectorImage as ImageType in Input to the PhysicalPointImageSource. sourceImage = itk.PhysicalPointImageSource[itk.VectorImage[itk.F, Dimension]].New() sourceImage.SetSize(size) sourceImage.SetSpacing(spacing) sourceImage.SetOrigin(origin) #DRRPhy.SetIndex(start) it does not work, how to set the start index? DRRPhy.SetDirection(direction) 2) However, using PyBuffer to get a numpy array form that does not work: sourceImageArray = itk. PyBuffer[ImageType].GetArrayFromImage(sourceImage) I get the error: AttributeError: 'itkPhysicalPointImageSourceVIF3' object has no attribute 'GetLargestPossibleRegion' Am I doing the right thing in point 1) ? How could I solve point 2) ? Thank you ! Fabio. From: Lowekamp, Bradley (NIH/NLM/LHC) [C] [mailto:blowekamp at mail.nih.gov] Sent: Donnerstag, 27. April 2017 23:16 To: D'Isidoro Fabio > Cc: insight-users at itk.org Subject: Re: [ITK] [ITK-users] ITK PyBuffer get physical point coordinates Hi! You can generate an image of the physical locations of each pixel with the PhysicalPointImageSource filter: https://itk.org/Doxygen/html/classitk_1_1PhysicalPointImageSource.html Very recently added is the SetReferenceImage, which can be use to copy the meta data from one image to the parameters of this filter. If your version is not super recent then you can manually set the Size, Spacing, Origin, Direction and StartIndex. After you generate the point image you should be able to convert to with the same method. HTH, Brad On Apr 27, 2017, at 4:58 PM, D'Isidoro Fabio > wrote: Hallo, I know it?s possible to get a numpy array of an itk image with: itk.PyBuffer[ImageType].GetArrayFromImage(Image) Is it by any chance also possible to obtain a (flattended) numpy array of the physical coordinates of the image pixels too? Thank you! _____________________________________ 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Mon May 8 08:47:14 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Mon, 8 May 2017 08:47:14 -0400 Subject: [ITK-users] [ITK] ITK PyBuffer get physical point coordinates In-Reply-To: <50B858FB5F53124F9E32314E5C1B409445990758@MBX212.d.ethz.ch> References: <50B858FB5F53124F9E32314E5C1B409445984B2A@MBX112.d.ethz.ch> <50B858FB5F53124F9E32314E5C1B409445984BBC@MBX112.d.ethz.ch> <50B858FB5F53124F9E32314E5C1B4094459858FA@MBX112.d.ethz.ch> <50B858FB5F53124F9E32314E5C1B409445990758@MBX212.d.ethz.ch> Message-ID: Hi Fabio, Was the header included? #include "itkPhysicalPointImageSource.h" HTH, Matt On Mon, May 8, 2017 at 7:40 AM, D'Isidoro Fabio wrote: > Thank you for your reply. > > > > I am now working on a itk project with C++ (no Python binding), but I can?t > reproduce what I did in Python with the PhysicalPointImageSource filter: > > > > typedef itk::Image< itk::Vector, Dimension > PhyImageType; > > typedef itk:: typedef itk::PhysicalPointImageSource< PhyImageType > > PhysicalPointImagefilter; // error ITK has no member > PhysicalPointImageSource > > > > It is strange to me, since it is part of manual? Is this filter not for the > ITK C++ distribution? If this is the case, how can I get an image of > physical coordinates with itk C++? > > > > Thank you again, > > Fabio. > > > > From: Francois Budin [mailto:francois.budin at kitware.com] > Sent: Dienstag, 2. Mai 2017 17:49 > > > To: D'Isidoro Fabio > Cc: Lowekamp, Bradley (NIH/NLM/LHC) [C] ; > insight-users at itk.org > Subject: Re: [ITK-users] [ITK] ITK PyBuffer get physical point coordinates > > > > Hello Fabio, > > The main difference between itk.GetArrayFromImage() and > itk.PyBuffer[ImageType].GetArrayFromImage() is that itk.GetAraryFromImage() > is a wrapping of itk.PyBuffer[ImageType].GetArrayFromImage() in Python that > automatically finds the type of the input image (and is a shorted command > line). The reason why this worked but not > itk.PyBuffer[ImageType.GetArrayFromImage() is because in the wrapping, if a > filter is given instead of an image, the output of the filter will be used. > > Which means that what really happen is that you gave a filter to a function > (itk.PyBuffer[ImageType].GetArrayFromImage()) expecting an image. > > If you want to work with the long command, you have to make sure that the > input is an image: > > image=source.GetOutput() > itk.PyBuffer[ImageType].GetArrayFromImage(image) > > And then it should work. > > Hope this helps, > > Francois > > > > On Tue, May 2, 2017 at 11:20 AM, D'Isidoro Fabio wrote: > > Hi Francois, > > > > It works with your commands, the difference being the use of: > > > > itk.GetArrayFromImage(source) > > > > in your version, instead of: > > > > itk.PyBuffer[ImageType].GetArrayFromImage(source) > > > > in my version. > > > > May you explain me the difference, and why using PyBuffer does not work for > this case? > > > > Also, when using VectorImage I get the error ?No module named > 'ITKQuadEdgeMeshPython'?. This is the only module that failed in my ITK > Python build. Is this a known bug or it was just for my build? > > > > Thank you! > > > > Fabio. > > From: Francois Budin [mailto:francois.budin at kitware.com] > Sent: Freitag, 28. April 2017 23:12 > To: D'Isidoro Fabio > Cc: Lowekamp, Bradley (NIH/NLM/LHC) [C] ; > insight-users at itk.org > Subject: Re: [ITK-users] [ITK] ITK PyBuffer get physical point coordinates > > > > Hello Fabio, > > I was able to use this filter in Python. Here is the commands I typed: > In [14]: ImageType=itk.Image[itk.Vector[itk.F,2],2] > > In [15]: source=itk.PhysicalPointImageSource[ImageType].New() > > In [16]: source.SetSize([5,5]) > > In [17]: source.SetOrigin([0,0]) > > In [18]: source.SetSpacing([.5,.5]) > > In [19]: source.Update() > > In [20]: itk.GetArrayFromImage(source) > Out[20]: > itkndarray([[[ 0. , 0. ], > [ 0.5, 0. ], > [ 1. , 0. ], > [ 1.5, 0. ], > [ 2. , 0. ]], > > [[ 0. , 0.5], > [ 0.5, 0.5], > [ 1. , 0.5], > [ 1.5, 0.5], > [ 2. , 0.5]], > > [[ 0. , 1. ], > [ 0.5, 1. ], > [ 1. , 1. ], > [ 1.5, 1. ], > [ 2. , 1. ]], > > [[ 0. , 1.5], > [ 0.5, 1.5], > [ 1. , 1.5], > [ 1.5, 1.5], > [ 2. , 1.5]], > > [[ 0. , 2. ], > [ 0.5, 2. ], > [ 1. , 2. ], > [ 1.5, 2. ], > [ 2. , 2. ]]], dtype=float32) > > It also worked with VectorImages: > > In [22]: ImageType=itk.VectorImage[itk.F,2] > > In [23]: source=itk.PhysicalPointImageSource[ImageType].New() > > In [24]: source.SetOrigin([0,0]) > > In [25]: source.SetSize([5,5]) > > In [26]: source.SetSpacing([.5,.5]) > > In [27]: source.Update() > > In [28]: itk.GetArrayFromImage(source) > > > > To answer your questions: > > 1) This filter is only wrapped over image of vectors and vector images. You > can have the list of types that are available in Python with > itk.PhysicalPointImageSource.GetTypes() > > 2) You may have a version of ITK Python for which VectorImage is not wrapped > for PyBuffer. You can try to update your ITK Python [1] > > Hope this helps, > > Francois > > > [1] https://github.com/InsightSoftwareConsortium/ITKPythonPackage > > > > On Fri, Apr 28, 2017 at 12:05 PM, D'Isidoro Fabio wrote: > > Thank you for your reply. > > > > 1) I have tried as a first step the following: > > > > DRRPhy = itk.PhysicalPointImageSource[itk.Image[itk.Point[itk.F, Dimension], > Dimension]].New() > > > > But I get the error: > > > > KeyError: "itkTemplate : No template (, > 3) for the itk::Image class" > > > > So I guess I can?t generate an image with itk.Points as PixelType. Therefore > I chose to use a VectorImage as ImageType in Input to the > PhysicalPointImageSource. > > > > sourceImage = itk.PhysicalPointImageSource[itk.VectorImage[itk.F, > Dimension]].New() > > sourceImage.SetSize(size) > > sourceImage.SetSpacing(spacing) > > sourceImage.SetOrigin(origin) > > #DRRPhy.SetIndex(start) it does not work, how to set the start index? > > DRRPhy.SetDirection(direction) > > > > 2) However, using PyBuffer to get a numpy array form that does not work: > > > > sourceImageArray = itk. PyBuffer[ImageType].GetArrayFromImage(sourceImage) > > > > I get the error: > > > > AttributeError: 'itkPhysicalPointImageSourceVIF3' object has no attribute > 'GetLargestPossibleRegion' > > > > > > Am I doing the right thing in point 1) ? > > How could I solve point 2) ? > > > > Thank you ! > > > > Fabio. > > > > From: Lowekamp, Bradley (NIH/NLM/LHC) [C] [mailto:blowekamp at mail.nih.gov] > Sent: Donnerstag, 27. April 2017 23:16 > To: D'Isidoro Fabio > Cc: insight-users at itk.org > Subject: Re: [ITK] [ITK-users] ITK PyBuffer get physical point coordinates > > > > Hi! > > > > You can generate an image of the physical locations of each pixel with the > PhysicalPointImageSource filter: > > https://itk.org/Doxygen/html/classitk_1_1PhysicalPointImageSource.html > > > > Very recently added is the SetReferenceImage, which can be use to copy the > meta data from one image to the parameters of this filter. If your version > is not super recent then you can manually set the Size, Spacing, Origin, > Direction and StartIndex. > > > > After you generate the point image you should be able to convert to with the > same method. > > > > HTH, > > Brad > > > > > > On Apr 27, 2017, at 4:58 PM, D'Isidoro Fabio wrote: > > > > Hallo, > > > > I know it?s possible to get a numpy array of an itk image with: > > > > itk.PyBuffer[ImageType].GetArrayFromImage(Image) > > > > Is it by any chance also possible to obtain a (flattended) numpy array of > the physical coordinates of the image pixels too? > > > > Thank you! > > > > _____________________________________ > 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 > > > > > > > _____________________________________ > 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 Mon May 8 13:52:21 2017 From: francois.budin at kitware.com (Francois Budin) Date: Mon, 8 May 2017 13:52:21 -0400 Subject: [ITK-users] [ANN] ITK 4.11.1 has been released! Message-ID: On behalf of the Insight Toolkit community, we are proud to announce that ITK 4.11.1 has been released! Download links can be found at: https://itk.org/ITK/resources/software.html This is a patch release that fixes critical issues, regressions, documentation, and compiler support. Of the numerous issues addressed in this release, most notable build support additions include Microsoft Visual C++ Compiler for Python 2.7, recent Clang in FreeBSD, updates for the RHEL / CentOS toolchain, and improved support for Visual Studio 2017. Other fixes include enabling hidden visibility for NIFTI and GIFTI static libraries, MetaIO updates for improved large image support, and better compatibility of the OpenCVImageBridge. The next feature release, 4.12.0, is scheduled for May 24th. Changes from v4.11.0 to v4.11.1 ------------------------------------------------ Bradley Lowekamp (6): 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: Use CMAKE_DL_LIBS instead of explict "dl" library BUG: Apply changes from MetaIO upstream to remove static variables Floris Berendsen (1): COMP: Added missing png_get_uint_31 name mangling Francois Budin (17): BUG: Addresses 'ordered comparison between pointer and zero' error (clang-4) BUG: ITK_OVERRIDE keyword for non-overriden funtion BUG: ITK_OVERRIDE keyword for non-overriden funtion BUG: Missing ITK_OVERRIDE BUG: 3523 Even padding most value representations with space instead of '\0' BUG: KWSys symbols should not be exported with WINDOWS_EXPORT_ALL_SYMBOLS BUG: 3519 KernelTransform WMatrix initialization 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: 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 Jon Haitz Legarreta (1): COMP: Fix signed/unsigned mismatch warning. Matthew McCormick (16): COMP: Add missing headers in OpenCVImageBridge COMP: Use double for gradient calculations in MinMaxCurvatureFlow BUG: Address tab completion with IPython >= 5.0.0 BUG: Do not use terminal_progress with the Jupyter Notebook COMP: Do not require numeric_traits::has_infinity BUG: Fix passing _NO_TR1 definition with VS9 and Python 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 COMP: Address Python 2.7 Windows _hypot build errors COMP: Undefine Py_hash_t when wrapping VtkGlue BUG: Improve itkTemplate New compatibility with Python 3 BUG: Correct size specification in ImportImageFilter::SetImportPointer BUG: Improve large file support in MetaIO BUG: LevelSetNeighborhoodExtractor uses spacing Taylor Braun-Jones (1): COMP: Only include the headers for required OpenCV modules (fixup) -------------- next part -------------- An HTML attachment was scrubbed... URL: From filippo.brogi at topic.nl Tue May 9 04:52:53 2017 From: filippo.brogi at topic.nl (Filippo Brogi) Date: Tue, 9 May 2017 01:52:53 -0700 (MST) Subject: [ITK-users] DICOM Dataset GetOrigin In-Reply-To: References: <1493650346854-38167.post@n7.nabble.com> <1493653068068-38171.post@n7.nabble.com> Message-ID: <1494319973485-7589905.post@n2.nabble.com> I used another dataset and I'm getting the same issue. This dataset is a ct dataset single phase. dimension[2] should not be equal to the number of images forming the dataset? -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/ITK-users-DICOM-Dataset-GetOrigin-tp7589879p7589905.html Sent from the ITK Insight Users mailing list archive at Nabble.com. From francois.budin at kitware.com Tue May 9 09:10:48 2017 From: francois.budin at kitware.com (Francois Budin) Date: Tue, 9 May 2017 09:10:48 -0400 Subject: [ITK-users] DICOM Dataset GetOrigin In-Reply-To: <1494319973485-7589905.post@n2.nabble.com> References: <1493650346854-38167.post@n7.nabble.com> <1493653068068-38171.post@n7.nabble.com> <1494319973485-7589905.post@n2.nabble.com> Message-ID: Hello Filipo, It looks like the image series reader only read the last image. Are you reading the origin on "dicomIO" or on the output of the reader (e.g. reader->GetOutput()->GetOrigin())? Francois On Tue, May 9, 2017 at 4:52 AM, Filippo Brogi wrote: > I used another dataset and I'm getting the same issue. This dataset is a ct > dataset single phase. dimension[2] should not be equal to the number of > images forming the dataset? > > > > -- > View this message in context: http://itk-insight-users. > 2283740.n2.nabble.com/ITK-users-DICOM-Dataset-GetOrigin- > tp7589879p7589905.html > Sent from the ITK Insight Users mailing list archive at Nabble.com. > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From francois.budin at kitware.com Tue May 9 10:45:04 2017 From: francois.budin at kitware.com (Francois Budin) Date: Tue, 9 May 2017 10:45:04 -0400 Subject: [ITK-users] [ANN] ITK 4.12 Release Candidate 1 is ready for testing! Message-ID: On behalf of the Insight Toolkit community, we are proud to announce that ITK 4.12 release candidate 1 has been tagged and is available for testing! Please take this opportunity to test the new features in the release candidate. To obtain the source code, use the links: https://github.com/Kitware/ITK/archive/v4.12rc01.zip https://github.com/Kitware/ITK/archive/v4.12rc01.tar.gz 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. The module contains filters to computes a strain tensor image from a displacement field image or a general spatial transform. In both cases, infinitesimal, Green-Lagrangian, or Eulerian-Almansi strain can be generated. - Many improvements in ITK Python wrapping: convenient functions to read and write images, better integration in Jupyter Notebook, new filters wrapped, build support for Microsoft Visual C++ Compiler for Python 2.7 - Better compilation support for Microsoft Visual Studio 2017, Clang 4, GCC7 - Filters moved out of Review modules: Morphological Watersheds, and itkHessianToObjectnessMeasureImageFilter - Improvement of palette image support for PNG TIFF and BMP: The user can now choose or not to expand the palette image to true color. - Performance improvements for some ITK filters: itkHistogram (increase speed), itkImagePCAShapeModelEstimator (decrease memory usage). Please test the release candidate and share your experiences on the mailing list, issue tracker, and Gerrit Code Review. An Experimental build, which demonstrates how the test suite performs on your local build system, can be submitted to the dashboard [2] with: mkdir ../ITK-build cd ../ITK-build cmake ../ITK ctest -j 4 -M Experimental -T Configure -T Build -T Test -T Submit Visual Studio builds must also add ?-C Release? to the ctest command. Notify the mailing list if there are any unexpected failures. Testing your own applications against the RC is also appreciated. Congratulations to the 23 contributors to this release. We would especially like to recognize the new contributors: Sam Horvath, Shusil Dangi, Ben Boeckel, Yann Le Poul, Jean-Baptiste Vimort, and Samuel Gerber. The 4.12.0 final release is scheduled for May 24th. [1] http://www.itk.org/Wiki/ITK/Git [2] http://open.cdash.org/index.php?project=Insight 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-learn 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. - Allows calling 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 - Prefer std::atomic over compiler specific implementation - 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.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 (57): 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 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 (133): 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. 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 ----------------------------------------------------- Errors or omissions? Please fix them here: https://docs.google.com/document/d/1bEujAWZ9Vh-lSt82mO4X7N1kyibOFX3Wh1xQZUkO-s4/edit -------------- next part -------------- An HTML attachment was scrubbed... URL: From ibr_ex at yahoo.com Wed May 10 02:52:08 2017 From: ibr_ex at yahoo.com (ibraheem aldhamari) Date: Wed, 10 May 2017 06:52:08 +0000 (UTC) Subject: [ITK-users] itk forum References: <482368304.8622539.1494399128291.ref@mail.yahoo.com> Message-ID: <482368304.8622539.1494399128291@mail.yahoo.com> Hi,is there any plan to move to a forum?e.g. [1]??instead of the mailing-list? ?it makes communication,?searching information easier and more organized.Have a nice day!Ibraheem[1] https://www.discourse.org/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From mdccnunes at hotmail.com Wed May 10 04:42:17 2017 From: mdccnunes at hotmail.com (sharkpt) Date: Wed, 10 May 2017 01:42:17 -0700 (MST) Subject: [ITK-users] itk forum In-Reply-To: <482368304.8622539.1494399128291@mail.yahoo.com> References: <482368304.8622539.1494399128291@mail.yahoo.com> Message-ID: <1494405737645-38200.post@n7.nabble.com> I think this has been mentioned. But I think this should be a general move of kitware. Forums for VTK, ITK, etc... Cheers! -- View this message in context: http://itk-users.7.n7.nabble.com/ITK-users-itk-forum-tp38199p38200.html Sent from the ITK - Users mailing list archive at Nabble.com. From sidharta.gupta93 at gmail.com Wed May 10 06:19:37 2017 From: sidharta.gupta93 at gmail.com (sidharta) Date: Wed, 10 May 2017 03:19:37 -0700 (MST) Subject: [ITK-users] Creating 3D dome using ITK Message-ID: <1494411577924-38201.post@n7.nabble.com> Dear all, I am trying to make a 3D dome (ie; Half Sphere) and then generating a binary image out of it. The aim is to use this binary image as a mask in maskFilter. I was able to generate a 2D circular mask, which was straight forward. I used this in a maskFilter and masked the 3D image using slicebysliceFilter. I can think of two ways to do it: 1. Make several masks of decreasing circle radius which ultimately would represent a dome. 2. Make a mask image and assign the values at indices accordingly to get a dome mask. The first step seems doable but to my understanding would be an overkill. I am not able to do the second step. Following is the code I tried: float MY_RADIUS = maskRegion.GetSize()[0]; MaskIteratorType iterator(maskImage, maskImage->GetLargestPossibleRegion()); while (!iterator.IsAtEnd()) { const InputImageType::IndexType & index = iterator.GetIndex(); std::cout << "Index is " << index; float value = (index[0] - centerPoint[0]) * (index[0] - centerPoint[0]) + (index[1] - centerPoint[1]) * (index[1] - centerPoint[1]); std::cout << "Compare - LHS = " << value << " RHS = " << MY_RADIUS * MY_RADIUS << std::endl; if ((index[0] - centerPoint[0]) * (index[0] - centerPoint[0]) + (index[1] - centerPoint[1]) * (index[1] - centerPoint[1]) <= MY_RADIUS * MY_RADIUS) { iterator.Set(1); } --MY_RADIUS; ++iterator; } After adding the cout commands I saw that --MY_RADIUS is incorrect. I generated the required sphere using matlab, just to get the values I should assign to the pixels. Additionally, I noticed there is a need for anti-aliasing to the mask. Kindly let me know how this can be done iteratively. Thank you! -- View this message in context: http://itk-users.7.n7.nabble.com/Creating-3D-dome-using-ITK-tp38201.html Sent from the ITK - Users mailing list archive at Nabble.com. From matt.mccormick at kitware.com Wed May 10 06:21:40 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Wed, 10 May 2017 06:21:40 -0400 Subject: [ITK-users] itk forum In-Reply-To: <1494405737645-38200.post@n7.nabble.com> References: <482368304.8622539.1494399128291@mail.yahoo.com> <1494405737645-38200.post@n7.nabble.com> Message-ID: Thank you for the suggestion. We will investigate the technical feasibility of hosting a Discourse instance and discuss adoption with the community after we understand the options. Matt On Wed, May 10, 2017 at 4:42 AM, sharkpt wrote: > I think this has been mentioned. > But I think this should be a general move of kitware. Forums for VTK, ITK, > etc... > > Cheers! > > > > -- > View this message in context: http://itk-users.7.n7.nabble.com/ITK-users-itk-forum-tp38199p38200.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 Wed May 10 06:23:37 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Wed, 10 May 2017 06:23:37 -0400 Subject: [ITK-users] Fwd: itk forum In-Reply-To: <482368304.8622539.1494399128291@mail.yahoo.com> References: <482368304.8622539.1494399128291.ref@mail.yahoo.com> <482368304.8622539.1494399128291@mail.yahoo.com> Message-ID: FYI - a Discourse request. ---------- Forwarded message ---------- From: ibraheem aldhamari via Insight-users Date: Wed, May 10, 2017 at 2:52 AM Subject: [ITK-users] itk forum To: Insight-users Hi, is there any plan to move to a forum e.g. [1] instead of the mailing-list? it makes communication, searching information easier and more organized. Have a nice day! Ibraheem [1] https://www.discourse.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 millerjv at gmail.com Wed May 10 06:31:28 2017 From: millerjv at gmail.com (Jim Miller) Date: Wed, 10 May 2017 06:31:28 -0400 Subject: [ITK-users] Fwd: itk forum In-Reply-To: References: <482368304.8622539.1494399128291.ref@mail.yahoo.com> <482368304.8622539.1494399128291@mail.yahoo.com> Message-ID: <0711F606-D3DE-4066-A07B-C4BF99F573A2@gmail.com> I am all in favor of moving away from mailing lists. Jim > On May 10, 2017, at 6:23 AM, Matt McCormick wrote: > > FYI - a Discourse request. > > > ---------- Forwarded message ---------- > From: ibraheem aldhamari via Insight-users > Date: Wed, May 10, 2017 at 2:52 AM > Subject: [ITK-users] itk forum > To: Insight-users > > > Hi, > is there any plan to move to a forum e.g. [1] instead of the > mailing-list? it makes communication, searching information easier > and more organized. > Have a nice day! > Ibraheem > [1] https://www.discourse.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 > _____________________________________ > 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 May 10 06:40:36 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Wed, 10 May 2017 06:40:36 -0400 Subject: [ITK-users] Creating 3D dome using ITK In-Reply-To: <1494411577924-38201.post@n7.nabble.com> References: <1494411577924-38201.post@n7.nabble.com> Message-ID: Hi, Depending on the code, MY_RADIUS may need to be divided by two. To avoid difficulties like this, it is better to work in physical space versus index space. For more information on how physical space works in ITK, see the itk::Image overview in the ITK Software Guide: https://itk.org/ITKSoftwareGuide/html/Book1/ITKSoftwareGuide-Book1ch4.html#x38-450004.1 There is a filter that can be used to anti-alias the mask. Here is an example: https://itk.org/ITKExamples/src/Filtering/AntiAlias/SmoothBinaryImageBeforeSurfaceExtraction/Documentation.html I hope this helps. Matt On Wed, May 10, 2017 at 6:19 AM, sidharta wrote: > Dear all, > > I am trying to make a 3D dome (ie; Half Sphere) and then generating a binary > image out of it. The aim is to use this binary image as a mask in > maskFilter. I was able to generate a 2D circular mask, which was straight > forward. I used this in a maskFilter and masked the 3D image using > slicebysliceFilter. > > I can think of two ways to do it: > 1. Make several masks of decreasing circle radius which ultimately would > represent a dome. > 2. Make a mask image and assign the values at indices accordingly to get a > dome mask. > > The first step seems doable but to my understanding would be an overkill. > I am not able to do the second step. Following is the code I tried: > > float MY_RADIUS = maskRegion.GetSize()[0]; > MaskIteratorType iterator(maskImage, maskImage->GetLargestPossibleRegion()); > while (!iterator.IsAtEnd()) > { > const InputImageType::IndexType & index = iterator.GetIndex(); > std::cout << "Index is " << index; > float value = (index[0] - centerPoint[0]) * (index[0] - centerPoint[0]) > + (index[1] - centerPoint[1]) * (index[1] - centerPoint[1]); > std::cout << "Compare - LHS = " << value << " RHS = " << MY_RADIUS * > MY_RADIUS << std::endl; > if ((index[0] - centerPoint[0]) * (index[0] - centerPoint[0]) > + (index[1] - centerPoint[1]) * (index[1] - centerPoint[1]) > <= MY_RADIUS * MY_RADIUS) > { > iterator.Set(1); > } > --MY_RADIUS; > ++iterator; > } > > After adding the cout commands I saw that --MY_RADIUS is incorrect. I > generated the required sphere using matlab, just to get the values I should > assign to the pixels. > > Additionally, I noticed there is a need for anti-aliasing to the mask. > Kindly let me know how this can be done iteratively. > > Thank you! > > > > -- > View this message in context: http://itk-users.7.n7.nabble.com/Creating-3D-dome-using-ITK-tp38201.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 ibr_ex at yahoo.com Wed May 10 06:46:41 2017 From: ibr_ex at yahoo.com (ibraheem aldhamari) Date: Wed, 10 May 2017 10:46:41 +0000 (UTC) Subject: [ITK-users] Fwd: itk forum In-Reply-To: <0711F606-D3DE-4066-A07B-C4BF99F573A2@gmail.com> References: <482368304.8622539.1494399128291.ref@mail.yahoo.com> <482368304.8622539.1494399128291@mail.yahoo.com> <0711F606-D3DE-4066-A07B-C4BF99F573A2@gmail.com> Message-ID: <1920526260.8734470.1494413201176@mail.yahoo.com> You can get feedback and tips from other groups who already tried it e.g. Slicer [2].all the best!Ibraheem[2] https://discourse.slicer.org/ On Wednesday, May 10, 2017, 12:31:39 PM GMT+2, Jim Miller wrote:I am all in favor of moving away from mailing lists. Jim > On May 10, 2017, at 6:23 AM, Matt McCormick wrote: > > FYI - a Discourse request. > > > ---------- Forwarded message ---------- > From: ibraheem aldhamari via Insight-users > Date: Wed, May 10, 2017 at 2:52 AM > Subject: [ITK-users] itk forum > To: Insight-users > > > Hi, > is there any plan to move to a forum e.g. [1]? instead of the > mailing-list?? it makes communication, searching information easier > and more organized. > Have a nice day! > Ibraheem > [1] https://www.discourse.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 > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From richard.beare at gmail.com Wed May 10 07:01:50 2017 From: richard.beare at gmail.com (Richard Beare) Date: Wed, 10 May 2017 21:01:50 +1000 Subject: [ITK-users] Creating 3D dome using ITK In-Reply-To: References: <1494411577924-38201.post@n7.nabble.com> Message-ID: A simple, although not necessarily efficient, way of doing this is to create an image with a single voxel where you want the centre of the (hemi)sphere to be, then dilate using the binary dilate filter (alternatively compute a distance transform them threshold). These two methods will give you a sphere, and you can then blank the half you don't want. Depending on the interface to ITK you are using, you could probably achieve something similar by generating images containing physical coordinates an plug those into formula for a sphere. On Wed, May 10, 2017 at 8:40 PM, Matt McCormick wrote: > Hi, > > Depending on the code, MY_RADIUS may need to be divided by two. > > To avoid difficulties like this, it is better to work in physical > space versus index space. For more information on how physical space > works in ITK, see the itk::Image overview in the ITK Software Guide: > > https://itk.org/ITKSoftwareGuide/html/Book1/ITKSoftwareGuide-Book1ch4. > html#x38-450004.1 > > > There is a filter that can be used to anti-alias the mask. Here is an > example: > > https://itk.org/ITKExamples/src/Filtering/AntiAlias/ > SmoothBinaryImageBeforeSurfaceExtraction/Documentation.html > > > I hope this helps. > > Matt > > On Wed, May 10, 2017 at 6:19 AM, sidharta > wrote: > > Dear all, > > > > I am trying to make a 3D dome (ie; Half Sphere) and then generating a > binary > > image out of it. The aim is to use this binary image as a mask in > > maskFilter. I was able to generate a 2D circular mask, which was straight > > forward. I used this in a maskFilter and masked the 3D image using > > slicebysliceFilter. > > > > I can think of two ways to do it: > > 1. Make several masks of decreasing circle radius which ultimately would > > represent a dome. > > 2. Make a mask image and assign the values at indices accordingly to get > a > > dome mask. > > > > The first step seems doable but to my understanding would be an overkill. > > I am not able to do the second step. Following is the code I tried: > > > > float MY_RADIUS = maskRegion.GetSize()[0]; > > MaskIteratorType iterator(maskImage, maskImage-> > GetLargestPossibleRegion()); > > while (!iterator.IsAtEnd()) > > { > > const InputImageType::IndexType & index = > iterator.GetIndex(); > > std::cout << "Index is " << index; > > float value = (index[0] - centerPoint[0]) * (index[0] - > centerPoint[0]) > > + (index[1] - centerPoint[1]) * (index[1] - > centerPoint[1]); > > std::cout << "Compare - LHS = " << value << " RHS = " << > MY_RADIUS * > > MY_RADIUS << std::endl; > > if ((index[0] - centerPoint[0]) * (index[0] - > centerPoint[0]) > > + (index[1] - centerPoint[1]) * (index[1] - > centerPoint[1]) > > <= MY_RADIUS * MY_RADIUS) > > { > > iterator.Set(1); > > } > > --MY_RADIUS; > > ++iterator; > > } > > > > After adding the cout commands I saw that --MY_RADIUS is incorrect. I > > generated the required sphere using matlab, just to get the values I > should > > assign to the pixels. > > > > Additionally, I noticed there is a need for anti-aliasing to the mask. > > Kindly let me know how this can be done iteratively. > > > > Thank you! > > > > > > > > -- > > View this message in context: http://itk-users.7.n7.nabble. > com/Creating-3D-dome-using-ITK-tp38201.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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From robert.tamburo at gmail.com Wed May 10 07:19:36 2017 From: robert.tamburo at gmail.com (robert tamburo) Date: Wed, 10 May 2017 07:19:36 -0400 Subject: [ITK-users] Creating 3D dome using ITK In-Reply-To: References: <1494411577924-38201.post@n7.nabble.com> Message-ID: https://itk.org/Wiki/ITK/Examples/SpatialObjects/EllipseSpatialObject On Wed, May 10, 2017 at 7:01 AM, Richard Beare wrote: > A simple, although not necessarily efficient, way of doing this is to > create an image with a single voxel where you want the centre of the > (hemi)sphere to be, then dilate using the binary dilate filter > (alternatively compute a distance transform them threshold). These two > methods will give you a sphere, and you can then blank the half you don't > want. > > Depending on the interface to ITK you are using, you could probably > achieve something similar by generating images containing physical > coordinates an plug those into formula for a sphere. > > On Wed, May 10, 2017 at 8:40 PM, Matt McCormick < > matt.mccormick at kitware.com> wrote: > >> Hi, >> >> Depending on the code, MY_RADIUS may need to be divided by two. >> >> To avoid difficulties like this, it is better to work in physical >> space versus index space. For more information on how physical space >> works in ITK, see the itk::Image overview in the ITK Software Guide: >> >> https://itk.org/ITKSoftwareGuide/html/Book1/ITKSoftwareGuide >> -Book1ch4.html#x38-450004.1 >> >> >> There is a filter that can be used to anti-alias the mask. Here is an >> example: >> >> https://itk.org/ITKExamples/src/Filtering/AntiAlias/SmoothBi >> naryImageBeforeSurfaceExtraction/Documentation.html >> >> >> I hope this helps. >> >> Matt >> >> On Wed, May 10, 2017 at 6:19 AM, sidharta >> wrote: >> > Dear all, >> > >> > I am trying to make a 3D dome (ie; Half Sphere) and then generating a >> binary >> > image out of it. The aim is to use this binary image as a mask in >> > maskFilter. I was able to generate a 2D circular mask, which was >> straight >> > forward. I used this in a maskFilter and masked the 3D image using >> > slicebysliceFilter. >> > >> > I can think of two ways to do it: >> > 1. Make several masks of decreasing circle radius which ultimately would >> > represent a dome. >> > 2. Make a mask image and assign the values at indices accordingly to >> get a >> > dome mask. >> > >> > The first step seems doable but to my understanding would be an >> overkill. >> > I am not able to do the second step. Following is the code I tried: >> > >> > float MY_RADIUS = maskRegion.GetSize()[0]; >> > MaskIteratorType iterator(maskImage, maskImage->GetLargestPossibleR >> egion()); >> > while (!iterator.IsAtEnd()) >> > { >> > const InputImageType::IndexType & index = >> iterator.GetIndex(); >> > std::cout << "Index is " << index; >> > float value = (index[0] - centerPoint[0]) * (index[0] - >> centerPoint[0]) >> > + (index[1] - centerPoint[1]) * (index[1] - >> centerPoint[1]); >> > std::cout << "Compare - LHS = " << value << " RHS = " >> << MY_RADIUS * >> > MY_RADIUS << std::endl; >> > if ((index[0] - centerPoint[0]) * (index[0] - >> centerPoint[0]) >> > + (index[1] - centerPoint[1]) * (index[1] - >> centerPoint[1]) >> > <= MY_RADIUS * MY_RADIUS) >> > { >> > iterator.Set(1); >> > } >> > --MY_RADIUS; >> > ++iterator; >> > } >> > >> > After adding the cout commands I saw that --MY_RADIUS is incorrect. I >> > generated the required sphere using matlab, just to get the values I >> should >> > assign to the pixels. >> > >> > Additionally, I noticed there is a need for anti-aliasing to the mask. >> > Kindly let me know how this can be done iteratively. >> > >> > Thank you! >> > >> > >> > >> > -- >> > View this message in context: http://itk-users.7.n7.nabble.c >> om/Creating-3D-dome-using-ITK-tp38201.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 >> > > > _____________________________________ > 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 > > -- robert -------------- next part -------------- An HTML attachment was scrubbed... URL: From richard.beare at gmail.com Wed May 10 07:22:10 2017 From: richard.beare at gmail.com (Richard Beare) Date: Wed, 10 May 2017 21:22:10 +1000 Subject: [ITK-users] Creating 3D dome using ITK In-Reply-To: References: <1494411577924-38201.post@n7.nabble.com> Message-ID: Yep - even better. On Wed, May 10, 2017 at 9:19 PM, robert tamburo wrote: > https://itk.org/Wiki/ITK/Examples/SpatialObjects/EllipseSpatialObject > > On Wed, May 10, 2017 at 7:01 AM, Richard Beare > wrote: > >> A simple, although not necessarily efficient, way of doing this is to >> create an image with a single voxel where you want the centre of the >> (hemi)sphere to be, then dilate using the binary dilate filter >> (alternatively compute a distance transform them threshold). These two >> methods will give you a sphere, and you can then blank the half you don't >> want. >> >> Depending on the interface to ITK you are using, you could probably >> achieve something similar by generating images containing physical >> coordinates an plug those into formula for a sphere. >> >> On Wed, May 10, 2017 at 8:40 PM, Matt McCormick < >> matt.mccormick at kitware.com> wrote: >> >>> Hi, >>> >>> Depending on the code, MY_RADIUS may need to be divided by two. >>> >>> To avoid difficulties like this, it is better to work in physical >>> space versus index space. For more information on how physical space >>> works in ITK, see the itk::Image overview in the ITK Software Guide: >>> >>> https://itk.org/ITKSoftwareGuide/html/Book1/ITKSoftwareGuide >>> -Book1ch4.html#x38-450004.1 >>> >>> >>> There is a filter that can be used to anti-alias the mask. Here is an >>> example: >>> >>> https://itk.org/ITKExamples/src/Filtering/AntiAlias/SmoothBi >>> naryImageBeforeSurfaceExtraction/Documentation.html >>> >>> >>> I hope this helps. >>> >>> Matt >>> >>> On Wed, May 10, 2017 at 6:19 AM, sidharta >>> wrote: >>> > Dear all, >>> > >>> > I am trying to make a 3D dome (ie; Half Sphere) and then generating a >>> binary >>> > image out of it. The aim is to use this binary image as a mask in >>> > maskFilter. I was able to generate a 2D circular mask, which was >>> straight >>> > forward. I used this in a maskFilter and masked the 3D image using >>> > slicebysliceFilter. >>> > >>> > I can think of two ways to do it: >>> > 1. Make several masks of decreasing circle radius which ultimately >>> would >>> > represent a dome. >>> > 2. Make a mask image and assign the values at indices accordingly to >>> get a >>> > dome mask. >>> > >>> > The first step seems doable but to my understanding would be an >>> overkill. >>> > I am not able to do the second step. Following is the code I tried: >>> > >>> > float MY_RADIUS = maskRegion.GetSize()[0]; >>> > MaskIteratorType iterator(maskImage, maskImage->GetLargestPossibleR >>> egion()); >>> > while (!iterator.IsAtEnd()) >>> > { >>> > const InputImageType::IndexType & index = >>> iterator.GetIndex(); >>> > std::cout << "Index is " << index; >>> > float value = (index[0] - centerPoint[0]) * (index[0] >>> - centerPoint[0]) >>> > + (index[1] - centerPoint[1]) * (index[1] - >>> centerPoint[1]); >>> > std::cout << "Compare - LHS = " << value << " RHS = " >>> << MY_RADIUS * >>> > MY_RADIUS << std::endl; >>> > if ((index[0] - centerPoint[0]) * (index[0] - >>> centerPoint[0]) >>> > + (index[1] - centerPoint[1]) * (index[1] - >>> centerPoint[1]) >>> > <= MY_RADIUS * MY_RADIUS) >>> > { >>> > iterator.Set(1); >>> > } >>> > --MY_RADIUS; >>> > ++iterator; >>> > } >>> > >>> > After adding the cout commands I saw that --MY_RADIUS is incorrect. I >>> > generated the required sphere using matlab, just to get the values I >>> should >>> > assign to the pixels. >>> > >>> > Additionally, I noticed there is a need for anti-aliasing to the mask. >>> > Kindly let me know how this can be done iteratively. >>> > >>> > Thank you! >>> > >>> > >>> > >>> > -- >>> > View this message in context: http://itk-users.7.n7.nabble.c >>> om/Creating-3D-dome-using-ITK-tp38201.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 >>> >> >> >> _____________________________________ >> 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 >> >> > > > -- > robert > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sidharta.gupta93 at gmail.com Wed May 10 08:06:45 2017 From: sidharta.gupta93 at gmail.com (sidharta) Date: Wed, 10 May 2017 05:06:45 -0700 (MST) Subject: [ITK-users] Creating 3D dome using ITK In-Reply-To: References: <1494411577924-38201.post@n7.nabble.com> Message-ID: <1494418005909-38210.post@n7.nabble.com> I tried the EllipseSpatialObject as follows: int EllipseSpatialObjectToImage(InputImageType::Pointer binaryImage){ typedef itk::EllipseSpatialObject EllipseType; EllipseType::Pointer ellipse = EllipseType::New(); ellipse->SetRadius(0.5 / binaryImage->GetSpacing()[0]); ellipse->SetDefaultInsideValue(1.0); ellipse->SetDefaultOutsideValue(0.0); typedef itk::SpatialObjectToImageFilter SpatialObjectToImageFilterType; SpatialObjectToImageFilterType::Pointer filter = SpatialObjectToImageFilterType::New(); int d = 1.0 / binaryImage->GetSpacing()[0]; InputImageType::SizeType size; size.Fill(d); filter->SetSize(size); filter->SetInsideValue(255); filter->SetOutsideValue(0); double O[3] = { 0, 0, 0 }; filter->SetOrigin(O); filter->SetInput(ellipse); filter->Update(); int flag = FileWriter(filter->GetOutput(), "C:/Users/api/Desktop/3D_mask_ellipse.mhd"); if (!flag) return EXIT_FAILURE; else return EXIT_SUCCESS; } But I get a blank image unfortunately. How would I get hemi-sphere from this? Just cropImageFilter? Thank you Sidharta -- View this message in context: http://itk-users.7.n7.nabble.com/Creating-3D-dome-using-ITK-tp38201p38210.html Sent from the ITK - Users mailing list archive at Nabble.com. From zhuangming.shen at sphic.org.cn Wed May 10 07:58:37 2017 From: zhuangming.shen at sphic.org.cn (=?gb2312?B?yfLXr8P3?=) Date: Wed, 10 May 2017 11:58:37 +0000 Subject: [ITK-users] HDF5 problem when compile ITK 4.11.0 Message-ID: <1494417523901.42074@sphic.org.cn> Hi all, When I compile ITK 4.11.0 on Rhel 6 using gcc 4.8.5 (ITK_USE_SYSTEM_HDF5 in CMake is disable), I encountered a problem (pls see the attached figure). Any suggestion? Thanks in advance. Regards, Zhuangming Shen -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: ITK_compile_problem.PNG Type: image/png Size: 37166 bytes Desc: ITK_compile_problem.PNG URL: From hans-johnson at uiowa.edu Wed May 10 08:57:51 2017 From: hans-johnson at uiowa.edu (Johnson, Hans J) Date: Wed, 10 May 2017 12:57:51 +0000 Subject: [ITK-users] Fwd: itk forum In-Reply-To: References: <482368304.8622539.1494399128291.ref@mail.yahoo.com> <482368304.8622539.1494399128291@mail.yahoo.com> Message-ID: I completely support moving to a more modern forum. Hans -- On 5/10/17, 5:23 AM, "Insight-users on behalf of Matt McCormick" wrote: FYI - a Discourse request. ---------- Forwarded message ---------- From: ibraheem aldhamari via Insight-users Date: Wed, May 10, 2017 at 2:52 AM Subject: [ITK-users] itk forum To: Insight-users Hi, is there any plan to move to a forum e.g. [1] instead of the mailing-list? it makes communication, searching information easier and more organized. Have a nice day! Ibraheem [1] https://www.discourse.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 _____________________________________ 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 May 10 09:05:00 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Wed, 10 May 2017 09:05:00 -0400 Subject: [ITK-users] Fwd: itk forum In-Reply-To: References: <482368304.8622539.1494399128291.ref@mail.yahoo.com> <482368304.8622539.1494399128291@mail.yahoo.com> Message-ID: I agree with the move away from the mailing list. To properly search the mailing list, I go to my GMail inbox' label:itk and search from there. General internet search almost always has too many spurious results. One additional option, which some of us already implement, is to watch tag ITK on stack overflow. If more of us did it, we could properly advertise that additional option for people with a question who are not already members of the mailing list/forum. Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Wed, May 10, 2017 at 8:57 AM, Johnson, Hans J wrote: > I completely support moving to a more modern forum. > > Hans > > > -- > > > On 5/10/17, 5:23 AM, "Insight-users on behalf of Matt McCormick" < > insight-users-bounces at itk.org on behalf of matt.mccormick at kitware.com> > wrote: > > FYI - a Discourse request. > > > ---------- Forwarded message ---------- > From: ibraheem aldhamari via Insight-users > Date: Wed, May 10, 2017 at 2:52 AM > Subject: [ITK-users] itk forum > To: Insight-users > > > Hi, > is there any plan to move to a forum e.g. [1] instead of the > mailing-list? it makes communication, searching information easier > and more organized. > Have a nice day! > Ibraheem > [1] https://www.discourse.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 > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Wed May 10 09:21:07 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Wed, 10 May 2017 09:21:07 -0400 Subject: [ITK-users] HDF5 problem when compile ITK 4.11.0 In-Reply-To: <1494417523901.42074@sphic.org.cn> References: <1494417523901.42074@sphic.org.cn> Message-ID: Hi, To address the -fPIC error, add -fPIC to CMAKE_C_FLAGS and CMAKE_CXX_FLAGS. Or, set BUILD_SHARED_LIBS to ON. For building on RHEL 6, ITK 4.11.1 or ITK 4.12RC is adviced due to fixes for the gold linker. HTH, Matt On Wed, May 10, 2017 at 7:58 AM, ??? wrote: > Hi all, > > > When I compile ITK 4.11.0 on Rhel 6 using gcc 4.8.5 (ITK_USE_SYSTEM_HDF5 in > CMake is disable), I encountered a problem (pls see the attached figure). > Any suggestion? Thanks in advance. > > > > Regards, > > > Zhuangming Shen > > > _____________________________________ > 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 lasso at queensu.ca Wed May 10 09:33:35 2017 From: lasso at queensu.ca (Andras Lasso) Date: Wed, 10 May 2017 13:33:35 +0000 Subject: [ITK-users] Fwd: itk forum In-Reply-To: References: <482368304.8622539.1494399128291.ref@mail.yahoo.com> <482368304.8622539.1494399128291@mail.yahoo.com> Message-ID: We moved Slicer mailing lists to Discourse about one month ago and it works very well. There does not seem to be any disadvantage (other than we have to rebuild our reputation at Google to get the pages indexed more frequently) and there are many advantages. There are many things in common between Slicer and ITK users/developers, so if you are interested in our experiences or in specific issues then you can have a look at discussions in the "Forum feedback" category and you can also ask questions there (https://discourse.slicer.org/c/forum-feedback). Andras -----Original Message----- From: Community [mailto:community-bounces at itk.org] On Behalf Of Johnson, Hans J Sent: Wednesday, May 10, 2017 8:58 AM To: Matt McCormick ; insight-users at itk.org; Bill Hoffman ; Jean-Christophe Fillion-Robin Subject: Re: [ITK] [ITK-users] Fwd: itk forum I completely support moving to a more modern forum. Hans -- On 5/10/17, 5:23 AM, "Insight-users on behalf of Matt McCormick" wrote: FYI - a Discourse request. ---------- Forwarded message ---------- From: ibraheem aldhamari via Insight-users Date: Wed, May 10, 2017 at 2:52 AM Subject: [ITK-users] itk forum To: Insight-users Hi, is there any plan to move to a forum e.g. [1] instead of the mailing-list? it makes communication, searching information easier and more organized. Have a nice day! Ibraheem [1] https://www.discourse.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 _____________________________________ 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 From francois.budin at kitware.com Wed May 10 09:54:15 2017 From: francois.budin at kitware.com (Francois Budin) Date: Wed, 10 May 2017 09:54:15 -0400 Subject: [ITK-users] Creating 3D dome using ITK In-Reply-To: <1494418005909-38210.post@n7.nabble.com> References: <1494411577924-38201.post@n7.nabble.com> <1494418005909-38210.post@n7.nabble.com> Message-ID: Hello Sidharta, Don't forget to move the ellipsoid where you want in space. In the example that Robert pointed you to [1], it is: ellipse->SetObjectToParentTransform( transform ); To obtain only haft a dome, you could only create an image that contains half of your ellipse for "SpatialObjectToImageFilter", and then resize the image afterward to match the image size you want. Hope this helps, Francois [1] https://itk.org/Wiki/ITK/Examples/SpatialObjects/EllipseSpatialObject On Wed, May 10, 2017 at 8:06 AM, sidharta wrote: > I tried the EllipseSpatialObject as follows: > > int EllipseSpatialObjectToImage(InputImageType::Pointer binaryImage){ > > typedef itk::EllipseSpatialObject EllipseType; > EllipseType::Pointer ellipse = EllipseType::New(); > > ellipse->SetRadius(0.5 / binaryImage->GetSpacing()[0]); > ellipse->SetDefaultInsideValue(1.0); > ellipse->SetDefaultOutsideValue(0.0); > > typedef itk::SpatialObjectToImageFilter InputImageType> > SpatialObjectToImageFilterType; > SpatialObjectToImageFilterType::Pointer filter = > SpatialObjectToImageFilterType::New(); > > int d = 1.0 / binaryImage->GetSpacing()[0]; > InputImageType::SizeType size; > size.Fill(d); > filter->SetSize(size); > > filter->SetInsideValue(255); > filter->SetOutsideValue(0); > > double O[3] = { 0, 0, 0 }; > filter->SetOrigin(O); > filter->SetInput(ellipse); > > filter->Update(); > > int flag = FileWriter(filter->GetOutput(), > "C:/Users/api/Desktop/3D_mask_ellipse.mhd"); > if (!flag) > return EXIT_FAILURE; > else > return EXIT_SUCCESS; > } > But I get a blank image unfortunately. How would I get hemi-sphere from > this? Just cropImageFilter? > > > Thank you > Sidharta > > > > -- > View this message in context: http://itk-users.7.n7.nabble. > com/Creating-3D-dome-using-ITK-tp38201p38210.html > Sent from the ITK - Users mailing list archive at Nabble.com. > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From blowekamp at mail.nih.gov Wed May 10 10:02:30 2017 From: blowekamp at mail.nih.gov (Lowekamp, Bradley (NIH/NLM/LHC) [C]) Date: Wed, 10 May 2017 14:02:30 +0000 Subject: [ITK-users] [ITK] Fwd: itk forum In-Reply-To: References: <482368304.8622539.1494399128291.ref@mail.yahoo.com> <482368304.8622539.1494399128291@mail.yahoo.com> Message-ID: <95A6ACB6-7623-4DD2-84CC-9C0FA1828292@mail.nih.gov> In general I prefer forums, but I haven?t figured out the slicer one yet to get the proper notification/filtering. Brad > On May 10, 2017, at 9:33 AM, Andras Lasso wrote: > > We moved Slicer mailing lists to Discourse about one month ago and it works very well. There does not seem to be any disadvantage (other than we have to rebuild our reputation at Google to get the pages indexed more frequently) and there are many advantages. There are many things in common between Slicer and ITK users/developers, so if you are interested in our experiences or in specific issues then you can have a look at discussions in the "Forum feedback" category and you can also ask questions there (https://discourse.slicer.org/c/forum-feedback). > > Andras > > -----Original Message----- > From: Community [mailto:community-bounces at itk.org] On Behalf Of Johnson, Hans J > Sent: Wednesday, May 10, 2017 8:58 AM > To: Matt McCormick ; insight-users at itk.org; Bill Hoffman ; Jean-Christophe Fillion-Robin > Subject: Re: [ITK] [ITK-users] Fwd: itk forum > > I completely support moving to a more modern forum. > > Hans > > > -- > > > On 5/10/17, 5:23 AM, "Insight-users on behalf of Matt McCormick" wrote: > > FYI - a Discourse request. > > > ---------- Forwarded message ---------- > From: ibraheem aldhamari via Insight-users > Date: Wed, May 10, 2017 at 2:52 AM > Subject: [ITK-users] itk forum > To: Insight-users > > > Hi, > is there any plan to move to a forum e.g. [1] instead of the > mailing-list? it makes communication, searching information easier > and more organized. > Have a nice day! > Ibraheem > [1] https://www.discourse.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 > _____________________________________ > 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 > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community From sidharta.gupta93 at gmail.com Wed May 10 11:10:02 2017 From: sidharta.gupta93 at gmail.com (sidharta) Date: Wed, 10 May 2017 08:10:02 -0700 (MST) Subject: [ITK-users] Creating 3D dome using ITK In-Reply-To: References: <1494411577924-38201.post@n7.nabble.com> <1494418005909-38210.post@n7.nabble.com> Message-ID: <1494429002241-38218.post@n7.nabble.com> Dear Froncois Thank you for your reply. The reason why I need this dome is because it mimics a burr (drill bit). So, I extract densities in a cubic volume and then mask this cube with the dome, which essentially would give me an image which shows what densities will the burr encounter while drilling. The ellipse object seems to be the key here but I don't know how to transform. The rotation would be identity but the translation is the key. So following is a pseudo code with I came up with, correct me if I am wrong: 1. Make an ellipse object of radius = 2 * edge length of the cube. 2. With SpatialObjectToImageFilter, set size of the image as the edge length of the cube (in all dimensions). Then transform the object (ellipse) so that the center of the ellipse lies at the origin of the image. This is what I am not able to figure how to achieve. Kindly let me know what you think Regards, Sidharta -- View this message in context: http://itk-users.7.n7.nabble.com/Creating-3D-dome-using-ITK-tp38201p38218.html Sent from the ITK - Users mailing list archive at Nabble.com. From lasso at queensu.ca Wed May 10 11:43:12 2017 From: lasso at queensu.ca (Andras Lasso) Date: Wed, 10 May 2017 15:43:12 +0000 Subject: [ITK-users] [ITK] Fwd: itk forum In-Reply-To: <95A6ACB6-7623-4DD2-84CC-9C0FA1828292@mail.nih.gov> References: <482368304.8622539.1494399128291.ref@mail.yahoo.com> <482368304.8622539.1494399128291@mail.yahoo.com> <95A6ACB6-7623-4DD2-84CC-9C0FA1828292@mail.nih.gov> Message-ID: If you want to get notification about all posts then you can either enable mailing list mode or add all categories that you are interested in to the "Watched" list (https://discourse.slicer.org/u/YourUsernameHere/preferences/categories). There are many options to fine-tune notifications: you can choose to get the first post of each new topic (then you can decide to watch all further posts); you can mute specific topics that you are not interested in; you can automatically watch/mute certain tags, etc. The Slicer forum is set up so that by default new users only get email notifications about "Announcements" topic (where releases, major events, features are announced) to not overwhelm the users with emails. Hopefully, this way we can still reach people who just signed up because they had one question (they will not unsubscribe due to getting lots of irrelevant emails). Andras -----Original Message----- From: Lowekamp, Bradley (NIH/NLM/LHC) [C] [mailto:blowekamp at mail.nih.gov] Sent: Wednesday, May 10, 2017 10:03 AM To: Andras Lasso Cc: Johnson, Hans J ; Matt McCormick ; insight-users at itk.org; Bill Hoffman ; Jean-Christophe Fillion-Robin Subject: Re: [ITK] [ITK-users] Fwd: itk forum In general I prefer forums, but I haven?t figured out the slicer one yet to get the proper notification/filtering. Brad > On May 10, 2017, at 9:33 AM, Andras Lasso wrote: > > We moved Slicer mailing lists to Discourse about one month ago and it works very well. There does not seem to be any disadvantage (other than we have to rebuild our reputation at Google to get the pages indexed more frequently) and there are many advantages. There are many things in common between Slicer and ITK users/developers, so if you are interested in our experiences or in specific issues then you can have a look at discussions in the "Forum feedback" category and you can also ask questions there (https://discourse.slicer.org/c/forum-feedback). > > Andras > > -----Original Message----- > From: Community [mailto:community-bounces at itk.org] On Behalf Of > Johnson, Hans J > Sent: Wednesday, May 10, 2017 8:58 AM > To: Matt McCormick ; > insight-users at itk.org; Bill Hoffman ; > Jean-Christophe Fillion-Robin > Subject: Re: [ITK] [ITK-users] Fwd: itk forum > > I completely support moving to a more modern forum. > > Hans > > > -- > > > On 5/10/17, 5:23 AM, "Insight-users on behalf of Matt McCormick" wrote: > > FYI - a Discourse request. > > > ---------- Forwarded message ---------- > From: ibraheem aldhamari via Insight-users > Date: Wed, May 10, 2017 at 2:52 AM > Subject: [ITK-users] itk forum > To: Insight-users > > > Hi, > is there any plan to move to a forum e.g. [1] instead of the > mailing-list? it makes communication, searching information easier > and more organized. > Have a nice day! > Ibraheem > [1] https://www.discourse.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 > _____________________________________ > 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 > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community From sidharta.gupta93 at gmail.com Wed May 10 13:10:44 2017 From: sidharta.gupta93 at gmail.com (sidharta) Date: Wed, 10 May 2017 10:10:44 -0700 (MST) Subject: [ITK-users] Creating 3D dome using ITK In-Reply-To: <1494429002241-38218.post@n7.nabble.com> References: <1494411577924-38201.post@n7.nabble.com> <1494418005909-38210.post@n7.nabble.com> <1494429002241-38218.post@n7.nabble.com> Message-ID: <1494436244849-38220.post@n7.nabble.com> So I tried the following: int EllipseSpatialObjectToImage(InputImageType::Pointer binaryImage){ typedef itk::EllipseSpatialObject EllipseType; typedef itk::SpatialObjectToImageFilter SpatialObjectToImageFilterType; SpatialObjectToImageFilterType::Pointer spatialObjectToImageFilter = SpatialObjectToImageFilterType::New(); InputImageType::SizeType size; size[0] = 8; size[1] = 8; size[2] = 8; // spatialObjectToImageFilter->SetSize(size); not setting the size explicitly as by default the filter will calculate the optimum size. InputImageType::SpacingType spacing; spacing.Fill(1); spatialObjectToImageFilter->SetSpacing(spacing); EllipseType::Pointer ellipse = EllipseType::New(); EllipseType::ArrayType radiusArray; ellipse->SetRadius(8); // Since I want half of this ellipse, I set the radius to 8. // Position the ellipse in the image typedef EllipseType::TransformType TransformType; TransformType::Pointer transform = TransformType::New(); transform->SetIdentity(); TransformType::OutputVectorType translation; TransformType::CenterType center; translation[0] = 8 * spacing[0]; // Translate so the center of the "ellipse" is such that it covers the entire image bounds. translation[1] = 8 * spacing[1]; translation[2] = -8 * spacing[2]; // This is for dome transform->Translate(translation); ellipse->SetObjectToParentTransform(transform); std::cout << "Ellipse bounding box " << ellipse->GetBoundingBox()->GetMaximum() << std::endl; spatialObjectToImageFilter->SetInput(ellipse); ellipse->SetDefaultInsideValue(255); ellipse->SetDefaultOutsideValue(0); spatialObjectToImageFilter->SetUseObjectValue(true); spatialObjectToImageFilter->SetOutsideValue(0); spatialObjectToImageFilter->Update(); int flag = FileWriter(spatialObjectToImageFilter->GetOutput(), "C:/Users/api/Desktop/dome.mhd"); if (!flag) return EXIT_FAILURE; return EXIT_SUCCESS; } But I don't get what I am intending. Any suggestions? -- View this message in context: http://itk-users.7.n7.nabble.com/Creating-3D-dome-using-ITK-tp38201p38220.html Sent from the ITK - Users mailing list archive at Nabble.com. From francois.budin at kitware.com Wed May 10 13:54:39 2017 From: francois.budin at kitware.com (Francois Budin) Date: Wed, 10 May 2017 13:54:39 -0400 Subject: [ITK-users] Creating 3D dome using ITK In-Reply-To: <1494429002241-38218.post@n7.nabble.com> References: <1494411577924-38201.post@n7.nabble.com> <1494418005909-38210.post@n7.nabble.com> <1494429002241-38218.post@n7.nabble.com> Message-ID: Hello Sidharta, See answers inline below: On Wed, May 10, 2017 at 11:10 AM, sidharta wrote: > Dear Froncois > > Thank you for your reply. The reason why I need this dome is because it > mimics a burr (drill bit). So, I extract densities in a cubic volume and > then mask this cube with the dome, which essentially would give me an image > which shows what densities will the burr encounter while drilling. The > ellipse object seems to be the key here but I don't know how to transform. > The rotation would be identity but the translation is the key. So following > is a pseudo code with I came up with, correct me if I am wrong: > > 1. Make an ellipse object of radius = 2 * edge length of the cube. > Don't you mean that the ellipse radius is 1/2 of the edge length of the cube? > 2. With SpatialObjectToImageFilter, set size of the image as the edge > length > of the cube (in all dimensions). Then transform the object (ellipse) so > that > the center of the ellipse lies at the origin of the image. This is what I > am > not able to figure how to achieve. > You probably don't want the center of the image to lie at the origin, but in the center of your edge if I understand correctly, at least for 2 of your 3 dimensions, and at the origin for the 3rd dimension to obtain a half-dome. > Kindly let me know what you think > > Regards, > Sidharta > > > > -- > View this message in context: http://itk-users.7.n7.nabble.c > om/Creating-3D-dome-using-ITK-tp38201p38218.html > Sent from the ITK - Users mailing list archive at Nabble.com. > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sidharta.gupta93 at gmail.com Wed May 10 14:15:36 2017 From: sidharta.gupta93 at gmail.com (sidharta) Date: Wed, 10 May 2017 11:15:36 -0700 (MST) Subject: [ITK-users] Creating 3D dome using ITK In-Reply-To: References: <1494411577924-38201.post@n7.nabble.com> <1494418005909-38210.post@n7.nabble.com> <1494429002241-38218.post@n7.nabble.com> Message-ID: <1494440136484-38222.post@n7.nabble.com> Dear Francois, Thank you for your reply. 1. Say I have a cube with edge length = 16. If I make an ellipse of radius = 8, the dome wouldn't fit in the entire cube, but rather only half of the cube. So, making an ellipse of radius = 16, and then masking the cube with the dome would give me what I want (correct me if I am wrong). 2. If 0,0,0 is the origin of the image, I would like to set the transform such that the center of the ellipse is at 8, 8, -8 so that I get only the dome in the image with "SpatialObjectToImageFilter". Using "->ComputeBoundingBox()" and then "->GetBoundingBox()->GetBounds()", before and after transformation (before would be in local coordinates and after would be in Parent coordinates), I got the following results for translation[0] = 0 * spacing[0]; translation[1] = 8 * spacing[1]; translation[2] = 0 * spacing[2]; -- View this message in context: http://itk-users.7.n7.nabble.com/Creating-3D-dome-using-ITK-tp38201p38222.html Sent from the ITK - Users mailing list archive at Nabble.com. From sidharta.gupta93 at gmail.com Wed May 10 14:49:10 2017 From: sidharta.gupta93 at gmail.com (sidharta) Date: Wed, 10 May 2017 11:49:10 -0700 (MST) Subject: [ITK-users] Creating 3D dome using ITK In-Reply-To: <1494440136484-38222.post@n7.nabble.com> References: <1494411577924-38201.post@n7.nabble.com> <1494418005909-38210.post@n7.nabble.com> <1494429002241-38218.post@n7.nabble.com> <1494440136484-38222.post@n7.nabble.com> Message-ID: <1494442150934-38223.post@n7.nabble.com> I seemed to have fixed it using the following: translation[0] = 8; translation[1] = 8; translation[2] = 0; which is what I imagined before. So far so good, but the image I am going to mask this with (or convolve) has a spacing of 0.125 in all directions. I achieved the desired results with spacing in all directions = 1. When I change the spacing to 0.125 and run the code, the resulting "dome" image is blank. Can you tell why it is like this and how I can fix it? Thank you for your time Sidharta -- View this message in context: http://itk-users.7.n7.nabble.com/Creating-3D-dome-using-ITK-tp38201p38223.html Sent from the ITK - Users mailing list archive at Nabble.com. From francois.budin at kitware.com Wed May 10 16:23:02 2017 From: francois.budin at kitware.com (Francois Budin) Date: Wed, 10 May 2017 16:23:02 -0400 Subject: [ITK-users] Creating 3D dome using ITK In-Reply-To: <1494442150934-38223.post@n7.nabble.com> References: <1494411577924-38201.post@n7.nabble.com> <1494418005909-38210.post@n7.nabble.com> <1494429002241-38218.post@n7.nabble.com> <1494440136484-38222.post@n7.nabble.com> <1494442150934-38223.post@n7.nabble.com> Message-ID: I have to admit that I am not sure to picture correctly what you are trying to do with the dome and the square. However, my guess is that you can you have an error with the spacing because of a scaling issue. You may want to scale your ellipsoid by adding scaling values in the transform matrix. Hope this helps, Francois On Wed, May 10, 2017 at 2:49 PM, sidharta wrote: > I seemed to have fixed it using the following: > > translation[0] = 8; > translation[1] = 8; > translation[2] = 0; > > > > > which is what I imagined before. So far so good, but the image I am going > to > mask this with (or convolve) has a spacing of 0.125 in all directions. I > achieved the desired results with spacing in all directions = 1. When I > change the spacing to 0.125 and run the code, the resulting "dome" image is > blank. Can you tell why it is like this and how I can fix it? > > Thank you for your time > Sidharta > > > > -- > View this message in context: http://itk-users.7.n7.nabble. > com/Creating-3D-dome-using-ITK-tp38201p38223.html > Sent from the ITK - Users mailing list archive at Nabble.com. > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From zhuangming.shen at sphic.org.cn Wed May 10 21:02:47 2017 From: zhuangming.shen at sphic.org.cn (=?gb2312?B?yfLXr8P3?=) Date: Thu, 11 May 2017 01:02:47 +0000 Subject: [ITK-users] HDF5 problem when compile ITK 4.11.0 In-Reply-To: References: <1494417523901.42074@sphic.org.cn>, Message-ID: <1494464572849.78466@sphic.org.cn> Hi Matt, I have tried (1) add -fPIC to CMAKE_C_FLAGS and CMAKE_CXX_FLAGS, (2) BUILD_SHARED_LIBS to ON and (3) using ITK 4.11.1, but none of them can fix the problem. The same error still appears. Any idea? Thanks. Regards, Zhuangming Shen ________________________________________ From: Matt McCormick Sent: Wednesday, May 10, 2017 9:21 PM To: ??? Cc: insight-users at itk.org Subject: Re: [ITK-users] HDF5 problem when compile ITK 4.11.0 Hi, To address the -fPIC error, add -fPIC to CMAKE_C_FLAGS and CMAKE_CXX_FLAGS. Or, set BUILD_SHARED_LIBS to ON. For building on RHEL 6, ITK 4.11.1 or ITK 4.12RC is adviced due to fixes for the gold linker. HTH, Matt On Wed, May 10, 2017 at 7:58 AM, ??? wrote: > Hi all, > > > When I compile ITK 4.11.0 on Rhel 6 using gcc 4.8.5 (ITK_USE_SYSTEM_HDF5 in > CMake is disable), I encountered a problem (pls see the attached figure). > Any suggestion? Thanks in advance. > > > > Regards, > > > Zhuangming Shen > > > _____________________________________ > 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 zhuangming.shen at sphic.org.cn Thu May 11 05:00:46 2017 From: zhuangming.shen at sphic.org.cn (=?gb2312?B?yfLXr8P3?=) Date: Thu, 11 May 2017 09:00:46 +0000 Subject: [ITK-users] HDF5 problem when compile ITK 4.11.0 In-Reply-To: References: <1494417523901.42074@sphic.org.cn>, Message-ID: <1494493251948.87144@sphic.org.cn> Hi Matt, I have found the reason. This is because the compiler in CMAKE is set to original gcc/g++, not gcc/g++ 4.8.5. Thanks for your suggestion. Regards, Zhuangming Shen ________________________________________ From: Matt McCormick Sent: Wednesday, May 10, 2017 9:21 PM To: ??? Cc: insight-users at itk.org Subject: Re: [ITK-users] HDF5 problem when compile ITK 4.11.0 Hi, To address the -fPIC error, add -fPIC to CMAKE_C_FLAGS and CMAKE_CXX_FLAGS. Or, set BUILD_SHARED_LIBS to ON. For building on RHEL 6, ITK 4.11.1 or ITK 4.12RC is adviced due to fixes for the gold linker. HTH, Matt On Wed, May 10, 2017 at 7:58 AM, ??? wrote: > Hi all, > > > When I compile ITK 4.11.0 on Rhel 6 using gcc 4.8.5 (ITK_USE_SYSTEM_HDF5 in > CMake is disable), I encountered a problem (pls see the attached figure). > Any suggestion? Thanks in advance. > > > > Regards, > > > Zhuangming Shen > > > _____________________________________ > 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 Thu May 11 08:58:57 2017 From: sidharta.gupta93 at gmail.com (sidharta) Date: Thu, 11 May 2017 05:58:57 -0700 (MST) Subject: [ITK-users] Creating 3D dome using ITK In-Reply-To: References: <1494418005909-38210.post@n7.nabble.com> <1494429002241-38218.post@n7.nabble.com> <1494440136484-38222.post@n7.nabble.com> <1494442150934-38223.post@n7.nabble.com> Message-ID: <1494507537890-38227.post@n7.nabble.com> Dear Francois, Thank you for your reply. Is it also possible to change the spacing explicitly in the final image? As in using "SpatialObjectToImageFilter" I get the ellipse in an image with spacing and after that I change the spacing to what I want from 1. Because I tried that and I get the desired image with the correct spacing but then the program crashes. P.S. To my understanding (correct me if I am wrong), if initially the spacing is 1.0 and everything works, I should scale the ellipse by setting "transform->Scale(1 / spacing[0])", where spacing[0] is the desired spacing. Then, I would also have to change the translation vectors accordingly (which I am still trying to figure out so that the image size is exactly what I want it to be). Thank you for your time. Sidharta -- View this message in context: http://itk-users.7.n7.nabble.com/Creating-3D-dome-using-ITK-tp38201p38227.html Sent from the ITK - Users mailing list archive at Nabble.com. From sidharta.gupta93 at gmail.com Thu May 11 11:20:49 2017 From: sidharta.gupta93 at gmail.com (sidharta) Date: Thu, 11 May 2017 08:20:49 -0700 (MST) Subject: [ITK-users] [ITK] Extract slice from ResampleFilter In-Reply-To: References: <1491997495031-38097.post@n7.nabble.com> <1492088644485-38110.post@n7.nabble.com> <1492095684045-38115.post@n7.nabble.com> <1492097632375-38118.post@n7.nabble.com> <1492609238543-38129.post@n7.nabble.com> Message-ID: <1494516049534-38228.post@n7.nabble.com> Dear D?enan, First of all, thank you for all your help. So, from the previous posts I was able to resample the CBCT image so that it lies in the direction of the Trajectory. So far so good. Now, I am trying to extract only a part of the volume in this resampled image. So, I figure that since I already calculated the direction, I could just set the size of the output image to be what I want in the "ResampleImageFilter" and it should work fine. However, when I do this, the extracted volume is in a different direction than I assumed it to be. For example, In the above image, I assumed the part of the volume that I extract is actually in the direction shown in the "Green" line, however I instead get the volume along the "Red" line. Why is this so? The direction I calculate for the "ResampleImageFilter" was essentially along the "Green" line. Additionally, what I am trying to do, is this not possible with the "ResampleImageFilter"? Do I need to extract the volume using the "ExtractImageFilter" instead? Thank you for your time Sidharta -- View this message in context: http://itk-users.7.n7.nabble.com/Extract-slice-from-ResampleFilter-tp38074p38228.html Sent from the ITK - Users mailing list archive at Nabble.com. From dzenanz at gmail.com Thu May 11 11:40:56 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Thu, 11 May 2017 11:40:56 -0400 Subject: [ITK-users] [ITK] Extract slice from ResampleFilter In-Reply-To: <1494516049534-38228.post@n7.nabble.com> References: <1491997495031-38097.post@n7.nabble.com> <1492088644485-38110.post@n7.nabble.com> <1492095684045-38115.post@n7.nabble.com> <1492097632375-38118.post@n7.nabble.com> <1492609238543-38129.post@n7.nabble.com> <1494516049534-38228.post@n7.nabble.com> Message-ID: Hi Sidharta, just changing the size of the output image should not affect its orientation. Can you share the code with comments which line you added to try changing the size? Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Thu, May 11, 2017 at 11:20 AM, sidharta wrote: > Dear D?enan, > > First of all, thank you for all your help. > > So, from the previous posts I was able to resample the CBCT image so that > it > lies in the direction of the Trajectory. So far so good. Now, I am trying > to > extract only a part of the volume in this resampled image. So, I figure > that > since I already calculated the direction, I could just set the size of the > output image to be what I want in the "ResampleImageFilter" and it should > work fine. However, when I do this, the extracted volume is in a different > direction than I assumed it to be. For example, > > > > In the above image, I assumed the part of the volume that I extract is > actually in the direction shown in the "Green" line, however I instead get > the volume along the "Red" line. Why is this so? The direction I calculate > for the "ResampleImageFilter" was essentially along the "Green" line. > > Additionally, what I am trying to do, is this not possible with the > "ResampleImageFilter"? Do I need to extract the volume using the > "ExtractImageFilter" instead? > > Thank you for your time > Sidharta > > > > -- > View this message in context: http://itk-users.7.n7.nabble. > com/Extract-slice-from-ResampleFilter-tp38074p38228.html > Sent from the ITK - Users mailing list archive at Nabble.com. > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sidharta.gupta93 at gmail.com Thu May 11 12:00:00 2017 From: sidharta.gupta93 at gmail.com (sidharta) Date: Thu, 11 May 2017 09:00:00 -0700 (MST) Subject: [ITK-users] [ITK] Extract slice from ResampleFilter In-Reply-To: References: <1492088644485-38110.post@n7.nabble.com> <1492095684045-38115.post@n7.nabble.com> <1492097632375-38118.post@n7.nabble.com> <1492609238543-38129.post@n7.nabble.com> <1494516049534-38228.post@n7.nabble.com> Message-ID: <1494518400067-38230.post@n7.nabble.com> Dear D?enan, Thank you for your swift reply. This is the entire function which I used: int ResampleImage(std::vector trajectory_points, std::vector coordinate_system, InputImageType::Pointer image){ Vector3d traj_start, traj_end, third_point; traj_start = trajectory_points.at(0); traj_end = trajectory_points.back(); third_point = traj_end + coordinate_system.at(3) * 2 / image->GetSpacing()[0]; Vector3d ST, SP, normal_to_plane; ST = traj_end - traj_start; SP = third_point - traj_start; normal_to_plane = ST.cross(SP); InputImageType::DirectionType imageDirection, trajectoryDirection; imageDirection = image->GetDirection(); std::cout << "Image direction cosines : \n" << imageDirection << std::endl; trajectoryDirection[0][0] = ST.normalized()[0]; trajectoryDirection[0][1] = ST.normalized()[1]; trajectoryDirection[0][2] = ST.normalized()[2]; Vector3d second = normal_to_plane.cross(ST); Vector3d normalized_second = second.normalized(); trajectoryDirection[1][0] = normalized_second[0]; trajectoryDirection[1][1] = normalized_second[1]; trajectoryDirection[1][2] = normalized_second[2]; Vector3d normalized_normal = normal_to_plane.normalized(); trajectoryDirection[2][0] = normalized_normal[0]; trajectoryDirection[2][1] = normalized_normal[1]; trajectoryDirection[2][2] = normalized_normal[2]; std::cout << "Trajectory direction cosines : \n" << trajectoryDirection << std::endl; InputImageType::IndexType voxelIndex; InputImageType::PointType point; point[0] = traj_start[0], point[1] = traj_start[1], point[2] = traj_start[2]; image->TransformPhysicalPointToIndex(point, voxelIndex); std::cout << "Index for point " << point << " is " << voxelIndex << std::endl; point[0] = traj_end[0], point[1] = traj_end[1], point[2] = traj_end[2]; image->TransformPhysicalPointToIndex(point, voxelIndex); std::cout << "Index for point " << point << " is " << voxelIndex << std::endl; double mpr_start[3] = { traj_start[0], traj_start[1], traj_start[2] }; typedef itk::ResampleImageFilter resampleFilterType; resampleFilterType::Pointer resampleFilter = resampleFilterType::New(); typedef itk::LinearInterpolateImageFunction interpolatorType; interpolatorType::Pointer linearInterpolator = interpolatorType::New(); resampleFilter->SetInterpolator(linearInterpolator); resampleFilter->SetDefaultPixelValue(-2000); resampleFilter->SetOutputSpacing(image->GetSpacing()); resampleFilter->SetOutputOrigin(mpr_start); resampleFilter->SetOutputDirection(trajectoryDirection); InputImageType::SizeType size; size[0] = trajectory_points.size(); size[1] = 1.0 / image->GetSpacing()[1]; size[2] = 1.0 / image->GetSpacing()[2]; resampleFilter->SetSize(size); // This is for the trajectory, this corresponds to a size of [137, 8, 8] which is essentially the volume I want to extract. //resampleFilter->SetSize(image->GetLargestPossibleRegion().GetSize()); // This is for the entire resampled image resampleFilter->SetInput(image); //resampleFilter->Update(); //InputImageType::Pointer resampled_image = InputImageType::New(); //resampled_image = resampleFilter->GetOutput(); FileWriter(resampleFilter->GetOutput(), "C:/Users/api/Desktop/resampled_volume_1.mhd"); return EXIT_SUCCESS; } I should also add that when I open the original image with the resampled image in ITK-SNAP (by adding another image), the overlay is exactly the same. Additionally, when I opened this in Slicer, only the top part of the volume seems to be rotated and the rest isn't. Kindly let me know if you need more information. I apologize for asking too many questions. We don't have an experienced ITK user in our lab, although vector understanding is sound :) Thank you for your time. -- View this message in context: http://itk-users.7.n7.nabble.com/Extract-slice-from-ResampleFilter-tp38074p38230.html Sent from the ITK - Users mailing list archive at Nabble.com. From francois.budin at kitware.com Thu May 11 14:01:15 2017 From: francois.budin at kitware.com (Francois Budin) Date: Thu, 11 May 2017 14:01:15 -0400 Subject: [ITK-users] Creating 3D dome using ITK In-Reply-To: <1494507537890-38227.post@n7.nabble.com> References: <1494418005909-38210.post@n7.nabble.com> <1494429002241-38218.post@n7.nabble.com> <1494440136484-38222.post@n7.nabble.com> <1494442150934-38223.post@n7.nabble.com> <1494507537890-38227.post@n7.nabble.com> Message-ID: Hello Sidharta, I agree. The easiest way for you to get the image you want is to generate it with a spacing of 1, and then change the spacing directly on the generated image: my_image->SetSpacing(my_new_spacing); If you want your ellipse to have the same scale (covers the same number of pixels) in your image that has spacing=1 and in your image that has spacing Y, you need to set the transform to: transform->Scale(spacing[0]) Hope this helps, Francois On Thu, May 11, 2017 at 8:58 AM, sidharta wrote: > Dear Francois, > > Thank you for your reply. > > Is it also possible to change the spacing explicitly in the final image? As > in using "SpatialObjectToImageFilter" I get the ellipse in an image with > spacing and after that I change the spacing to what I want from 1. > > > > Because I tried that and I get the desired image with the correct spacing > but then the program crashes. > > P.S. To my understanding (correct me if I am wrong), if initially the > spacing is 1.0 and everything works, I should scale the ellipse by setting > "transform->Scale(1 / spacing[0])", where spacing[0] is the desired > spacing. > Then, I would also have to change the translation vectors accordingly > (which > I am still trying to figure out so that the image size is exactly what I > want it to be). > > > Thank you for your time. > Sidharta > > > > -- > View this message in context: http://itk-users.7.n7.nabble. > com/Creating-3D-dome-using-ITK-tp38201p38227.html > Sent from the ITK - Users mailing list archive at Nabble.com. > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From tobias.wood at kcl.ac.uk Thu May 11 16:34:48 2017 From: tobias.wood at kcl.ac.uk (Wood, Tobias) Date: Thu, 11 May 2017 20:34:48 +0000 Subject: [ITK-users] Fwd: itk forum In-Reply-To: References: <482368304.8622539.1494399128291.ref@mail.yahoo.com> <482368304.8622539.1494399128291@mail.yahoo.com> Message-ID: <9DD7D723-A26F-41D5-9454-5916DB3382F1@kcl.ac.uk> A related note about searching - community at itk.org does seem to be indexed by nabble etc. I was trying to find some messages about the Bruker 2dseq reader which I made around Christmas, and have deleted from Outlook, but I can?t find them (I have an updated 2dseq reader that is about passable enough for other people to take a look at, even if it doesn?t get merged for a while). I?d be interested to see a forum. I quite like having the mailing list in Outlook but I?m not wedded to it. Toby On 10/05/2017, 14:05, "Insight-users on behalf of D?enan Zuki?" on behalf of dzenanz at gmail.com> wrote: I agree with the move away from the mailing list. To properly search the mailing list, I go to my GMail inbox' label:itk and search from there. General internet search almost always has too many spurious results. One additional option, which some of us already implement, is to watch tag ITK on stack overflow. If more of us did it, we could properly advertise that additional option for people with a question who are not already members of the mailing list/forum. Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Wed, May 10, 2017 at 8:57 AM, Johnson, Hans J > wrote: I completely support moving to a more modern forum. Hans -- On 5/10/17, 5:23 AM, "Insight-users on behalf of Matt McCormick" on behalf of matt.mccormick at kitware.com> wrote: FYI - a Discourse request. ---------- Forwarded message ---------- From: ibraheem aldhamari via Insight-users > Date: Wed, May 10, 2017 at 2:52 AM Subject: [ITK-users] itk forum To: Insight-users > Hi, is there any plan to move to a forum e.g. [1] instead of the mailing-list? it makes communication, searching information easier and more organized. Have a nice day! Ibraheem [1] https://www.discourse.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 _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From fisidoro at ethz.ch Fri May 12 08:26:46 2017 From: fisidoro at ethz.ch (D'Isidoro Fabio) Date: Fri, 12 May 2017 12:26:46 +0000 Subject: [ITK-users] initialize same metric object multiple times Message-ID: <50B858FB5F53124F9E32314E5C1B409445994021@MBX112.d.ethz.ch> Hallo, is it possible to initialize the same metric object multiple times (i.e. 50 times), with different fixed images and/or different masks? For example: metric = MattesMutualInformationImageToImageMetricv4[ImageType,ImageType].New() metric.SetTransform(identityTransform) metric.SetFixedImage( FixedImage1 ) metric.SetFixedImageMask(spatialObjectMask1 ) metric.SetMovingImage(MovingImage) metric.Initialize() metric.GetValue() ... ... metric.SetFixedImage( FixedImage2 ) metric.SetFixedImageMask(spatialObjectMask2 ) metric.Initialize() metric.GetValue() ... ... metric.SetFixedImage( FixedImage3 ) metric.SetFixedImageMask(spatialObjectMask3 ) metric.Initialize() metric.GetValue() I read on the manual that "initialize() is for one-time initialization", but I m not sure what that means. Thank you, Fabio. -------------- next part -------------- An HTML attachment was scrubbed... URL: From francois.budin at kitware.com Fri May 12 09:12:51 2017 From: francois.budin at kitware.com (Francois Budin) Date: Fri, 12 May 2017 09:12:51 -0400 Subject: [ITK-users] initialize same metric object multiple times In-Reply-To: <50B858FB5F53124F9E32314E5C1B409445994021@MBX112.d.ethz.ch> References: <50B858FB5F53124F9E32314E5C1B409445994021@MBX112.d.ethz.ch> Message-ID: Hello Fabio, The "Initialize()" function in MattesMutualInformationImageToImageMetricv4 computes the lower and upper bound value that are used to compute the histogram. If you change your fixed image, you should indeed call it again as the bounding values may have changed. Hope this helps, Francois On Fri, May 12, 2017 at 8:26 AM, D'Isidoro Fabio wrote: > Hallo, > > > > is it possible to initialize the same metric object multiple times (i.e. > 50 times), with different fixed images and/or different masks? > > > > For example: > > > > metric = MattesMutualInformationImageToImageMetricv4[ImageType, > ImageType].New() > > metric.SetTransform(identityTransform) > > metric.SetFixedImage( FixedImage1 ) > > metric.SetFixedImageMask(spatialObjectMask1 ) > > metric.SetMovingImage(MovingImage) > > metric.Initialize() > > metric.GetValue() > > ? > > ? > > metric.SetFixedImage( FixedImage2 ) > > metric.SetFixedImageMask(spatialObjectMask2 ) > > metric.Initialize() > > metric.GetValue() > > ? > > ? > > metric.SetFixedImage( FixedImage3 ) > > metric.SetFixedImageMask(spatialObjectMask3 ) > > metric.Initialize() > > metric.GetValue() > > > > > > I read on the manual that ?initialize() is for one-time initialization?, > but I m not sure what that means. > > > > Thank you, > > Fabio. > > > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From aharr8 at uwo.ca Fri May 12 10:06:09 2017 From: aharr8 at uwo.ca (Andrew Harris) Date: Fri, 12 May 2017 10:06:09 -0400 Subject: [ITK-users] [ITK] reference for setting versor components Message-ID: Hello, I'm hoping someone has a reference that will allow me to convert from a 3X3 rotation matrix to a 3-member versor rotation for the purposes of setting a known rotation about one axis as an initialization. For instance, if I wanted the equivalent of a 10 degree rotation about the x-axis, I can build a 3X3 rotation matrix using sines and cosines, but the project I'm working on is using VersorRigid3DTransform as the transform type for the registration, so I'd like to use that for the initial transform. Any help is appreciated, thanks. -- AH ----------------------------------------------------------------------------------------------- *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: From zivrafael.yaniv at nih.gov Fri May 12 10:18:31 2017 From: zivrafael.yaniv at nih.gov (Yaniv, Ziv Rafael (NIH/NLM/LHC) [C]) Date: Fri, 12 May 2017 14:18:31 +0000 Subject: [ITK-users] [ITK] reference for setting versor components In-Reply-To: References: Message-ID: <40D675DF-953B-4348-9C15-9BDD91E4516D@mail.nih.gov> As far as I remember this class has a SetMatrix method, just be careful as the rotation will be around a given center. The ITK global domain transformations are all of the form A(x-c) + t + c , with the nomenclature being A: matrix, c: center, t: translation, and offset: t+c-Ac hope this helps Ziv From: Andrew Harris Date: Friday, May 12, 2017 at 10:06 AM To: Insight-users Subject: [ITK-users] [ITK] reference for setting versor components Hello, I'm hoping someone has a reference that will allow me to convert from a 3X3 rotation matrix to a 3-member versor rotation for the purposes of setting a known rotation about one axis as an initialization. For instance, if I wanted the equivalent of a 10 degree rotation about the x-axis, I can build a 3X3 rotation matrix using sines and cosines, but the project I'm working on is using VersorRigid3DTransform as the transform type for the registration, so I'd like to use that for the initial transform. Any help is appreciated, thanks. -- AH ----------------------------------------------------------------------------------------------- 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: From dzenanz at gmail.com Fri May 12 10:55:06 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Fri, 12 May 2017 10:55:06 -0400 Subject: [ITK-users] [ITK] Extract slice from ResampleFilter In-Reply-To: <1494518400067-38230.post@n7.nabble.com> References: <1492088644485-38110.post@n7.nabble.com> <1492095684045-38115.post@n7.nabble.com> <1492097632375-38118.post@n7.nabble.com> <1492609238543-38129.post@n7.nabble.com> <1494516049534-38228.post@n7.nabble.com> <1494518400067-38230.post@n7.nabble.com> Message-ID: Hi Sidharta, the older versions of ITK-SNAP had index-based overlay, ignoring different spatial position which stem from different origin or direction vectors. I don't know whether the latest (3.6) breaks with that. Slicer always uses spatial position and orientation, so for your experiments you should use Slicer to verify whether your code does what you want. This difference in size setting should not matter, I think your calculation of the direction vectors is more likely cause of error. You could check that by setting different sizes in between the two extremes you trying right now. In case there is some bug in ITK (unlikely), you will flush it out with this. More likely this will make it more apparent to you what you are doing wrong. Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Thu, May 11, 2017 at 12:00 PM, sidharta wrote: > Dear D?enan, > > > Thank you for your swift reply. > > This is the entire function which I used: > > int ResampleImage(std::vector trajectory_points, > std::vector coordinate_system, InputImageType::Pointer image){ > > Vector3d traj_start, traj_end, third_point; > traj_start = trajectory_points.at(0); > traj_end = trajectory_points.back(); > > third_point = traj_end + coordinate_system.at(3) * 2 / > image->GetSpacing()[0]; > > Vector3d ST, SP, normal_to_plane; > ST = traj_end - traj_start; > SP = third_point - traj_start; > normal_to_plane = ST.cross(SP); > > InputImageType::DirectionType imageDirection, trajectoryDirection; > imageDirection = image->GetDirection(); > std::cout << "Image direction cosines : \n" << imageDirection << > std::endl; > > trajectoryDirection[0][0] = ST.normalized()[0]; > trajectoryDirection[0][1] = ST.normalized()[1]; > trajectoryDirection[0][2] = ST.normalized()[2]; > > Vector3d second = normal_to_plane.cross(ST); > Vector3d normalized_second = second.normalized(); > trajectoryDirection[1][0] = normalized_second[0]; > trajectoryDirection[1][1] = normalized_second[1]; > trajectoryDirection[1][2] = normalized_second[2]; > > Vector3d normalized_normal = normal_to_plane.normalized(); > trajectoryDirection[2][0] = normalized_normal[0]; > trajectoryDirection[2][1] = normalized_normal[1]; > trajectoryDirection[2][2] = normalized_normal[2]; > > std::cout << "Trajectory direction cosines : \n" << > trajectoryDirection << > std::endl; > > InputImageType::IndexType voxelIndex; > InputImageType::PointType point; > > point[0] = traj_start[0], point[1] = traj_start[1], point[2] = > traj_start[2]; > image->TransformPhysicalPointToIndex(point, voxelIndex); > std::cout << "Index for point " << point << " is " << voxelIndex << > std::endl; > > point[0] = traj_end[0], point[1] = traj_end[1], point[2] = > traj_end[2]; > image->TransformPhysicalPointToIndex(point, voxelIndex); > std::cout << "Index for point " << point << " is " << voxelIndex << > std::endl; > > double mpr_start[3] = { traj_start[0], traj_start[1], > traj_start[2] }; > > typedef itk::ResampleImageFilter > resampleFilterType; > resampleFilterType::Pointer resampleFilter = > resampleFilterType::New(); > > typedef itk::LinearInterpolateImageFunction InputPixelType> > interpolatorType; > interpolatorType::Pointer linearInterpolator = > interpolatorType::New(); > > resampleFilter->SetInterpolator(linearInterpolator); > resampleFilter->SetDefaultPixelValue(-2000); > resampleFilter->SetOutputSpacing(image->GetSpacing()); > resampleFilter->SetOutputOrigin(mpr_start); > resampleFilter->SetOutputDirection(trajectoryDirection); > InputImageType::SizeType size; > size[0] = trajectory_points.size(); > size[1] = 1.0 / image->GetSpacing()[1]; > size[2] = 1.0 / image->GetSpacing()[2]; > resampleFilter->SetSize(size); // This is for the trajectory, this > corresponds to a size of [137, 8, 8] which is essentially the volume I want > to extract. > //resampleFilter->SetSize(image->GetLargestPossibleRegion().GetSize()); > // > This is for the entire resampled image > resampleFilter->SetInput(image); > //resampleFilter->Update(); > > //InputImageType::Pointer resampled_image = InputImageType::New(); > //resampled_image = resampleFilter->GetOutput(); > > FileWriter(resampleFilter->GetOutput(), > "C:/Users/api/Desktop/resampled_volume_1.mhd"); > return EXIT_SUCCESS; > > } > > I should also add that when I open the original image with the resampled > image in ITK-SNAP (by adding another image), the overlay is exactly the > same. Additionally, when I opened this in Slicer, only the top part of the > volume seems to be rotated and the rest isn't. Kindly let me know if you > need more information. > I apologize for asking too many questions. We don't have an experienced ITK > user in our lab, although vector understanding is sound :) > > Thank you for your time. > > > > -- > View this message in context: http://itk-users.7.n7.nabble. > com/Extract-slice-from-ResampleFilter-tp38074p38230.html > Sent from the ITK - Users mailing list archive at Nabble.com. > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From aharr8 at uwo.ca Fri May 12 11:21:10 2017 From: aharr8 at uwo.ca (Andrew Harris) Date: Fri, 12 May 2017 11:21:10 -0400 Subject: [ITK-users] [ITK] reference for setting versor components In-Reply-To: <40D675DF-953B-4348-9C15-9BDD91E4516D@mail.nih.gov> References: <40D675DF-953B-4348-9C15-9BDD91E4516D@mail.nih.gov> Message-ID: Hi Ziv, thanks for the response. There is no SetMatrix method directly stated in the API, is it maybe inherited from a super class? -- AH ----------------------------------------------------------------------------------------------- *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 Fri, May 12, 2017 at 10:18 AM, Yaniv, Ziv Rafael (NIH/NLM/LHC) [C] < zivrafael.yaniv at nih.gov> wrote: > As far as I remember this class has a SetMatrix method, just be careful as > the rotation will be around a given center. > > > > The ITK global domain transformations are all of the form A(x-c) + t + c > , with the nomenclature being A: matrix, c: center, t: translation, and > offset: t+c-Ac > > > > hope this helps > > Ziv > > > > > > *From: *Andrew Harris > *Date: *Friday, May 12, 2017 at 10:06 AM > *To: *Insight-users > *Subject: *[ITK-users] [ITK] reference for setting versor components > > > > Hello, > > I'm hoping someone has a reference that will allow me to convert from a > 3X3 rotation matrix to a 3-member versor rotation for the purposes of > setting a known rotation about one axis as an initialization. For > instance, if I wanted the equivalent of a 10 degree rotation about the > x-axis, I can build a 3X3 rotation matrix using sines and cosines, but the > project I'm working on is using VersorRigid3DTransform as the transform > type for the registration, so I'd like to use that for the initial > transform. > > > > Any help is appreciated, thanks. > > -- > > AH > > > > ------------------------------------------------------------ > ----------------------------------- > > *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: From aharr8 at uwo.ca Fri May 12 11:23:30 2017 From: aharr8 at uwo.ca (Andrew Harris) Date: Fri, 12 May 2017 11:23:30 -0400 Subject: [ITK-users] [ITK] reference for setting versor components In-Reply-To: References: <40D675DF-953B-4348-9C15-9BDD91E4516D@mail.nih.gov> Message-ID: Of course, looking for myself works too :) Thanks for the help, appreciated! -- AH ----------------------------------------------------------------------------------------------- *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 Fri, May 12, 2017 at 11:21 AM, Andrew Harris wrote: > Hi Ziv, thanks for the response. There is no SetMatrix method directly > stated in the API, is it maybe inherited from a super class? > > -- > > AH > > > ------------------------------------------------------------ > ----------------------------------- > > *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 Fri, May 12, 2017 at 10:18 AM, Yaniv, Ziv Rafael (NIH/NLM/LHC) [C] < > zivrafael.yaniv at nih.gov> wrote: > >> As far as I remember this class has a SetMatrix method, just be careful >> as the rotation will be around a given center. >> >> >> >> The ITK global domain transformations are all of the form A(x-c) + t + c >> , with the nomenclature being A: matrix, c: center, t: translation, and >> offset: t+c-Ac >> >> >> >> hope this helps >> >> Ziv >> >> >> >> >> >> *From: *Andrew Harris >> *Date: *Friday, May 12, 2017 at 10:06 AM >> *To: *Insight-users >> *Subject: *[ITK-users] [ITK] reference for setting versor components >> >> >> >> Hello, >> >> I'm hoping someone has a reference that will allow me to convert from a >> 3X3 rotation matrix to a 3-member versor rotation for the purposes of >> setting a known rotation about one axis as an initialization. For >> instance, if I wanted the equivalent of a 10 degree rotation about the >> x-axis, I can build a 3X3 rotation matrix using sines and cosines, but the >> project I'm working on is using VersorRigid3DTransform as the transform >> type for the registration, so I'd like to use that for the initial >> transform. >> >> >> >> Any help is appreciated, thanks. >> >> -- >> >> AH >> >> >> >> ------------------------------------------------------------ >> ----------------------------------- >> >> *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: From sidharta.gupta93 at gmail.com Fri May 12 11:28:37 2017 From: sidharta.gupta93 at gmail.com (sidharta) Date: Fri, 12 May 2017 08:28:37 -0700 (MST) Subject: [ITK-users] [ITK] Extract slice from ResampleFilter In-Reply-To: References: <1492095684045-38115.post@n7.nabble.com> <1492097632375-38118.post@n7.nabble.com> <1492609238543-38129.post@n7.nabble.com> <1494516049534-38228.post@n7.nabble.com> <1494518400067-38230.post@n7.nabble.com> Message-ID: <1494602917608-38240.post@n7.nabble.com> Hi D?enan, You are right. I fixed it a while back. The problem was infact in the direction vectors. I realized (not a good practice) how ITK deals with coordinate systems. I actually had to do an inverse of the direction matrix and then everything is great. Thank you for your help. Regards Sidharta -- View this message in context: http://itk-users.7.n7.nabble.com/Extract-slice-from-ResampleFilter-tp38074p38240.html Sent from the ITK - Users mailing list archive at Nabble.com. From francois.budin at kitware.com Mon May 15 12:07:52 2017 From: francois.budin at kitware.com (Francois Budin) Date: Mon, 15 May 2017 12:07:52 -0400 Subject: [ITK-users] [ANN] ITK 4.12 Release Candidate 2 is ready for testing! Message-ID: On behalf of the Insight Toolkit community, we are proud to announce that ITK 4.12 release candidate 2 has been tagged and is available for testing! Please take this opportunity to test the new features in the release candidate. For more information on the new features in this release, see our blog entry on the first release candidate . To obtain the source code, use the links: https://github.com/Kitware/ITK/archive/v4.12rc02.zip https://github.com/Kitware/ITK/archive/v4.12rc02.tar.gz Or, to checkout the tag with Git: git clone https://itk.org/ITK.git cd ITK git checkout -q --detach v4.12rc02 Please test the release candidate and share your experiences on the mailing list , issue tracker , and Gerrit Code Review . An Experimental build, which demonstrates how the test suite performs on your local build system, can be submitted to the dashboard [1] with: mkdir ../ITK-build cd ../ITK-build cmake ../ITK ctest -j 4 -M Experimental -T Configure -T Build -T Test -T Submit Visual Studio builds must also add ?-C Release? to the ctest command. Notify the mailing list if there are any unexpected failures. Testing your own applications against the RC is also appreciated. [1] http://open.cdash.org/index.php?project=Insight 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) ----------------------------------------------------- Errors or omissions? Please fix them here: https://docs.google.com/document/d/1HWutEtAQt5uMXA-f0ZP_mvEucpmT6P-yUhlZTAzYVg0/edit -------------- next part -------------- An HTML attachment was scrubbed... URL: From zjinger at hotmail.com Thu May 18 04:19:19 2017 From: zjinger at hotmail.com (Zou Jing) Date: Thu, 18 May 2017 08:19:19 +0000 Subject: [ITK-users] watershed Message-ID: Dear all I want to segment CTA images using watershed algorithm, The result of WatershedSegmentation2.cxx was not ideal. I find that someone use itkMorphologicalWatershedFromMarkersImageFilter, but I cannot find that. Could anyone help me? Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From francois.budin at kitware.com Thu May 18 08:21:41 2017 From: francois.budin at kitware.com (Francois Budin) Date: Thu, 18 May 2017 08:21:41 -0400 Subject: [ITK-users] watershed In-Reply-To: References: Message-ID: Hello Zou Jing, The itkMorphologicalWatershedFromMarkersImageFilter was recently moved from the review module to the watershed module. If you are using a recent version of ITK (4.12rc01, 4.12rc02), the filter you are looking for will be in the watershed module. Otherwise it should be in the review module. Hope this helps, Francois On Thu, May 18, 2017 at 4:19 AM, Zou Jing wrote: > Dear all > I want to segment CTA images using watershed algorithm, The result > of WatershedSegmentation2.cxx was not ideal. I find that someone use > itkMorphologicalWatershedFromMarkersImageFilter, but I cannot find that. > Could anyone help me? > Thanks. > > > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From zjinger at hotmail.com Thu May 18 22:10:10 2017 From: zjinger at hotmail.com (Zou Jing) Date: Fri, 19 May 2017 02:10:10 +0000 Subject: [ITK-users] =?gb2312?b?tPC4tDogIHdhdGVyc2hlZA==?= In-Reply-To: References: , Message-ID: Hi, Francois Thank you very much. The version of my ITK is 4.11.0. I checked the watershed module, but there is no such thing as itkMorphologicalWatershedFromMarkersImageFilter. I just found itkIsolatedWatershedImageFilterTest.cxx, itkTobogganImageFilterTest.cxx and itkWatershedImageFilterTest.cxx in the test folder. ________________________________ ???: Francois Budin ????: 2017?5?18? 20:21:41 ???: Zou Jing ??: insight-users at itk.org ??: Re: [ITK-users] watershed Hello Zou Jing, The itkMorphologicalWatershedFromMarkersImageFilter was recently moved from the review module to the watershed module. If you are using a recent version of ITK (4.12rc01, 4.12rc02), the filter you are looking for will be in the watershed module. Otherwise it should be in the review module. Hope this helps, Francois On Thu, May 18, 2017 at 4:19 AM, Zou Jing > wrote: Dear all I want to segment CTA images using watershed algorithm, The result of WatershedSegmentation2.cxx was not ideal. I find that someone use itkMorphologicalWatershedFromMarkersImageFilter, but I cannot find that. Could anyone help me? Thanks. _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From richard.beare at gmail.com Thu May 18 23:12:30 2017 From: richard.beare at gmail.com (Richard Beare) Date: Fri, 19 May 2017 13:12:30 +1000 Subject: [ITK-users] =?utf-8?b?562U5aSNOiB3YXRlcnNoZWQ=?= In-Reply-To: References: Message-ID: You will need to enable "review" to get morphological watershed in 4.11 On Fri, May 19, 2017 at 12:10 PM, Zou Jing wrote: > Hi, Francois > > Thank you very much. > > The version of my ITK is 4.11.0. I checked the watershed module, but > there is no such thing as itkMorphologicalWatershedFromMarkersImageFilter. > > I just found itkIsolatedWatershedImageFilterTest.cxx, itkTobogganImageFilterTest.cxx > and itkWatershedImageFilterTest.cxx in the test folder. > ------------------------------ > *???:* Francois Budin > *????:* 2017?5?18? 20:21:41 > *???:* Zou Jing > *??:* insight-users at itk.org > *??:* Re: [ITK-users] watershed > > Hello Zou Jing, > > The itkMorphologicalWatershedFromMarkersImageFilter was recently moved > from the review module to the watershed module. If you are using a recent > version of ITK (4.12rc01, 4.12rc02), the filter you are looking for will be > in the watershed module. Otherwise it should be in the review module. > > Hope this helps, > Francois > > On Thu, May 18, 2017 at 4:19 AM, Zou Jing wrote: > >> Dear all >> I want to segment CTA images using watershed algorithm, The result >> of WatershedSegmentation2.cxx was not ideal. I find that someone >> use itkMorphologicalWatershedFromMarkersImageFilter, but I cannot find >> that. >> Could anyone help me? >> Thanks. >> >> >> >> _____________________________________ >> Powered by www.kitware.com >> >> Visit other Kitware open-source projects at >> http://www.kitware.com/opensource/opensource.html >> >> Kitware offers ITK Training Courses, for more information visit: >> http://www.kitware.com/products/protraining.php >> >> Please keep messages on-topic and check the ITK FAQ at: >> http://www.itk.org/Wiki/ITK_FAQ >> >> Follow this link to subscribe/unsubscribe: >> http://public.kitware.com/mailman/listinfo/insight-users >> >> > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From zjinger at hotmail.com Thu May 18 23:27:58 2017 From: zjinger at hotmail.com (Zou Jing) Date: Fri, 19 May 2017 03:27:58 +0000 Subject: [ITK-users] =?gb2312?b?tPC4tDogILTwuLQ6IHdhdGVyc2hlZA==?= In-Reply-To: References: , Message-ID: Thank you. I am sorry that I don't know how to enable "review". I'm a novice. Can you help me?Thanks very much. ________________________________ ???: Richard Beare ????: 2017?5?19? 11:12:30 ???: Zou Jing ??: Francois Budin; insight-users at itk.org ??: Re: [ITK-users] ??: watershed You will need to enable "review" to get morphological watershed in 4.11 On Fri, May 19, 2017 at 12:10 PM, Zou Jing > wrote: Hi, Francois Thank you very much. The version of my ITK is 4.11.0. I checked the watershed module, but there is no such thing as itkMorphologicalWatershedFromMarkersImageFilter. I just found itkIsolatedWatershedImageFilterTest.cxx, itkTobogganImageFilterTest.cxx and itkWatershedImageFilterTest.cxx in the test folder. ________________________________ ???: Francois Budin > ????: 2017?5?18? 20:21:41 ???: Zou Jing ??: insight-users at itk.org ??: Re: [ITK-users] watershed Hello Zou Jing, The itkMorphologicalWatershedFromMarkersImageFilter was recently moved from the review module to the watershed module. If you are using a recent version of ITK (4.12rc01, 4.12rc02), the filter you are looking for will be in the watershed module. Otherwise it should be in the review module. Hope this helps, Francois On Thu, May 18, 2017 at 4:19 AM, Zou Jing > wrote: Dear all I want to segment CTA images using watershed algorithm, The result of WatershedSegmentation2.cxx was not ideal. I find that someone use itkMorphologicalWatershedFromMarkersImageFilter, but I cannot find that. Could anyone help me? Thanks. _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From cr at neuro.ma.uni-heidelberg.de Fri May 19 01:53:48 2017 From: cr at neuro.ma.uni-heidelberg.de (Chr. Rossmanith) Date: Fri, 19 May 2017 07:53:48 +0200 Subject: [ITK-users] =?utf-8?b?562U5aSNOiDnrZTlpI06IHdhdGVyc2hlZA==?= In-Reply-To: References: Message-ID: <9d822304-3273-50ab-da48-9f89b0d24a44@neuro.ma.uni-heidelberg.de> It's an option in cmake: Module_ITKReview, you have to toggle to advanced mode (t in ccmake) to find it. Christina On 19.05.2017 05:27, Zou Jing wrote: > > Thank you. > > I am sorry that I don't know how to enable "review". > > I'm a novice. > > Can you help me?Thanks very much. > > ------------------------------------------------------------------------ > *???:* Richard Beare > *????:* 2017?5?19? 11:12:30 > *???:* Zou Jing > *??:* Francois Budin; insight-users at itk.org > *??:* Re: [ITK-users] ??: watershed > You will need to enable "review" to get morphological watershed in 4.11 > > On Fri, May 19, 2017 at 12:10 PM, Zou Jing > wrote: > > Hi, Francois > > Thank you very much. > > The version of my ITK is 4.11.0. I checked the watershed module, > but there is no such thing as > itkMorphologicalWatershedFromMarkersImageFilter. > > I just found itkIsolatedWatershedImageFilterTest.cxx, > itkTobogganImageFilterTest.cxx and itkWatershedImageFilterTest.cxx > in the test folder. > > ------------------------------------------------------------------------ > *???:* Francois Budin > > *????:* 2017?5?18? 20:21:41 > *???:* Zou Jing > *??:* insight-users at itk.org > *??:* Re: [ITK-users] watershed > Hello Zou Jing, > > The itkMorphologicalWatershedFromMarkersImageFilter was recently > moved from the review module to the watershed module. If you are > using a recent version of ITK (4.12rc01, 4.12rc02), the filter you > are looking for will be in the watershed module. Otherwise it > should be in the review module. > > Hope this helps, > Francois > > On Thu, May 18, 2017 at 4:19 AM, Zou Jing > wrote: > > Dear all > I want to segment CTA images using watershed algorithm, > The result of WatershedSegmentation2.cxx was not ideal. I find > that someone > use itkMorphologicalWatershedFromMarkersImageFilter, but I > cannot find that. > Could anyone help me? > Thanks. > > > > _____________________________________ > 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 > > > > > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From zjinger at hotmail.com Fri May 19 03:14:36 2017 From: zjinger at hotmail.com (Zou Jing) Date: Fri, 19 May 2017 07:14:36 +0000 Subject: [ITK-users] =?gb2312?b?tPC4tDogILTwuLQ6ILTwuLQ6IHdhdGVyc2hlZA==?= In-Reply-To: <9d822304-3273-50ab-da48-9f89b0d24a44@neuro.ma.uni-heidelberg.de> References: , <9d822304-3273-50ab-da48-9f89b0d24a44@neuro.ma.uni-heidelberg.de> Message-ID: Thank you,I've enabled that in CMake. But I still cannot find itkMorphologicalWatershedFromMarkersImageFilter ________________________________ ???: Insight-users ?? Chr. Rossmanith ????: 2017?5?19? 13:53:48 ???: insight-users at itk.org ??: Re: [ITK-users] ??: ??: watershed It's an option in cmake: Module_ITKReview, you have to toggle to advanced mode (t in ccmake) to find it. Christina On 19.05.2017 05:27, Zou Jing wrote: Thank you. I am sorry that I don't know how to enable "review". I'm a novice. Can you help me?Thanks very much. ________________________________ ???: Richard Beare ????: 2017?5?19? 11:12:30 ???: Zou Jing ??: Francois Budin; insight-users at itk.org ??: Re: [ITK-users] ??: watershed You will need to enable "review" to get morphological watershed in 4.11 On Fri, May 19, 2017 at 12:10 PM, Zou Jing > wrote: Hi, Francois Thank you very much. The version of my ITK is 4.11.0. I checked the watershed module, but there is no such thing as itkMorphologicalWatershedFromMarkersImageFilter. I just found itkIsolatedWatershedImageFilterTest.cxx, itkTobogganImageFilterTest.cxx and itkWatershedImageFilterTest.cxx in the test folder. ________________________________ ???: Francois Budin > ????: 2017?5?18? 20:21:41 ???: Zou Jing ??: insight-users at itk.org ??: Re: [ITK-users] watershed Hello Zou Jing, The itkMorphologicalWatershedFromMarkersImageFilter was recently moved from the review module to the watershed module. If you are using a recent version of ITK (4.12rc01, 4.12rc02), the filter you are looking for will be in the watershed module. Otherwise it should be in the review module. Hope this helps, Francois On Thu, May 18, 2017 at 4:19 AM, Zou Jing > wrote: Dear all I want to segment CTA images using watershed algorithm, The result of WatershedSegmentation2.cxx was not ideal. I find that someone use itkMorphologicalWatershedFromMarkersImageFilter, but I cannot find that. Could anyone help me? Thanks. _____________________________________ 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 _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From francois.budin at kitware.com Fri May 19 08:46:53 2017 From: francois.budin at kitware.com (Francois Budin) Date: Fri, 19 May 2017 08:46:53 -0400 Subject: [ITK-users] =?utf-8?b?562U5aSNOiDnrZTlpI06IOetlOWkjTogd2F0ZXJz?= =?utf-8?q?hed?= In-Reply-To: References: <9d822304-3273-50ab-da48-9f89b0d24a44@neuro.ma.uni-heidelberg.de> Message-ID: Hello Zou Jing, What do you mean by the fact that you cannot find the filter? Do you have compilation errors? Or you cannot find the implementation of the filter in ITK? If it is the latter, you can find the filter is here [1] Let me know if this helps, Francois [1] https://github.com/InsightSoftwareConsortium/ITK/blob/v4.11.0/Modules/Nonunit/Review/include/itkMorphologicalWatershedFromMarkersImageFilter.hxx On Fri, May 19, 2017 at 3:14 AM, Zou Jing wrote: > Thank you,I've enabled that in CMake. > > But I still cannot find itkMorphologicalWatershedFromMarkersImageFilter > ------------------------------ > *???:* Insight-users ?? Chr. Rossmanith < > cr at neuro.ma.uni-heidelberg.de> > *????:* 2017?5?19? 13:53:48 > *???:* insight-users at itk.org > *??:* Re: [ITK-users] ??: ??: watershed > > It's an option in cmake: Module_ITKReview, you have to toggle to advanced > mode (t in ccmake) to find it. > > Christina > > On 19.05.2017 05:27, Zou Jing wrote: > > Thank you. > > I am sorry that I don't know how to enable "review". > > I'm a novice. > > Can you help me?Thanks very much. > ------------------------------ > *???:* Richard Beare > *????:* 2017?5?19? 11:12:30 > *???:* Zou Jing > *??:* Francois Budin; insight-users at itk.org > *??:* Re: [ITK-users] ??: watershed > > You will need to enable "review" to get morphological watershed in 4.11 > > On Fri, May 19, 2017 at 12:10 PM, Zou Jing wrote: > >> Hi, Francois >> >> Thank you very much. >> >> The version of my ITK is 4.11.0. I checked the watershed module, but >> there is no such thing as itkMorphologicalWatershedFr >> omMarkersImageFilter. >> >> I just found itkIsolatedWatershedImageFilterTest.cxx, itkTobogganImageFilterTest.cxx >> and itkWatershedImageFilterTest.cxx in the test folder. >> ------------------------------ >> *???:* Francois Budin >> *????:* 2017?5?18? 20:21:41 >> *???:* Zou Jing >> *??:* insight-users at itk.org >> *??:* Re: [ITK-users] watershed >> >> Hello Zou Jing, >> >> The itkMorphologicalWatershedFromMarkersImageFilter was recently moved >> from the review module to the watershed module. If you are using a recent >> version of ITK (4.12rc01, 4.12rc02), the filter you are looking for will be >> in the watershed module. Otherwise it should be in the review module. >> >> Hope this helps, >> Francois >> >> On Thu, May 18, 2017 at 4:19 AM, Zou Jing wrote: >> >>> Dear all >>> I want to segment CTA images using watershed algorithm, The result >>> of WatershedSegmentation2.cxx was not ideal. I find that someone >>> use itkMorphologicalWatershedFromMarkersImageFilter, but I cannot find >>> that. >>> Could anyone help me? >>> Thanks. >>> >>> >>> >>> _____________________________________ >>> 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 >> >> > > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects athttp://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit:http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at:http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe:http://public.kitware.com/mailman/listinfo/insight-users > > > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From alb.net at gmail.com Fri May 19 09:19:17 2017 From: alb.net at gmail.com (Dorian P.) Date: Fri, 19 May 2017 09:19:17 -0400 Subject: [ITK-users] Cannot save files ending '.img.nii.gz' Message-ID: I sent my first message a couple of days ago but I'm not sure it reached the ITK community. I use ANTs(R) which relies on ITK. When I try to save images ending in '.img.nii.gz' I end up getting files with a different extension '.hdr.gz'. These files are then unusuable, they cannot open anymore with ITK software (ANTsR, ITKsnap). Can you have a look if this is a bug, so maybe this can be fixed in the future? Dorian -------------- next part -------------- An HTML attachment was scrubbed... URL: From zjinger at hotmail.com Fri May 19 23:37:00 2017 From: zjinger at hotmail.com (Zou Jing) Date: Sat, 20 May 2017 03:37:00 +0000 Subject: [ITK-users] =?gb2312?b?tPC4tDogILTwuLQ6ILTwuLQ6ILTwuLQ6IHdhdGVy?= =?gb2312?b?c2hlZA==?= In-Reply-To: References: <9d822304-3273-50ab-da48-9f89b0d24a44@neuro.ma.uni-heidelberg.de> , Message-ID: Thank you very much. I've found the filter, but I have trouble in implementing it. Have you ever tested that. My error is this: Debug Error! Program: ...Debug\itkMorphologicalWatershedFromMarkersImageFilterTest.exe R6010 -abort() has been called (Please Retry to debug the application) ________________________________ ???: Francois Budin ????: 2017?5?19? 20:46:53 ???: Zou Jing ??: Chr. Rossmanith; insight-users at itk.org ??: Re: [ITK-users] ??: ??: ??: watershed Hello Zou Jing, What do you mean by the fact that you cannot find the filter? Do you have compilation errors? Or you cannot find the implementation of the filter in ITK? If it is the latter, you can find the filter is here [1] Let me know if this helps, Francois [1] https://github.com/InsightSoftwareConsortium/ITK/blob/v4.11.0/Modules/Nonunit/Review/include/itkMorphologicalWatershedFromMarkersImageFilter.hxx [https://avatars0.githubusercontent.com/u/319479?v=3&s=400] InsightSoftwareConsortium/ITK github.com ITK - Insight Segmentation and Registration Toolkit -- Mirror On Fri, May 19, 2017 at 3:14 AM, Zou Jing > wrote: Thank you,I've enabled that in CMake. But I still cannot find itkMorphologicalWatershedFromMarkersImageFilter ________________________________ ???: Insight-users > ?? Chr. Rossmanith > ????: 2017?5?19? 13:53:48 ???: insight-users at itk.org ??: Re: [ITK-users] ??: ??: watershed It's an option in cmake: Module_ITKReview, you have to toggle to advanced mode (t in ccmake) to find it. Christina On 19.05.2017 05:27, Zou Jing wrote: Thank you. I am sorry that I don't know how to enable "review". I'm a novice. Can you help me?Thanks very much. ________________________________ ???: Richard Beare ????: 2017?5?19? 11:12:30 ???: Zou Jing ??: Francois Budin; insight-users at itk.org ??: Re: [ITK-users] ??: watershed You will need to enable "review" to get morphological watershed in 4.11 On Fri, May 19, 2017 at 12:10 PM, Zou Jing > wrote: Hi, Francois Thank you very much. The version of my ITK is 4.11.0. I checked the watershed module, but there is no such thing as itkMorphologicalWatershedFromMarkersImageFilter. I just found itkIsolatedWatershedImageFilterTest.cxx, itkTobogganImageFilterTest.cxx and itkWatershedImageFilterTest.cxx in the test folder. ________________________________ ???: Francois Budin > ????: 2017?5?18? 20:21:41 ???: Zou Jing ??: insight-users at itk.org ??: Re: [ITK-users] watershed Hello Zou Jing, The itkMorphologicalWatershedFromMarkersImageFilter was recently moved from the review module to the watershed module. If you are using a recent version of ITK (4.12rc01, 4.12rc02), the filter you are looking for will be in the watershed module. Otherwise it should be in the review module. Hope this helps, Francois On Thu, May 18, 2017 at 4:19 AM, Zou Jing > wrote: Dear all I want to segment CTA images using watershed algorithm, The result of WatershedSegmentation2.cxx was not ideal. I find that someone use itkMorphologicalWatershedFromMarkersImageFilter, but I cannot find that. Could anyone help me? Thanks. _____________________________________ 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 _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From zjinger at hotmail.com Sat May 20 02:55:28 2017 From: zjinger at hotmail.com (Zou Jing) Date: Sat, 20 May 2017 06:55:28 +0000 Subject: [ITK-users] =?gb2312?b?tPC4tDogILTwuLQ6ILTwuLQ6ILTwuLQ6IHdhdGVy?= =?gb2312?b?c2hlZA==?= In-Reply-To: References: <9d822304-3273-50ab-da48-9f89b0d24a44@neuro.ma.uni-heidelberg.de> , , Message-ID: Hello, Now I can run the program, but the result image is all write. ________________________________ ???: Zou Jing ????: 2017?5?20? 11:37:00 ???: Francois Budin ??: Chr. Rossmanith; insight-users at itk.org ??: ??: [ITK-users] ??: ??: ??: watershed Thank you very much. I've found the filter, but I have trouble in implementing it. Have you ever tested that. My error is this: Debug Error! Program: ...Debug\itkMorphologicalWatershedFromMarkersImageFilterTest.exe R6010 -abort() has been called (Please Retry to debug the application) ________________________________ ???: Francois Budin ????: 2017?5?19? 20:46:53 ???: Zou Jing ??: Chr. Rossmanith; insight-users at itk.org ??: Re: [ITK-users] ??: ??: ??: watershed Hello Zou Jing, What do you mean by the fact that you cannot find the filter? Do you have compilation errors? Or you cannot find the implementation of the filter in ITK? If it is the latter, you can find the filter is here [1] Let me know if this helps, Francois [1] https://github.com/InsightSoftwareConsortium/ITK/blob/v4.11.0/Modules/Nonunit/Review/include/itkMorphologicalWatershedFromMarkersImageFilter.hxx [https://avatars0.githubusercontent.com/u/319479?v=3&s=400] InsightSoftwareConsortium/ITK github.com ITK - Insight Segmentation and Registration Toolkit -- Mirror On Fri, May 19, 2017 at 3:14 AM, Zou Jing > wrote: Thank you,I've enabled that in CMake. But I still cannot find itkMorphologicalWatershedFromMarkersImageFilter ________________________________ ???: Insight-users > ?? Chr. Rossmanith > ????: 2017?5?19? 13:53:48 ???: insight-users at itk.org ??: Re: [ITK-users] ??: ??: watershed It's an option in cmake: Module_ITKReview, you have to toggle to advanced mode (t in ccmake) to find it. Christina On 19.05.2017 05:27, Zou Jing wrote: Thank you. I am sorry that I don't know how to enable "review". I'm a novice. Can you help me?Thanks very much. ________________________________ ???: Richard Beare ????: 2017?5?19? 11:12:30 ???: Zou Jing ??: Francois Budin; insight-users at itk.org ??: Re: [ITK-users] ??: watershed You will need to enable "review" to get morphological watershed in 4.11 On Fri, May 19, 2017 at 12:10 PM, Zou Jing > wrote: Hi, Francois Thank you very much. The version of my ITK is 4.11.0. I checked the watershed module, but there is no such thing as itkMorphologicalWatershedFromMarkersImageFilter. I just found itkIsolatedWatershedImageFilterTest.cxx, itkTobogganImageFilterTest.cxx and itkWatershedImageFilterTest.cxx in the test folder. ________________________________ ???: Francois Budin > ????: 2017?5?18? 20:21:41 ???: Zou Jing ??: insight-users at itk.org ??: Re: [ITK-users] watershed Hello Zou Jing, The itkMorphologicalWatershedFromMarkersImageFilter was recently moved from the review module to the watershed module. If you are using a recent version of ITK (4.12rc01, 4.12rc02), the filter you are looking for will be in the watershed module. Otherwise it should be in the review module. Hope this helps, Francois On Thu, May 18, 2017 at 4:19 AM, Zou Jing > wrote: Dear all I want to segment CTA images using watershed algorithm, The result of WatershedSegmentation2.cxx was not ideal. I find that someone use itkMorphologicalWatershedFromMarkersImageFilter, but I cannot find that. Could anyone help me? Thanks. _____________________________________ 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 _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From wangkaiwen998 at gmail.com Sat May 20 15:04:58 2017 From: wangkaiwen998 at gmail.com (kaiwenw) Date: Sat, 20 May 2017 12:04:58 -0700 (MST) Subject: [ITK-users] Measure of geodesic (metric) distances for shape interpolation with deformable registration. Message-ID: <1495307098353-7589962.post@n2.nabble.com> Dear ITK Community, I was able to code up deformable registration with BSpline. Now, I'm looking for a measure of metric distances of the deformation. This will allow me to deform the moving shape along the geodesic (to the fixed shape) and stop whenever I wish (allowing me to interpolate between shapes). For example, the result I'm looking for is shown in the image by Rohde et al., 2007: They used LDDMM, but ITK does not have LDDMM (which is why I'm using BSpline for non-rigid registration). If this shape interpolation is not available with BSpline registration, is it possible with other ITK registration methods? Thanks all! -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/Measure-of-geodesic-metric-distances-for-shape-interpolation-with-deformable-registration-tp7589962.html Sent from the ITK Insight Users mailing list archive at Nabble.com. From matt.mccormick at kitware.com Sat May 20 16:22:01 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Sat, 20 May 2017 16:22:01 -0400 Subject: [ITK-users] Measure of geodesic (metric) distances for shape interpolation with deformable registration. In-Reply-To: <1495307098353-7589962.post@n2.nabble.com> References: <1495307098353-7589962.post@n2.nabble.com> Message-ID: Hi there, ITKv4 has LDDMM-like velocity field registration. For more information, see [1]. HTH, Matt [1] http://journal.frontiersin.org/article/10.3389/fninf.2014.00044/full On Sat, May 20, 2017 at 3:04 PM, kaiwenw wrote: > Dear ITK Community, > > I was able to code up deformable registration with BSpline. > Now, I'm looking for a measure of metric distances of the deformation. This > will allow me to deform the moving shape along the geodesic (to the fixed > shape) and stop whenever I wish (allowing me to interpolate between shapes). > > For example, the result I'm looking for is shown in the image by Rohde et > al., 2007: > > > They used LDDMM, but ITK does not have LDDMM (which is why I'm using BSpline > for non-rigid registration). If this shape interpolation is not available > with BSpline registration, is it possible with other ITK registration > methods? > > Thanks all! > > > > > -- > View this message in context: http://itk-insight-users.2283740.n2.nabble.com/Measure-of-geodesic-metric-distances-for-shape-interpolation-with-deformable-registration-tp7589962.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 wangkaiwen998 at gmail.com Sat May 20 22:53:00 2017 From: wangkaiwen998 at gmail.com (kaiwenw) Date: Sat, 20 May 2017 19:53:00 -0700 (MST) Subject: [ITK-users] Measure of geodesic (metric) distances for shape interpolation with deformable registration. In-Reply-To: References: <1495307098353-7589962.post@n2.nabble.com> Message-ID: <1495335180585-7589964.post@n2.nabble.com> Dear Matt, Thanks for the quick response! I have seen the article before (and now I read through it again), but I could not find a function that calculates such geodesic distances between shapes or a function that morphs the moving shape to a specified distance. Though, after this read, I saw that there is a itkTimeVaryingBSplineVelocityFieldImageRegistrationTest.cxx file. So I suppose there exists such a technique for BSpline registration? Could you kindly point me into the right direction? I am kind of new to the ITK framework. Also, just for additional information: I am using the Python wrapped SimpleITK. Thanks! Kevin -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/Measure-of-geodesic-metric-distances-for-shape-interpolation-with-deformable-registration-tp7589962p7589964.html Sent from the ITK Insight Users mailing list archive at Nabble.com. From francois.budin at kitware.com Sun May 21 20:03:49 2017 From: francois.budin at kitware.com (Francois Budin) Date: Sun, 21 May 2017 20:03:49 -0400 Subject: [ITK-users] =?utf-8?b?562U5aSNOiAg562U5aSNOiDnrZTlpI06IOetlA==?= =?utf-8?b?5aSNOiB3YXRlcnNoZWQ=?= In-Reply-To: References: <9d822304-3273-50ab-da48-9f89b0d24a44@neuro.ma.uni-heidelberg.de> Message-ID: Hello, I am glad you were able to run the program. It can be difficult to find the correct parameters to obtain the desired results. You can read the Insight Journal publication associated to this filter [1] to understand which parameters are available and how to integrate this filter in a pipeline. You can also look at the ITK tests for that filter to see the values that are used in that case [2][3]. Hope this helps, Francois [1] http://www.insight-journal.org/browse/publication/92 [2] https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Segmentation/Watersheds/test/CMakeLists.txt#L31-L55 [3] https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Segmentation/Watersheds/test/itkMorphologicalWatershedFromMarkersImageFilterTest.cxx On Sat, May 20, 2017 at 2:55 AM, Zou Jing wrote: > Hello, > > Now I can run the program, but the result image is all write. > ------------------------------ > *???:* Zou Jing > *????:* 2017?5?20? 11:37:00 > *???:* Francois Budin > *??:* Chr. Rossmanith; insight-users at itk.org > *??:* ??: [ITK-users] ??: ??: ??: watershed > > > Thank you very much. > > I've found the filter, but I have trouble in implementing it. > > Have you ever tested that. > > My error is this: > > Debug Error! > > Program: > > ...Debug\itkMorphologicalWatershedFromMarkersImageFilterTest.exe > > R6010 > -abort() has been called > > (Please Retry to debug the application) > > > ------------------------------ > *???:* Francois Budin > *????:* 2017?5?19? 20:46:53 > *???:* Zou Jing > *??:* Chr. Rossmanith; insight-users at itk.org > *??:* Re: [ITK-users] ??: ??: ??: watershed > > Hello Zou Jing, > > What do you mean by the fact that you cannot find the filter? Do you have > compilation errors? Or you cannot find the implementation of the filter in > ITK? If it is the latter, you can find the filter is here [1] > Let me know if this helps, > > Francois > [1] https://github.com/InsightSoftwareConsortium/ITK/ > blob/v4.11.0/Modules/Nonunit/Review/include/itkMorphologicalWatershedFromM > arkersImageFilter.hxx > > > InsightSoftwareConsortium/ITK > > github.com > ITK - Insight Segmentation and Registration Toolkit -- Mirror > > > > On Fri, May 19, 2017 at 3:14 AM, Zou Jing wrote: > >> Thank you,I've enabled that in CMake. >> >> But I still cannot find itkMorphologicalWatershedFromMarkersImageFilter >> ------------------------------ >> *???:* Insight-users ?? Chr. Rossmanith < >> cr at neuro.ma.uni-heidelberg.de> >> *????:* 2017?5?19? 13:53:48 >> *???:* insight-users at itk.org >> *??:* Re: [ITK-users] ??: ??: watershed >> >> It's an option in cmake: Module_ITKReview, you have to toggle to advanced >> mode (t in ccmake) to find it. >> >> Christina >> >> On 19.05.2017 05:27, Zou Jing wrote: >> >> Thank you. >> >> I am sorry that I don't know how to enable "review". >> >> I'm a novice. >> >> Can you help me?Thanks very much. >> ------------------------------ >> *???:* Richard Beare >> *????:* 2017?5?19? 11:12:30 >> *???:* Zou Jing >> *??:* Francois Budin; insight-users at itk.org >> *??:* Re: [ITK-users] ??: watershed >> >> You will need to enable "review" to get morphological watershed in 4.11 >> >> On Fri, May 19, 2017 at 12:10 PM, Zou Jing wrote: >> >>> Hi, Francois >>> >>> Thank you very much. >>> >>> The version of my ITK is 4.11.0. I checked the watershed module, but >>> there is no such thing as itkMorphologicalWatershedFr >>> omMarkersImageFilter. >>> >>> I just found itkIsolatedWatershedImageFilterTest.cxx, itkTobogganImageFilterTest.cxx >>> and itkWatershedImageFilterTest.cxx in the test folder. >>> ------------------------------ >>> *???:* Francois Budin >>> *????:* 2017?5?18? 20:21:41 >>> *???:* Zou Jing >>> *??:* insight-users at itk.org >>> *??:* Re: [ITK-users] watershed >>> >>> Hello Zou Jing, >>> >>> The itkMorphologicalWatershedFromMarkersImageFilter was recently moved >>> from the review module to the watershed module. If you are using a recent >>> version of ITK (4.12rc01, 4.12rc02), the filter you are looking for will be >>> in the watershed module. Otherwise it should be in the review module. >>> >>> Hope this helps, >>> Francois >>> >>> On Thu, May 18, 2017 at 4:19 AM, Zou Jing wrote: >>> >>>> Dear all >>>> I want to segment CTA images using watershed algorithm, The result >>>> of WatershedSegmentation2.cxx was not ideal. I find that someone >>>> use itkMorphologicalWatershedFromMarkersImageFilter, but I cannot find >>>> that. >>>> Could anyone help me? >>>> Thanks. >>>> >>>> >>>> >>>> _____________________________________ >>>> 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 >>> >>> >> >> >> _____________________________________ >> Powered by www.kitware.com >> >> Visit other Kitware open-source projects athttp://www.kitware.com/opensource/opensource.html >> >> Kitware offers ITK Training Courses, for more information visit:http://www.kitware.com/products/protraining.php >> >> Please keep messages on-topic and check the ITK FAQ at:http://www.itk.org/Wiki/ITK_FAQ >> >> Follow this link to subscribe/unsubscribe:http://public.kitware.com/mailman/listinfo/insight-users >> >> >> >> _____________________________________ >> Powered by www.kitware.com >> >> Visit other Kitware open-source projects at >> http://www.kitware.com/opensource/opensource.html >> >> Kitware offers ITK Training Courses, for more information visit: >> http://www.kitware.com/products/protraining.php >> >> Please keep messages on-topic and check the ITK FAQ at: >> http://www.itk.org/Wiki/ITK_FAQ >> >> Follow this link to subscribe/unsubscribe: >> http://public.kitware.com/mailman/listinfo/insight-users >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From zjinger at hotmail.com Sun May 21 20:39:35 2017 From: zjinger at hotmail.com (Zou Jing) Date: Mon, 22 May 2017 00:39:35 +0000 Subject: [ITK-users] =?gb2312?b?tPC4tDogtPC4tDogILTwuLQ6ILTwuLQ6ILTwuLQ6?= =?gb2312?b?IHdhdGVyc2hlZA==?= In-Reply-To: References: <9d822304-3273-50ab-da48-9f89b0d24a44@neuro.ma.uni-heidelberg.de> , Message-ID: Thank you so much for your help. I will read that paper and try again. ________________________________ ???: Francois Budin ????: 2017?5?22? 8:03:49 ???: Zou Jing ??: Chr. Rossmanith; insight-users at itk.org ??: Re: ??: [ITK-users] ??: ??: ??: watershed Hello, I am glad you were able to run the program. It can be difficult to find the correct parameters to obtain the desired results. You can read the Insight Journal publication associated to this filter [1] to understand which parameters are available and how to integrate this filter in a pipeline. You can also look at the ITK tests for that filter to see the values that are used in that case [2][3]. Hope this helps, Francois [1] http://www.insight-journal.org/browse/publication/92 [2] https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Segmentation/Watersheds/test/CMakeLists.txt#L31-L55 [3] https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Segmentation/Watersheds/test/itkMorphologicalWatershedFromMarkersImageFilterTest.cxx On Sat, May 20, 2017 at 2:55 AM, Zou Jing > wrote: Hello, Now I can run the program, but the result image is all write. ________________________________ ???: Zou Jing ????: 2017?5?20? 11:37:00 ???: Francois Budin ??: Chr. Rossmanith; insight-users at itk.org ??: ??: [ITK-users] ??: ??: ??: watershed Thank you very much. I've found the filter, but I have trouble in implementing it. Have you ever tested that. My error is this: Debug Error! Program: ...Debug\itkMorphologicalWatershedFromMarkersImageFilterTest.exe R6010 -abort() has been called (Please Retry to debug the application) ________________________________ ???: Francois Budin > ????: 2017?5?19? 20:46:53 ???: Zou Jing ??: Chr. Rossmanith; insight-users at itk.org ??: Re: [ITK-users] ??: ??: ??: watershed Hello Zou Jing, What do you mean by the fact that you cannot find the filter? Do you have compilation errors? Or you cannot find the implementation of the filter in ITK? If it is the latter, you can find the filter is here [1] Let me know if this helps, Francois [1] https://github.com/InsightSoftwareConsortium/ITK/blob/v4.11.0/Modules/Nonunit/Review/include/itkMorphologicalWatershedFromMarkersImageFilter.hxx [https://avatars0.githubusercontent.com/u/319479?v=3&s=400] InsightSoftwareConsortium/ITK github.com ITK - Insight Segmentation and Registration Toolkit -- Mirror On Fri, May 19, 2017 at 3:14 AM, Zou Jing > wrote: Thank you,I've enabled that in CMake. But I still cannot find itkMorphologicalWatershedFromMarkersImageFilter ________________________________ ???: Insight-users > ?? Chr. Rossmanith > ????: 2017?5?19? 13:53:48 ???: insight-users at itk.org ??: Re: [ITK-users] ??: ??: watershed It's an option in cmake: Module_ITKReview, you have to toggle to advanced mode (t in ccmake) to find it. Christina On 19.05.2017 05:27, Zou Jing wrote: Thank you. I am sorry that I don't know how to enable "review". I'm a novice. Can you help me?Thanks very much. ________________________________ ???: Richard Beare ????: 2017?5?19? 11:12:30 ???: Zou Jing ??: Francois Budin; insight-users at itk.org ??: Re: [ITK-users] ??: watershed You will need to enable "review" to get morphological watershed in 4.11 On Fri, May 19, 2017 at 12:10 PM, Zou Jing > wrote: Hi, Francois Thank you very much. The version of my ITK is 4.11.0. I checked the watershed module, but there is no such thing as itkMorphologicalWatershedFromMarkersImageFilter. I just found itkIsolatedWatershedImageFilterTest.cxx, itkTobogganImageFilterTest.cxx and itkWatershedImageFilterTest.cxx in the test folder. ________________________________ ???: Francois Budin > ????: 2017?5?18? 20:21:41 ???: Zou Jing ??: insight-users at itk.org ??: Re: [ITK-users] watershed Hello Zou Jing, The itkMorphologicalWatershedFromMarkersImageFilter was recently moved from the review module to the watershed module. If you are using a recent version of ITK (4.12rc01, 4.12rc02), the filter you are looking for will be in the watershed module. Otherwise it should be in the review module. Hope this helps, Francois On Thu, May 18, 2017 at 4:19 AM, Zou Jing > wrote: Dear all I want to segment CTA images using watershed algorithm, The result of WatershedSegmentation2.cxx was not ideal. I find that someone use itkMorphologicalWatershedFromMarkersImageFilter, but I cannot find that. Could anyone help me? Thanks. _____________________________________ 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 _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From jonasteuwen at gmail.com Mon May 22 05:59:01 2017 From: jonasteuwen at gmail.com (Jonas Teuwen) Date: Mon, 22 May 2017 11:59:01 +0200 Subject: [ITK-users] CropImageFilter, multithreading Message-ID: Dear all, Currently I have SimpleITK code to extract patches from a 3D medical image to train a neural network with. I do this with CropImageFilter and check if they are on the edge or not, and pad if necessary. Currently this is done offline, so speed is not really an issue, however, I would like to do this online now, so load the image and mask, and return the patches. If I want to extract many small patches, about 1000 out of a large image (~3000x3000x50 or so) is there any reason why I would not use OpenMP instead of ITK's possibilities? I do not have a good understanding of the multithreading capabilities yet, so any pointers would be great. Best, Jonas Teuwen -------------- next part -------------- An HTML attachment was scrubbed... URL: From blowekamp at mail.nih.gov Mon May 22 10:46:40 2017 From: blowekamp at mail.nih.gov (Lowekamp, Bradley (NIH/NLM/LHC) [C]) Date: Mon, 22 May 2017 14:46:40 +0000 Subject: [ITK-users] CropImageFilter, multithreading In-Reply-To: References: Message-ID: <9248B622-2290-44FA-BAE6-89377AB1FEF7@mail.nih.gov> Hello Jonas, So ITK ( and therefore SimpleITK ), by default multi-thread each filter by default. This enables efficient processing of larger images. However, for your task you can run a large number of filters concurrently. Fortunately, SimpleITK does support concurrent execution of ITK filters with light weight python Threads! This is an uncommon feature for Python libraries and is a distinguishing feature of SimpleITK. I have been planning on writing an example or notebook on this. Here is an efficient and compact code to accomplish your task as I understand it: import SimpleITK as sitk from multiprocessing.pool import ThreadPool p = ThreadPool() # https://github.com/blowekamp/itkOBBLabelMap/tree/master/test/data img = sitk.ReadImage(?~/Downloads/jelly_beans.png") seg = sitk.ReadImage(?~/Downloads/jelly_beans_seg.png?) shapeStats = sitk.LabelShapeStatisticsImageFilter() shapeStats.Execute(seg) def extract_bb(img, shape_stats_filter, label): [x,y,xsize,ysize]=shape_stats_filter.GetBoundingBox(label) return sitk.RegionOfInterest(img,size=[xsize,ysize],index=[x,y]) bbimg_list = p.map(lambda label: extract_bb(img, shapeStats, label), shapeStats.GetLabels()) This uses advance concepts of multi-threading, closures, mapping, and thread pools. I think it is the integration of SimpleITK any Python at its bests! One tweak which could be made to this code is to create a RegionOfInterestImageFilter object, and explicitly set it?s number of threads to 1, so that it is not multi-threaded. A related not is the recently Oriented Bounding Box computation has been added to ITK?s LabelShape objects and filters, this is starting to get propagated into SimpleITK now. This can be used for a similar purpose but with a resample image filter to change the orientation of the separate object. Enjoy! Brad On May 22, 2017, at 5:59 AM, Jonas Teuwen > wrote: Dear all, Currently I have SimpleITK code to extract patches from a 3D medical image to train a neural network with. I do this with CropImageFilter and check if they are on the edge or not, and pad if necessary. Currently this is done offline, so speed is not really an issue, however, I would like to do this online now, so load the image and mask, and return the patches. If I want to extract many small patches, about 1000 out of a large image (~3000x3000x50 or so) is there any reason why I would not use OpenMP instead of ITK's possibilities? I do not have a good understanding of the multithreading capabilities yet, so any pointers would be great. Best, Jonas Teuwen _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From jonasteuwen at gmail.com Mon May 22 11:05:56 2017 From: jonasteuwen at gmail.com (Jonas Teuwen) Date: Mon, 22 May 2017 17:05:56 +0200 Subject: [ITK-users] CropImageFilter, multithreading In-Reply-To: <9248B622-2290-44FA-BAE6-89377AB1FEF7@mail.nih.gov> References: <9248B622-2290-44FA-BAE6-89377AB1FEF7@mail.nih.gov> Message-ID: Hello Brad, That is a very nice example indeed. I will try it and see if that is sufficient for my purposes. As far as I understood the python multithreading, spawning new threads can create quite a bit over overhead compared to say, OpenMP. If I wanted to translate your example to ITK/C++ would a direct translation be the most sensible thing to do, or does ITK have smarter methods for that? Jonas On May 22, 2017 16:46, "Lowekamp, Bradley (NIH/NLM/LHC) [C]" < blowekamp at mail.nih.gov> wrote: Hello Jonas, So ITK ( and therefore SimpleITK ), by default multi-thread each filter by default. This enables efficient processing of larger images. However, for your task you can run a large number of filters concurrently. Fortunately, SimpleITK does support concurrent execution of ITK filters with light weight python Threads! This is an uncommon feature for Python libraries and is a distinguishing feature of SimpleITK. I have been planning on writing an example or notebook on this. Here is an efficient and compact code to accomplish your task as I understand it: import SimpleITK as sitk from multiprocessing.pool import ThreadPool p = ThreadPool() # https://github.com/blowekamp/itkOBBLabelMap/tree/master/test/data img = sitk.ReadImage(?~/Downloads/jelly_beans.png") seg = sitk.ReadImage(?~/Downloads/jelly_beans_seg.png?) shapeStats = sitk.LabelShapeStatisticsImageFilter() shapeStats.Execute(seg) def extract_bb(img, shape_stats_filter, label): [x,y,xsize,ysize]=shape_stats_filter.GetBoundingBox(label) return sitk.RegionOfInterest(img,size=[xsize,ysize],index=[x,y]) bbimg_list = p.map(lambda label: extract_bb(img, shapeStats, label), shapeStats.GetLabels()) This uses advance concepts of multi-threading, closures, mapping, and thread pools. I think it is the integration of SimpleITK any Python at its bests! One tweak which could be made to this code is to create a RegionOfInterestImageFilter object, and explicitly set it?s number of threads to 1, so that it is not multi-threaded. A related not is the recently Oriented Bounding Box computation has been added to ITK?s LabelShape objects and filters, this is starting to get propagated into SimpleITK now. This can be used for a similar purpose but with a resample image filter to change the orientation of the separate object. Enjoy! Brad On May 22, 2017, at 5:59 AM, Jonas Teuwen wrote: Dear all, Currently I have SimpleITK code to extract patches from a 3D medical image to train a neural network with. I do this with CropImageFilter and check if they are on the edge or not, and pad if necessary. Currently this is done offline, so speed is not really an issue, however, I would like to do this online now, so load the image and mask, and return the patches. If I want to extract many small patches, about 1000 out of a large image (~3000x3000x50 or so) is there any reason why I would not use OpenMP instead of ITK's possibilities? I do not have a good understanding of the multithreading capabilities yet, so any pointers would be great. Best, Jonas Teuwen _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From blowekamp at mail.nih.gov Mon May 22 11:40:37 2017 From: blowekamp at mail.nih.gov (Lowekamp, Bradley (NIH/NLM/LHC) [C]) Date: Mon, 22 May 2017 15:40:37 +0000 Subject: [ITK-users] CropImageFilter, multithreading In-Reply-To: References: <9248B622-2290-44FA-BAE6-89377AB1FEF7@mail.nih.gov> Message-ID: Hello, The below code should be efficient if most of the time is spent in the ITK C++ filters. If most of the time is spent in Python code, or Python libraries which don?t unlock the GIL it may not see a benefit. There are many type of multi-threading in Python, some spawn expensive full processes and duplicate data, like the multiprocessing module. The approach here uses ( and reuses ) light weight threads which share memory, and take advantage of SimpleITK unlocking of the GIL to allow concurrent threads running multiple ITK filters. As I said before this is an uncommon feature in Python libraries, if you did the same operation with numpy, or scikit-image it would not scale at all. In the link in the comment in the sample code below you and can find an ITK module I worked on which was implement these algorithms as ITK filters, and examples which do about the same thing. These methods are mostly composing existing filters in ITK. Composing filters into complex operation and performing parallel computing on small images are areas that I find SimpleITK excels in. Brad On May 22, 2017, at 11:05 AM, Jonas Teuwen > wrote: Hello Brad, That is a very nice example indeed. I will try it and see if that is sufficient for my purposes. As far as I understood the python multithreading, spawning new threads can create quite a bit over overhead compared to say, OpenMP. If I wanted to translate your example to ITK/C++ would a direct translation be the most sensible thing to do, or does ITK have smarter methods for that? Jonas On May 22, 2017 16:46, "Lowekamp, Bradley (NIH/NLM/LHC) [C]" > wrote: Hello Jonas, So ITK ( and therefore SimpleITK ), by default multi-thread each filter by default. This enables efficient processing of larger images. However, for your task you can run a large number of filters concurrently. Fortunately, SimpleITK does support concurrent execution of ITK filters with light weight python Threads! This is an uncommon feature for Python libraries and is a distinguishing feature of SimpleITK. I have been planning on writing an example or notebook on this. Here is an efficient and compact code to accomplish your task as I understand it: import SimpleITK as sitk from multiprocessing.pool import ThreadPool p = ThreadPool() # https://github.com/blowekamp/itkOBBLabelMap/tree/master/test/data img = sitk.ReadImage(?~/Downloads/jelly_beans.png") seg = sitk.ReadImage(?~/Downloads/jelly_beans_seg.png?) shapeStats = sitk.LabelShapeStatisticsImageFilter() shapeStats.Execute(seg) def extract_bb(img, shape_stats_filter, label): [x,y,xsize,ysize]=shape_stats_filter.GetBoundingBox(label) return sitk.RegionOfInterest(img,size=[xsize,ysize],index=[x,y]) bbimg_list = p.map(lambda label: extract_bb(img, shapeStats, label), shapeStats.GetLabels()) This uses advance concepts of multi-threading, closures, mapping, and thread pools. I think it is the integration of SimpleITK any Python at its bests! One tweak which could be made to this code is to create a RegionOfInterestImageFilter object, and explicitly set it?s number of threads to 1, so that it is not multi-threaded. A related not is the recently Oriented Bounding Box computation has been added to ITK?s LabelShape objects and filters, this is starting to get propagated into SimpleITK now. This can be used for a similar purpose but with a resample image filter to change the orientation of the separate object. Enjoy! Brad On May 22, 2017, at 5:59 AM, Jonas Teuwen > wrote: Dear all, Currently I have SimpleITK code to extract patches from a 3D medical image to train a neural network with. I do this with CropImageFilter and check if they are on the edge or not, and pad if necessary. Currently this is done offline, so speed is not really an issue, however, I would like to do this online now, so load the image and mask, and return the patches. If I want to extract many small patches, about 1000 out of a large image (~3000x3000x50 or so) is there any reason why I would not use OpenMP instead of ITK's possibilities? I do not have a good understanding of the multithreading capabilities yet, so any pointers would be great. Best, Jonas Teuwen _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From mrguilfoyle at gmail.com Mon May 22 15:25:09 2017 From: mrguilfoyle at gmail.com (Mathew Guilfoyle) Date: Mon, 22 May 2017 20:25:09 +0100 Subject: [ITK-users] How to get inverse diffeomorphic demons deformation field transform? Message-ID: I am using (Simple)ITK DiffeomorphicDemonsRegistrationFilter() to perform deformable registration of two 3D images. This works fine. Output from the filter is 'outImage' vector image which I then convert to a transform using dfTransform = DisplacementFieldTransform(outImage). I can then resample my moving image using this transform and all looks as expected. My reading/understanding of diffeomorphic algorithms is that there should be an exact and readily computable inverse transform? I need this as I want to inverse warp a template segmentation performed on my reference image into the original space of my moving image. How do I obtain the inverse DisplacementFieldTransform or the inverse vector image? I have tried the InvertDisplacementField filter but the output of this does not appear to correctly invert my warped image back to the original so I do not think this filter generates is a n accurate inverse, at least using default settings. Any ideas of if/how I can get an exact inverse of a deformable transform? Thanks From francois.budin at kitware.com Mon May 22 16:00:59 2017 From: francois.budin at kitware.com (Francois Budin) Date: Mon, 22 May 2017 16:00:59 -0400 Subject: [ITK-users] How to get inverse diffeomorphic demons deformation field transform? In-Reply-To: References: Message-ID: Hello Mathew, To my knowledge there is no way to get the inverse transform directly when using ITKDiffeomorphicDemonsRegistrationFilter. You could try to invert the deformation field using one of the algorithm that are available in ITK for that purpose. It seems that you tried one (InverDisplacementField) but have you tried the remote module [1] If you want to get the inverse transformation directly, you can also try to use [2] or use the registration method that has been implemented in this Insight Journal paper [3]. Hope this helps, Francois [1] https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Remote/FixedPointInverseDisplacementField.remote.cmake [2] https://itk.org/Doxygen/html/classitk_1_1VariationalSymmetricDiffeomorphicRegistrationFilter.html [3] http://www.insight-journal.org/browse/publication/644 On Mon, May 22, 2017 at 3:25 PM, Mathew Guilfoyle wrote: > I am using (Simple)ITK DiffeomorphicDemonsRegistrationFilter() to perform > deformable registration of two 3D images. This works fine. Output from > the filter is 'outImage' vector image which I then convert to a transform > using > > dfTransform = DisplacementFieldTransform(outImage). > > I can then resample my moving image using this transform and all looks as > expected. > > My reading/understanding of diffeomorphic algorithms is that there should > be an exact and readily computable inverse transform? I need this as I > want to inverse warp a template segmentation performed on my reference > image into the original space of my moving image. How do I obtain the > inverse DisplacementFieldTransform or the inverse vector image? > > I have tried the InvertDisplacementField filter but the output of this > does not appear to correctly invert my warped image back to the original so > I do not think this filter generates is a n accurate inverse, at least > using default settings. > > Any ideas of if/how I can get an exact inverse of a deformable transform? > > Thanks > > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ibr_ex at yahoo.com Tue May 23 03:07:22 2017 From: ibr_ex at yahoo.com (ibraheem aldhamari) Date: Tue, 23 May 2017 07:07:22 +0000 (UTC) Subject: [ITK-users] Fitting Point Data using B-Splines References: <1360308243.103577.1495523242037.ref@mail.yahoo.com> Message-ID: <1360308243.103577.1495523242037@mail.yahoo.com> Hi,is this code is still up-to-date??http://public.kitware.com/pipermail/community/2014-March/005665.html I get this error:itkPointSetToImageFilter.txx:139:56: error: no type named ?BoundingBoxType? in ?itk::PointSetToImageFilter, 1u>, itk::Image, 1u> >::InputPointSetType {aka class itk::PointSet, 1u>}? ?? typedef typename InputPointSetType::BoundingBoxType??BoundingBoxType; Ibraheem -------------- next part -------------- An HTML attachment was scrubbed... URL: From zivrafael.yaniv at nih.gov Tue May 23 10:11:55 2017 From: zivrafael.yaniv at nih.gov (Yaniv, Ziv Rafael (NIH/NLM/LHC) [C]) Date: Tue, 23 May 2017 14:11:55 +0000 Subject: [ITK-users] [ITK] How to get inverse diffeomorphic demons deformation field transform? In-Reply-To: References: Message-ID: <6965D668-1299-4CCC-9491-ED62E8386E44@mail.nih.gov> Hello Mathew, Just a followup to Francois? recommendations. SimpleITK currently doesn?t support the FixedPointInverseDisplacementField external module. If you want it added please open an issue describing the need on GitHub (https://github.com/SimpleITK/SimpleITK/issues). thanks Ziv On 5/22/17, 3:25 PM, "Mathew Guilfoyle" wrote: I am using (Simple)ITK DiffeomorphicDemonsRegistrationFilter() to perform deformable registration of two 3D images. This works fine. Output from the filter is 'outImage' vector image which I then convert to a transform using dfTransform = DisplacementFieldTransform(outImage). I can then resample my moving image using this transform and all looks as expected. My reading/understanding of diffeomorphic algorithms is that there should be an exact and readily computable inverse transform? I need this as I want to inverse warp a template segmentation performed on my reference image into the original space of my moving image. How do I obtain the inverse DisplacementFieldTransform or the inverse vector image? I have tried the InvertDisplacementField filter but the output of this does not appear to correctly invert my warped image back to the original so I do not think this filter generates is a n accurate inverse, at least using default settings. Any ideas of if/how I can get an exact inverse of a deformable transform? Thanks _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users _______________________________________________ Community mailing list Community at itk.org http://public.kitware.com/mailman/listinfo/community From blowekamp at mail.nih.gov Tue May 23 14:59:12 2017 From: blowekamp at mail.nih.gov (Lowekamp, Bradley (NIH/NLM/LHC) [C]) Date: Tue, 23 May 2017 18:59:12 +0000 Subject: [ITK-users] How to get inverse diffeomorphic demons deformation field transform? In-Reply-To: References: Message-ID: <359FC80C-CD5A-49D2-8748-3917DDFA010C@mail.nih.gov> Francois, There does not seem to be a Doxygen page for FixedPointInverseDisplacementFieldImageFilter. I thought all remote modules were suppose to be in Doxygen. Do you have any idea why? Brad On May 22, 2017, at 4:00 PM, Francois Budin > wrote: Hello Mathew, To my knowledge there is no way to get the inverse transform directly when using ITKDiffeomorphicDemonsRegistrationFilter. You could try to invert the deformation field using one of the algorithm that are available in ITK for that purpose. It seems that you tried one (InverDisplacementField) but have you tried the remote module [1] If you want to get the inverse transformation directly, you can also try to use [2] or use the registration method that has been implemented in this Insight Journal paper [3]. Hope this helps, Francois [1] https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Remote/FixedPointInverseDisplacementField.remote.cmake [2] https://itk.org/Doxygen/html/classitk_1_1VariationalSymmetricDiffeomorphicRegistrationFilter.html [3] http://www.insight-journal.org/browse/publication/644 On Mon, May 22, 2017 at 3:25 PM, Mathew Guilfoyle > wrote: I am using (Simple)ITK DiffeomorphicDemonsRegistrationFilter() to perform deformable registration of two 3D images. This works fine. Output from the filter is 'outImage' vector image which I then convert to a transform using dfTransform = DisplacementFieldTransform(outImage). I can then resample my moving image using this transform and all looks as expected. My reading/understanding of diffeomorphic algorithms is that there should be an exact and readily computable inverse transform? I need this as I want to inverse warp a template segmentation performed on my reference image into the original space of my moving image. How do I obtain the inverse DisplacementFieldTransform or the inverse vector image? I have tried the InvertDisplacementField filter but the output of this does not appear to correctly invert my warped image back to the original so I do not think this filter generates is a n accurate inverse, at least using default settings. Any ideas of if/how I can get an exact inverse of a deformable transform? Thanks _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From francois.budin at kitware.com Wed May 24 00:06:07 2017 From: francois.budin at kitware.com (Francois Budin) Date: Wed, 24 May 2017 00:06:07 -0400 Subject: [ITK-users] How to get inverse diffeomorphic demons deformation field transform? In-Reply-To: <359FC80C-CD5A-49D2-8748-3917DDFA010C@mail.nih.gov> References: <359FC80C-CD5A-49D2-8748-3917DDFA010C@mail.nih.gov> Message-ID: Hey Brad, I actually do not know when the remote module documentation is generated. CC'ing Matt. Francois On Tue, May 23, 2017 at 2:59 PM, Lowekamp, Bradley (NIH/NLM/LHC) [C] < blowekamp at mail.nih.gov> wrote: > Francois, > > There does not seem to be a Doxygen page for > FixedPointInverseDisplacementFieldImageFilter. I thought all remote > modules were suppose to be in Doxygen. Do you have any idea why? > > Brad > > On May 22, 2017, at 4:00 PM, Francois Budin > wrote: > > Hello Mathew, > > To my knowledge there is no way to get the inverse transform directly when > using ITKDiffeomorphicDemonsRegistrationFilter. You could try to invert > the deformation field using one of the algorithm that are available in ITK > for that purpose. It seems that you tried one (InverDisplacementField) but > have you tried the remote module [1] > If you want to get the inverse transformation directly, you can also try > to use [2] or use the registration method that has been implemented in this > Insight Journal paper [3]. > > Hope this helps, > Francois > > [1] https://github.com/InsightSoftwareConsortium/ITK/ > blob/master/Modules/Remote/FixedPointInverseDisplacementField.remote.cmake > [2] https://itk.org/Doxygen/html/classitk_1_1VariationalSymmetricDiffeomor > phicRegistrationFilter.html > [3] http://www.insight-journal.org/browse/publication/644 > > On Mon, May 22, 2017 at 3:25 PM, Mathew Guilfoyle > wrote: > >> I am using (Simple)ITK DiffeomorphicDemonsRegistrationFilter() to >> perform deformable registration of two 3D images. This works fine. Output >> from the filter is 'outImage' vector image which I then convert to a >> transform using >> >> dfTransform = DisplacementFieldTransform(outImage). >> >> I can then resample my moving image using this transform and all looks as >> expected. >> >> My reading/understanding of diffeomorphic algorithms is that there should >> be an exact and readily computable inverse transform? I need this as I >> want to inverse warp a template segmentation performed on my reference >> image into the original space of my moving image. How do I obtain the >> inverse DisplacementFieldTransform or the inverse vector image? >> >> I have tried the InvertDisplacementField filter but the output of this >> does not appear to correctly invert my warped image back to the original so >> I do not think this filter generates is a n accurate inverse, at least >> using default settings. >> >> Any ideas of if/how I can get an exact inverse of a deformable transform? >> >> Thanks >> >> >> _____________________________________ >> Powered by www.kitware.com >> >> Visit other Kitware open-source projects at >> http://www.kitware.com/opensource/opensource.html >> >> Kitware offers ITK Training Courses, for more information visit: >> http://www.kitware.com/products/protraining.php >> >> Please keep messages on-topic and check the ITK FAQ at: >> http://www.itk.org/Wiki/ITK_FAQ >> >> Follow this link to subscribe/unsubscribe: >> http://public.kitware.com/mailman/listinfo/insight-users >> > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From blowekamp at mail.nih.gov Wed May 24 09:34:46 2017 From: blowekamp at mail.nih.gov (Lowekamp, Bradley (NIH/NLM/LHC) [C]) Date: Wed, 24 May 2017 13:34:46 +0000 Subject: [ITK-users] How to get inverse diffeomorphic demons deformation field transform? In-Reply-To: References: <359FC80C-CD5A-49D2-8748-3917DDFA010C@mail.nih.gov> Message-ID: I think it is this build: https://open.cdash.org/viewNotes.php?buildid=4911206 It looks like the remote modules need to manually enabled in the configuration. Brad On May 24, 2017, at 12:06 AM, Francois Budin > wrote: Hey Brad, I actually do not know when the remote module documentation is generated. CC'ing Matt. Francois On Tue, May 23, 2017 at 2:59 PM, Lowekamp, Bradley (NIH/NLM/LHC) [C] > wrote: Francois, There does not seem to be a Doxygen page for FixedPointInverseDisplacementFieldImageFilter. I thought all remote modules were suppose to be in Doxygen. Do you have any idea why? Brad On May 22, 2017, at 4:00 PM, Francois Budin > wrote: Hello Mathew, To my knowledge there is no way to get the inverse transform directly when using ITKDiffeomorphicDemonsRegistrationFilter. You could try to invert the deformation field using one of the algorithm that are available in ITK for that purpose. It seems that you tried one (InverDisplacementField) but have you tried the remote module [1] If you want to get the inverse transformation directly, you can also try to use [2] or use the registration method that has been implemented in this Insight Journal paper [3]. Hope this helps, Francois [1] https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Remote/FixedPointInverseDisplacementField.remote.cmake [2] https://itk.org/Doxygen/html/classitk_1_1VariationalSymmetricDiffeomorphicRegistrationFilter.html [3] http://www.insight-journal.org/browse/publication/644 On Mon, May 22, 2017 at 3:25 PM, Mathew Guilfoyle > wrote: I am using (Simple)ITK DiffeomorphicDemonsRegistrationFilter() to perform deformable registration of two 3D images. This works fine. Output from the filter is 'outImage' vector image which I then convert to a transform using dfTransform = DisplacementFieldTransform(outImage). I can then resample my moving image using this transform and all looks as expected. My reading/understanding of diffeomorphic algorithms is that there should be an exact and readily computable inverse transform? I need this as I want to inverse warp a template segmentation performed on my reference image into the original space of my moving image. How do I obtain the inverse DisplacementFieldTransform or the inverse vector image? I have tried the InvertDisplacementField filter but the output of this does not appear to correctly invert my warped image back to the original so I do not think this filter generates is a n accurate inverse, at least using default settings. Any ideas of if/how I can get an exact inverse of a deformable transform? Thanks _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From francois.budin at kitware.com Wed May 24 09:48:53 2017 From: francois.budin at kitware.com (Francois Budin) Date: Wed, 24 May 2017 09:48:53 -0400 Subject: [ITK-users] How to get inverse diffeomorphic demons deformation field transform? In-Reply-To: References: <359FC80C-CD5A-49D2-8748-3917DDFA010C@mail.nih.gov> Message-ID: Thanks Brad. I updated our scripts. Francois On Wed, May 24, 2017 at 9:34 AM, Lowekamp, Bradley (NIH/NLM/LHC) [C] < blowekamp at mail.nih.gov> wrote: > I think it is this build: > > https://open.cdash.org/viewNotes.php?buildid=4911206 > > It looks like the remote modules need to manually enabled in the > configuration. > > Brad > > On May 24, 2017, at 12:06 AM, Francois Budin > wrote: > > Hey Brad, > > I actually do not know when the remote module documentation is generated. > CC'ing Matt. > > Francois > > On Tue, May 23, 2017 at 2:59 PM, Lowekamp, Bradley (NIH/NLM/LHC) [C] < > blowekamp at mail.nih.gov> wrote: > >> Francois, >> >> There does not seem to be a Doxygen page for FixedPointInverseDisplacementFieldImageFilter. >> I thought all remote modules were suppose to be in Doxygen. Do you have any >> idea why? >> >> Brad >> >> On May 22, 2017, at 4:00 PM, Francois Budin >> wrote: >> >> Hello Mathew, >> >> To my knowledge there is no way to get the inverse transform directly >> when using ITKDiffeomorphicDemonsRegistrationFilter. You could try to >> invert the deformation field using one of the algorithm that are available >> in ITK for that purpose. It seems that you tried one >> (InverDisplacementField) but have you tried the remote module [1] >> If you want to get the inverse transformation directly, you can also try >> to use [2] or use the registration method that has been implemented in this >> Insight Journal paper [3]. >> >> Hope this helps, >> Francois >> >> [1] https://github.com/InsightSoftwareConsortium/ITK/blob/ >> master/Modules/Remote/FixedPointInverseDisplacementField.remote.cmake >> [2] https://itk.org/Doxygen/html/classitk_1_1VariationalSymm >> etricDiffeomorphicRegistrationFilter.html >> [3] http://www.insight-journal.org/browse/publication/644 >> >> On Mon, May 22, 2017 at 3:25 PM, Mathew Guilfoyle >> wrote: >> >>> I am using (Simple)ITK DiffeomorphicDemonsRegistrationFilter() to >>> perform deformable registration of two 3D images. This works fine. Output >>> from the filter is 'outImage' vector image which I then convert to a >>> transform using >>> >>> dfTransform = DisplacementFieldTransform(outImage). >>> >>> I can then resample my moving image using this transform and all looks >>> as expected. >>> >>> My reading/understanding of diffeomorphic algorithms is that there >>> should be an exact and readily computable inverse transform? I need this >>> as I want to inverse warp a template segmentation performed on my reference >>> image into the original space of my moving image. How do I obtain the >>> inverse DisplacementFieldTransform or the inverse vector image? >>> >>> I have tried the InvertDisplacementField filter but the output of this >>> does not appear to correctly invert my warped image back to the original so >>> I do not think this filter generates is a n accurate inverse, at least >>> using default settings. >>> >>> Any ideas of if/how I can get an exact inverse of a deformable transform? >>> >>> Thanks >>> >>> >>> _____________________________________ >>> Powered by www.kitware.com >>> >>> Visit other Kitware open-source projects at >>> http://www.kitware.com/opensource/opensource.html >>> >>> Kitware offers ITK Training Courses, for more information visit: >>> http://www.kitware.com/products/protraining.php >>> >>> Please keep messages on-topic and check the ITK FAQ at: >>> http://www.itk.org/Wiki/ITK_FAQ >>> >>> Follow this link to subscribe/unsubscribe: >>> http://public.kitware.com/mailman/listinfo/insight-users >>> >> >> _____________________________________ >> Powered by www.kitware.com >> >> Visit other Kitware open-source projects at >> http://www.kitware.com/opensource/opensource.html >> >> Kitware offers ITK Training Courses, for more information visit: >> http://www.kitware.com/products/protraining.php >> >> Please keep messages on-topic and check the ITK FAQ at: >> http://www.itk.org/Wiki/ITK_FAQ >> >> Follow this link to subscribe/unsubscribe: >> http://public.kitware.com/mailman/listinfo/insight-users >> >> >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From coyarzunlaura at googlemail.com Wed May 24 10:30:22 2017 From: coyarzunlaura at googlemail.com (Cristina Oyarzun) Date: Wed, 24 May 2017 16:30:22 +0200 Subject: [ITK-users] CFP: MICCAI CLIP 2017 Workshop on Clinical Image-based Procedures: Translational Research in Medical Message-ID: CALL FOR PAPERS MICCAI 2017 Workshop on Clinical Image-based Procedures: Translational Research in Medical Imaging September 17, 2017 Quebec City, Canada Website:http://miccai-clip.org/ ============================== ========================================== SCOPE The outstanding proliferation of medical image applications has created a need for greater study and scrutiny of the clinical application and validation of such methods. New strategies are essential to ensure a smooth and effective translation of computational image-based techniques into the clinic. For these reasons CLIP 2017?s major focus is on translational research filling the gaps between basic science and clinical applications. A highlight of the workshop is the subject of strategies for personalized medicine to enhance diagnosis, treatment and interventions. Authors are encouraged to submit work centered on specific clinical applications, including techniques and procedures based on comprehensive clinical image data. Submissions related to applications already in use and evaluated by clinical users are particularly encouraged. The event will bring together world-class specialists to present ways to strengthen links between computer scientists and engineers, and clinicians. TOPICS *Strategies for patient-specific and anatomical modeling to support planning and interventions *Clinical studies employing advanced image-guided methods *Clinical translation and validation of image-guided systems *Current challenges and emerging techniques in image-based procedures *Identification of parameters and error analysis in image-based procedures *Multimodal image integration for modeling, planning and guidance *Clinical applications in open and minimally invasive procedures PAPER SUBMISSION Papers will be limited to ten pages following the MICCAI submission guidelines. Prospective authors should refer to the Paper Submission section on the workshop website for details on how to submit papers to be presented at the workshop. All submissions will be peer-reviewed by at least 2 members of the program committee. The selection of the papers will be based on the significance of results, novelty, technical merit, relevance and clarity of presentation. Papers will be presented in a day long single track workshop starting with plenary sessions. Accepted papers will be published as a proceedings volume in the Springer Lecture Notes in Computer Science (LNCS) series after the workshop. WORKSHOP FORMAT Accepted papers will be presented in a day long single track workshop. The final program will consist of invited speakers and original papers with time allocated for discussions. Electronic proceedings will be arranged for all of the papers presented at the workshop. IMPORTANT DATES * June 12, 2017: Paper submission due date * June 29, 2017: Notification of acceptance * July 3, 2017: Final camera-ready paper submission deadline CONTACT Inquires about the workshop should be sent to the Information Desk ( info at miccai-clip.org). ORGANIZERS (in alphabetical order) Klaus Drechsler (Fraunhofer IGD, Germany) Marius Erdt (Fraunhofer IDM at NTU, Singapore) Miguel Gonz?lez Ballester (ICREA - Universitat Pompeu Fabra, Spain) Marius George Linguraru (Children's National Medical Center, USA) Cristina Oyarzun Laura (Fraunhofer IGD, Germany) Raj Shekhar (Children's National Medical Center, USA) Stefan Wesarg (Fraunhofer IGD, Germany) ======================================================================== -------------- next part -------------- An HTML attachment was scrubbed... URL: From wangkaiwen998 at gmail.com Wed May 24 14:25:28 2017 From: wangkaiwen998 at gmail.com (kaiwenw) Date: Wed, 24 May 2017 11:25:28 -0700 (MST) Subject: [ITK-users] Geodesic distance for simpleITK Message-ID: <1495650328977-7589980.post@n2.nabble.com> Hello everyone, I'm trying to interpolate shapes with diffeomorphic registration. My code is in SimpleITK. I know there is a velocity-field LDDMM-like transform in ITK, but how about SimpleITK? Also, for itk::TimeVaryingVelocityFieldTransform, is there a way to calculate the geodesic distance (length) between shapes? So that I can interpolate shapes. Thanks! Kevin -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/Geodesic-distance-for-simpleITK-tp7589980.html Sent from the ITK Insight Users mailing list archive at Nabble.com. From matt.mccormick at kitware.com Fri May 26 17:43:09 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Fri, 26 May 2017 17:43:09 -0400 Subject: [ITK-users] [ANN] ITK 4.12 Release Candidate 3 is ready for testing! Message-ID: On behalf of the Insight Toolkit community, we are proud to announce that ITK 4.12 release candidate 3 has been tagged and is available for testing! Please take this opportunity to test the new features in the release candidate. For more information on the new features in this release, see our blog entry on the first release candidate. To obtain the source code, use the links: https://github.com/Kitware/ITK/archive/v4.12rc03.zip https://github.com/Kitware/ITK/archive/v4.12rc03.tar.gz Or, to checkout the tag with Git: git clone https://itk.org/ITK.git cd ITK git checkout -q --detach v4.12rc03 Please test the release candidate and share your experiences on the mailing list, issue tracker, and Gerrit Code Review. An Experimental build, which demonstrates how the test suite performs on your local build system, can be submitted to the dashboard [1] with: mkdir ../ITK-build cd ../ITK-build cmake ../ITK ctest -j 4 -M Experimental -T Configure -T Build -T Test -T Submit Visual Studio builds must also add ?-C Release? to the ctest command. Notify the mailing list if there are any unexpected failures. Testing your own applications against the RC is also appreciated. The 4.12.0 release is scheduled for next week. [1] http://open.cdash.org/index.php?project=Insight 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) From keepdash at hotmail.com Fri May 26 22:42:55 2017 From: keepdash at hotmail.com (keepdash) Date: Fri, 26 May 2017 19:42:55 -0700 (MST) Subject: [ITK-users] How to include "ChanAndVese" method in ITK Message-ID: <1495852975350-7589982.post@n2.nabble.com> Hi all, I want to use the active contour without edge method in ITK, I found there is an implementation from the websit "https://itk.org/Doxygen/html/index.html", the image filter's name is itk::ScalarChanAndVeseSparseLevelSetImageFilter. But I can't find it in the source code of ITK 4.11 I downloaded. Then I'd like to ask, how can I include the filter in ITK. Thanks a lot! -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/How-to-include-ChanAndVese-method-in-ITK-tp7589982.html Sent from the ITK Insight Users mailing list archive at Nabble.com. From zhuangming.shen at sphic.org.cn Fri May 26 23:34:05 2017 From: zhuangming.shen at sphic.org.cn (=?gb2312?B?yfLXr8P3?=) Date: Sat, 27 May 2017 03:34:05 +0000 Subject: [ITK-users] Change codes from C++ supported ITK to Python supported ITK Message-ID: <1495856065779.26691@sphic.org.cn> Hi all, I don't know how to write "itk::SpatialOrientation::ITK_COORDINATE_ORIENTATION_RIP" in the codes below using Python supported ITK. Could someone provide me an example? Thanks in advance. itk::OrientImageFilter::Pointer orienter = itk::OrientImageFilter::New(); orienter->UseImageDirectionOn(); orienter->SetDesiredCoordinateOrientation(itk::SpatialOrientation::ITK_COORDINATE_ORIENTATION_RIP); orienter->SetInput(rval); orienter->Update(); Regards, Zhuangming Shen -------------- next part -------------- An HTML attachment was scrubbed... URL: From ibr_ex at yahoo.com Sat May 27 01:57:19 2017 From: ibr_ex at yahoo.com (ibraheem aldhamari) Date: Sat, 27 May 2017 05:57:19 +0000 (UTC) Subject: [ITK-users] How to include "ChanAndVese" method in ITK In-Reply-To: <1495852975350-7589982.post@n2.nabble.com> References: <1495852975350-7589982.post@n2.nabble.com> Message-ID: <329687628.155343.1495864639664@mail.yahoo.com> here you go :)http://www.insight-journal.org/browse/publication/322 On Saturday, May 27, 2017, 4:43:35 AM GMT+2, keepdash wrote:Hi all, I want to use the active contour without edge method in ITK, I found there is an implementation from the websit "https://itk.org/Doxygen/html/index.html", the image filter's name is itk::ScalarChanAndVeseSparseLevelSetImageFilter. But I can't find it in the source code of ITK 4.11 I downloaded. Then I'd like to ask, how can I include the filter in ITK. Thanks a lot! -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/How-to-include-ChanAndVese-method-in-ITK-tp7589982.html Sent from the ITK Insight Users mailing list archive at Nabble.com. _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From keepdash at hotmail.com Sat May 27 03:15:23 2017 From: keepdash at hotmail.com (keepdash) Date: Sat, 27 May 2017 00:15:23 -0700 (MST) Subject: [ITK-users] How to include "ChanAndVese" method in ITK In-Reply-To: <329687628.155343.1495864639664@mail.yahoo.com> References: <1495852975350-7589982.post@n2.nabble.com> <329687628.155343.1495864639664@mail.yahoo.com> Message-ID: <1495869323637-7589985.post@n2.nabble.com> Thank you, I downloaded these code, it can not be compiled with current ITK 4.11. I found it is wrote in 2009, maybe too old. Also I found its code is not same as I found in the website, I compared its code with the code in: https://itk.org/Doxygen/html/itkScalarChanAndVeseLevelSetFunction_8h_source.html I think the code in the Doxygen are latest, but where can I download them all include them? -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/How-to-include-ChanAndVese-method-in-ITK-tp7589982p7589985.html Sent from the ITK Insight Users mailing list archive at Nabble.com. From jonasteuwen at gmail.com Sat May 27 03:34:04 2017 From: jonasteuwen at gmail.com (Jonas Teuwen) Date: Sat, 27 May 2017 09:34:04 +0200 Subject: [ITK-users] Casting Point to SizeType and vice versa Message-ID: Hi all, I want to extract patches around points using CropImageFilter. To do this, I need to calculate the correct bounds. The point itself is an itk::Point object, and then I calculate the lower_crop and upper_crop. It can be possible these are negative in some components, which is checked later on and compensated with ConstantPadImageFilter. So I need to switch between a Size and Point, which apparently cannot be implicitly casted. I am using a for loop to do this, but this is probably not the right way to do it. So what is the proper way to do this in ITK? I understand this question is probably very elementary, but your help would be greatly appreciated. itk::Size<3> image_size = image->GetBufferedRegion().GetSize(); std::cout << "Input size: " << image_size << std::endl; * itk::Vector image_size2;* * for(int i=0; i<3; ++i)* * {* * image_size2[i] = image_size[i];* * }* itk::Vector lower_crop = point - crop_size; itk::Vector upper_crop = image_size2 - (point + crop_size) - 1; Best, Jonas Teuwen -------------- next part -------------- An HTML attachment was scrubbed... URL: From keepdash at hotmail.com Sat May 27 03:38:12 2017 From: keepdash at hotmail.com (keepdash) Date: Sat, 27 May 2017 00:38:12 -0700 (MST) Subject: [ITK-users] How to include "ChanAndVese" method in ITK In-Reply-To: <1495869323637-7589985.post@n2.nabble.com> References: <1495852975350-7589982.post@n2.nabble.com> <329687628.155343.1495864639664@mail.yahoo.com> <1495869323637-7589985.post@n2.nabble.com> Message-ID: <1495870692649-7589987.post@n2.nabble.com> I found it myself finally, I need check "Module_ITKReview" in CMake to include the "Uonunit" folder that contain the "ChanAndVese" series methods. -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/How-to-include-ChanAndVese-method-in-ITK-tp7589982p7589987.html Sent from the ITK Insight Users mailing list archive at Nabble.com. From cgo_2113 at hotmail.com Sat May 27 07:04:39 2017 From: cgo_2113 at hotmail.com (CocoM) Date: Sat, 27 May 2017 04:04:39 -0700 (MST) Subject: [ITK-users] Step in finite differences for computing the gradient - Level set registration Message-ID: <1495883079908-7589988.post@n2.nabble.com> Hi everyone, I'm working wih the level set algorithm for deformable registration, which is part of the finite difference solver hierarchy. I have a theoretical question about it. Using the DeformableRegistration5.cxx example, I am interested in the computation of the moving image's gradient, which is done in the ComputeUpdate function of the itkLevelSetMotionRegistrationFunction class. The way the computation is done is with finite differences, using the image's spacing as step or 1 if we don't wanna use the spacing information. My question is : why? This value is usually quite far away from the theoretical optimal value for forward/backward finite difference (i.e. the root square of the machine precision, ~10^(-8)). So how can the gradient possibly be well approximated? I guess there is a good reason, and I tried to compute it with a step of 10^(-8) instead of using the spacing. I compared the evolution of the metric (SSD), and I got the same kind of values but an unstability of the metric after some iterations for the algorithm using 10^(-8) as step. Does someone know why this happens ? The main difference, I guess, is that in one case we use values of pixel and in the other case we have to interpolate the values. But I still don't see why I would get these oscillating values for the SSD. For information, I'm working with the RatLungSlice1 and RatLungSlice2 images from ITK and using the BSplineIterpolateImageFunction class for interpolation. Thanks a lot, Marie -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/Step-in-finite-differences-for-computing-the-gradient-Level-set-registration-tp7589988.html Sent from the ITK Insight Users mailing list archive at Nabble.com. From matt.mccormick at kitware.com Sat May 27 11:00:48 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Sat, 27 May 2017 11:00:48 -0400 Subject: [ITK-users] Change codes from C++ supported ITK to Python supported ITK In-Reply-To: <1495856065779.26691@sphic.org.cn> References: <1495856065779.26691@sphic.org.cn> Message-ID: Hi Zhuangming Shen, For now, we need to reproduce the logic in itkSpatialOrientation.h [1]. However, I created an issue to expose itk.SpatialOrientation in Python [2]. Here is an example: import itk ITK_COORDINATE_UNKNOWN = 0 ITK_COORDINATE_Right = 2 ITK_COORDINATE_Left = 3 ITK_COORDINATE_Posterior = 4 ITK_COORDINATE_Anterior = 5 ITK_COORDINATE_Inferior = 8 ITK_COORDINATE_Superior = 9 ITK_COORDINATE_PrimaryMinor = 0 ITK_COORDINATE_SecondaryMinor = 8 ITK_COORDINATE_TertiaryMinor = 16 ITK_COORDINATE_ORIENTATION_RIP = ( ITK_COORDINATE_Right << ITK_COORDINATE_PrimaryMinor ) \ + ( ITK_COORDINATE_Inferior << ITK_COORDINATE_SecondaryMinor ) \ + ( ITK_COORDINATE_Posterior << ITK_COORDINATE_TertiaryMinor ) ImageType = itk.Image[itk.ctype('unsigned char'), 3] orienter = itk.OrientImageFilter[ImageType, ImageType].New() orienter.SetUseImageDirection(True) orienter.SetDesiredCoordinateOrientation(ITK_COORDINATE_ORIENTATION_RIP) HTH, Matt [1] https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Core/Common/include/itkSpatialOrientation.h [2] https://issues.itk.org/jira/browse/ITK-3550 On Fri, May 26, 2017 at 11:34 PM, ??? wrote: > Hi all, > > > I don't know how to write > "itk::SpatialOrientation::ITK_COORDINATE_ORIENTATION_RIP" in the codes below > using Python supported ITK. Could someone provide me an example? Thanks in > advance. > > > itk::OrientImageFilter::Pointer orienter = > itk::OrientImageFilter::New(); > orienter->UseImageDirectionOn(); > orienter->SetDesiredCoordinateOrientation(itk::SpatialOrientation::ITK_COORDINATE_ORIENTATION_RIP); > orienter->SetInput(rval); > orienter->Update(); > > > Regards, > > Zhuangming Shen > > > > _____________________________________ > 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 Mon May 29 08:47:03 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Mon, 29 May 2017 08:47:03 -0400 Subject: [ITK-users] Casting Point to SizeType and vice versa In-Reply-To: References: Message-ID: Hi Jonas, what you probably need is TransformPhysicalPointToIndex method or one of its friends. Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Sat, May 27, 2017 at 3:34 AM, Jonas Teuwen wrote: > Hi all, > > I want to extract patches around points using CropImageFilter. To do this, > I need to calculate the correct bounds. > The point itself is an itk::Point object, and then I calculate the > lower_crop and upper_crop. It can be possible these are negative in some > components, which is checked later on and compensated with > ConstantPadImageFilter. > > So I need to switch between a Size and Point, which apparently cannot be > implicitly casted. > I am using a for loop to do this, but this is probably not the right way > to do it. So what is the proper way to do this in ITK? > I understand this question is probably very elementary, but your help > would be greatly appreciated. > > itk::Size<3> image_size = image->GetBufferedRegion().GetSize(); > std::cout << "Input size: " << image_size << std::endl; > > * itk::Vector image_size2;* > * for(int i=0; i<3; ++i)* > * {* > * image_size2[i] = image_size[i];* > * }* > > > itk::Vector lower_crop = point - crop_size; > itk::Vector upper_crop = image_size2 - (point + crop_size) - > 1; > > > Best, > Jonas Teuwen > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From zhuangming.shen at sphic.org.cn Tue May 30 20:20:30 2017 From: zhuangming.shen at sphic.org.cn (=?gb2312?B?yfLXr8P3?=) Date: Wed, 31 May 2017 00:20:30 +0000 Subject: [ITK-users] Change codes from C++ supported ITK to Python supported ITK In-Reply-To: References: <1495856065779.26691@sphic.org.cn>, Message-ID: <1496190055393.20310@sphic.org.cn> Hi Matt, Thanks for your promptly response. Regards, Zhuangming Shen ________________________________________ From: Matt McCormick Sent: Saturday, May 27, 2017 11:00 PM To: ??? Cc: insight-users at itk.org Subject: Re: [ITK-users] Change codes from C++ supported ITK to Python supported ITK Hi Zhuangming Shen, For now, we need to reproduce the logic in itkSpatialOrientation.h [1]. However, I created an issue to expose itk.SpatialOrientation in Python [2]. Here is an example: import itk ITK_COORDINATE_UNKNOWN = 0 ITK_COORDINATE_Right = 2 ITK_COORDINATE_Left = 3 ITK_COORDINATE_Posterior = 4 ITK_COORDINATE_Anterior = 5 ITK_COORDINATE_Inferior = 8 ITK_COORDINATE_Superior = 9 ITK_COORDINATE_PrimaryMinor = 0 ITK_COORDINATE_SecondaryMinor = 8 ITK_COORDINATE_TertiaryMinor = 16 ITK_COORDINATE_ORIENTATION_RIP = ( ITK_COORDINATE_Right << ITK_COORDINATE_PrimaryMinor ) \ + ( ITK_COORDINATE_Inferior << ITK_COORDINATE_SecondaryMinor ) \ + ( ITK_COORDINATE_Posterior << ITK_COORDINATE_TertiaryMinor ) ImageType = itk.Image[itk.ctype('unsigned char'), 3] orienter = itk.OrientImageFilter[ImageType, ImageType].New() orienter.SetUseImageDirection(True) orienter.SetDesiredCoordinateOrientation(ITK_COORDINATE_ORIENTATION_RIP) HTH, Matt [1] https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Core/Common/include/itkSpatialOrientation.h [2] https://issues.itk.org/jira/browse/ITK-3550 On Fri, May 26, 2017 at 11:34 PM, ??? wrote: > Hi all, > > > I don't know how to write > "itk::SpatialOrientation::ITK_COORDINATE_ORIENTATION_RIP" in the codes below > using Python supported ITK. Could someone provide me an example? Thanks in > advance. > > > itk::OrientImageFilter::Pointer orienter = > itk::OrientImageFilter::New(); > orienter->UseImageDirectionOn(); > orienter->SetDesiredCoordinateOrientation(itk::SpatialOrientation::ITK_COORDINATE_ORIENTATION_RIP); > orienter->SetInput(rval); > orienter->Update(); > > > Regards, > > Zhuangming Shen > > > > _____________________________________ > 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 bakkari.abdelkhalek at hotmail.fr Wed May 31 05:42:26 2017 From: bakkari.abdelkhalek at hotmail.fr (Abdelkhalek Bakkari) Date: Wed, 31 May 2017 09:42:26 +0000 Subject: [ITK-users] Mean, Variance, Skinewski and Kurtosis Message-ID: Dear Insight users, I am in need of an example about measuring the Mean, Variance, Skinewski and Kurtosis of a gray scale image. These features shoud be obtened using the Co-occurrence matrix and give an image for each statistical feature. Thank you in advance. Kind regards, -------------- next part -------------- An HTML attachment was scrubbed... URL: From dzenanz at gmail.com Wed May 31 09:05:54 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Wed, 31 May 2017 09:05:54 -0400 Subject: [ITK-users] Mean, Variance, Skinewski and Kurtosis In-Reply-To: References: Message-ID: Hi Abdelkhalek, take a look at this example: http://www.itk.org/Wiki/ITK/Examples/Statistics/TextureFeatures You might be interested in this code: https://github.com/blowekamp/itkTextureAnalysis and this thread: http://www.itk.org/pipermail/insight-users/2012-February/043764.html Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Wed, May 31, 2017 at 5:42 AM, Abdelkhalek Bakkari < bakkari.abdelkhalek at hotmail.fr> wrote: > Dear Insight users, > > > I am in need of an example about measuring the Mean, Variance, Skinewski > and Kurtosis of a gray scale image. > > These features shoud be obtened using the Co-occurrence matrix and give an > image for each statistical feature. > > > > Thank you in advance. > > > Kind regards, > > > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From noreply at insightsoftwareconsortium.org Wed May 31 12:51:24 2017 From: noreply at insightsoftwareconsortium.org (Insight Journal) Date: Wed, 31 May 2017 12:51:24 -0400 (EDT) Subject: [ITK-users] New Submission: Computing Textural Feature Maps for N-Dimensional images Message-ID: <20170531165124.B02F03D62671@insight-journal.org> Hello, A new submission has been added to the Insight Journal. Title: Computing Textural Feature Maps for N-Dimensional images Authors: Vimort J., McCormick M., Budin F., Paniagua B. Abstract: This document describes a new remote module implemented for the Insight Toolkit ITK, itkTextureFeatures. This module contains two texture analysis filters that are used to compute feature maps of N-Dimensional images using two well-known texture analysis methods. The two filters contained in this module are itkScalarImageToTextureFeaturesImageFilter (which computes textural features based on intensity-based co-occurrence matrices in the image) and itkScalarImageToRunLengthFeaturesImageFilter (which computes textural features based on equally valued intensity clusters of different sizes or run lengths in the image). The output of this module is a vector image of the same size than the input that contains a multidimensional vector in each pixel/voxel. Filters can be configured based in the locality of the textural features (neighborhood size), offset directions for co-ocurrence and run length computation, the number of bins for the intensity histograms, the intensity range or the range of run lengths. This paper is accompanied with the source code, input data, parameters and output data that we have 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/3574 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/ .