[prev in list] [next in list] [prev in thread] [next in thread]
List: insight-users
Subject: Re: [ITK-users] [ITK] Siemens 4d data
From: Andras Lasso <lasso () queensu ! ca>
Date: 2017-07-30 19:50:32
Message-ID: BY2PR0701MB19416D7200C6762A94D715A3D8BD0 () BY2PR0701MB1941 ! namprd07 ! prod ! outlook ! com
[Download RAW message or body]
Does Slicer load it correctly as a 4D volume? If yes, you can use that or copy it's \
behavior on your own software. If Slicer does not load it correctly or you are not \
sure how to do it, then ask help on the Slicer forum (discourse.slicer.org).
Andras
From: Sonia Pozzi<mailto:sonia.pozzi89@gmail.com>
Sent: Sunday, July 30, 2017 13:10
To: Andras Lasso<mailto:lasso@queensu.ca>
Cc: Lambert Zijp<mailto:ljzijp@gmail.com>; \
Insight-users<mailto:insight-users@itk.org>
Subject: Re: [ITK-users] [ITK] Siemens 4d data
Dear Andras and Lambert,
here is the code I’m using. Every one of my time series contains the same slice for \
different times.
The problem is that it is importing the series one by one and it seems that it is not \
working in checking out which slice belong to the same time acquisition. At the end \
my 4D volume has coordinates [x,y,t,z]. I also tried to switch t- and z-coordinates \
at the end of my simulation but then I have some problem in the resulting volume (I’m \
not able to continuing working on it). As you know I can’t share MRI data here, but \
if you are willing I could send you a small part of them to try to figure out \
together how to read them... That would help me a lot.
Regards and thank you for your time,
Sonia
nameGenerator -> SetDirectory( _dicomDirectory );
ReaderType::Pointer reader = ReaderType::New();
ShortImageType4D::Pointer image4D = ShortImageType4D::New();
ShortImageType::Pointer image3D = ShortImageType::New();
reader->SetImageIO(dicomIO);
const std::string entry_id = "0018|1090 ";
nameGenerator->AddSeriesRestriction(entry_id);
typedef std::vector< std::string > SeriesIdContainer;
const SeriesIdContainer & seriesUID = nameGenerator->GetSeriesUIDs();
SeriesIdContainer::const_iterator seriesItr = seriesUID.begin();
SeriesIdContainer::const_iterator seriesEnd = seriesUID.end();
typedef std::vector< std::string > FileNamesContainer;
// figure out how many time points there are based on number of series
unsigned int timepoints = 0;
while (seriesItr != seriesEnd){
timepoints++;
seriesItr++;
}
std::cout << "Number of time points : " << timepoints << std::endl;
seriesItr = seriesUID.begin();
std::cout << "Reading first image : " << std::endl;
std::cout << seriesItr->c_str() << std::endl;
std::string seriesIdentifier;
seriesIdentifier = seriesItr->c_str();
FileNamesContainer fileNames;
fileNames = nameGenerator->GetFileNames(seriesIdentifier);
FileNamesContainer::iterator fileiterator = fileNames.begin();
std::cout<<"sono qui"<<seriesIdentifier<<std::endl;
reader->SetFileNames(fileNames);
try
{
reader->Update();
}
catch (itk::ExceptionObject &ex)
{
std::cout << ex << std::endl;
}
const ShortImageType::SpacingType& spacing3D = \
reader->GetOutput()->GetSpacing();
std::cout << "Spacing 3D = " << spacing3D[0] << ", " << spacing3D[1] << ", \
" << spacing3D[2] << std::endl;
const ShortImageType::PointType origin3D = \
reader->GetOutput()->GetOrigin();
std::cout << "Origin 3D = " << origin3D[0] << ", " << origin3D[1] << ", " \
<< origin3D[2] << std::endl;
const ShortImageType::SizeType size3D = \
reader->GetOutput()->GetBufferedRegion().GetSize();
ShortImageType4D::SpacingType spacing4D;
ShortImageType4D::PointType origin4D;
ShortImageType4D::SizeType size4D;
for (int i = 0; i < 3; ++i){
spacing4D[i] = spacing3D[i];
origin4D[i] = origin3D[i];
size4D[i] = size3D[i];
}
spacing4D[3] = 1;
origin4D[3] = 0;
size4D[3] = timepoints;
ShortImageType4D::IndexType start4D;
start4D.Fill(0);
ShortImageType4D::RegionType region4D(start4D, size4D);
std::cout << "Spacing 4D = " << spacing4D[0] << ", " << spacing4D[1] << ", \
" << spacing4D[2] << ", " << spacing4D[3] << std::endl;
std::cout << "Size 4D = " << size4D[0] << ", " << size4D[1] << ", " << \
size4D[2] << ", " << size4D[3] << std::endl; image4D->SetRegions(region4D);
image4D->SetSpacing(spacing4D);
image4D->SetOrigin(origin4D);
image4D->Allocate();
seriesItr = seriesUID.begin();
typedef itk::ImageRegionConstIterator< ShortImageType > Iterator3D;
typedef itk::ImageRegionIterator< ShortImageType4D > Iterator4D;
Iterator4D it4(image4D, image4D->GetBufferedRegion());
it4.GoToBegin();
unsigned short int idx = 0;
while (seriesItr != seriesEnd){
seriesIdentifier = seriesItr->c_str();
std::cout << "Reading series " << std::endl;
std::cout << seriesItr->c_str() << std::endl;
fileNames = nameGenerator->GetFileNames(seriesIdentifier);
for(unsigned int fni = 0; fni<fileNames.size(); fni++)
{ std::cout<<"FN "<<fileNames[fni]<<std::endl;
}
reader->SetFileNames(fileNames);
image3D = reader->GetOutput();
image3D->SetRegions(reader->GetOutput()->GetRequestedRegion());
image3D->CopyInformation(reader->GetOutput());
image3D->Allocate();
std::cout << "reading image volume " << idx << std::endl << std::endl;
try
{
reader->Update();
}
catch (itk::ExceptionObject &ex)
{
std::cout << ex << std::endl;
}
Iterator3D it3(image3D, image3D->GetBufferedRegion());
it3.GoToBegin();
while (!it3.IsAtEnd())
{
it4.Set(it3.Get());
++it3;
++it4;
}
// increment iterator
seriesItr++;
idx++;
}
On 29 Jul 2017, at 20:58, Andras Lasso <lasso@queensu.ca<mailto:lasso@queensu.ca>> \
wrote:
Finding out what DICOM fields to use for grouping frames is a complex topic. There is \
no universally accepted standard, the field(s) to use depend on scanner manufacturer, \
imaging modality, and imaging protocol.
You can have a look at the 4D image importer logic in 3D Slicer (what DICOM fields \
are considered, what heuristics are used for automatically detecting special cases, \
etc): https://github.com/fedorov/MultiVolumeImporter/blob/master/MultiVolumeImporterPl \
ugin.py<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F \
fedorov%2FMultiVolumeImporter%2Fblob%2Fmaster%2FMultiVolumeImporterPlugin.py&data=02%7 \
C01%7Classo%40queensu.ca%7C2c8ee4263d3e4bc7852e08d4d76dcf42%7Cd61ecb3b38b142d582c4efb2 \
838b925c%7C1%7C0%7C636370314013534944&sdata=TSgfUbldP6g%2ByIXlxlKKTog3wDo95QduwU9YAut52A4%3D&reserved=0>
You may also consider using 3D Slicer for loading DICOM data and saving as a 4D nrrd \
file that you can then easily load into ITK. If you have any questions related to \
this then post it on \
https://discourse.slicer.org<https://na01.safelinks.protection.outlook.com/?url=https% \
3A%2F%2Fdiscourse.slicer.org%2F&data=02%7C01%7Classo%40queensu.ca%7C2c8ee4263d3e4bc785 \
2e08d4d76dcf42%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636370314013534944&sdata=RIwlK%2BCGepL9Fd5q4NvhCoZAq6qCe7Uyay1%2FBH%2B8hVA%3D&reserved=0>.
Andras
From: Community [mailto:community-bounces@itk.org] On Behalf Of Lambert Zijp
Sent: Saturday, July 29, 2017 1:38 PM
To: Sonia Pozzi <sonia.pozzi89@gmail.com<mailto:sonia.pozzi89@gmail.com>>
Cc: Insight-users <insight-users@itk.org<mailto:insight-users@itk.org>>
Subject: Re: [ITK] [ITK-users] Siemens 4d data
Hi Sonia,
Apparently SeriesInstanceUID does not help; sounds familiar. Maybe FrameNumber, \
SeriesNumber or AcquisitionNumber? If not, sorting slices on slice coordinate and \
AcquisitionTime could be done as a last resort. If you post two slices with the same \
coordinate but belonging to different volumes, I will take look at it.
Greetings, Lambert
On Sat, Jul 29, 2017 at 12:26 AM, Sonia Pozzi \
<sonia.pozzi89@gmail.com<mailto:sonia.pozzi89@gmail.com>> wrote: Hello,
I have a set of Siemens series. In each series there is the same slice for different \
times. I would like to be able to reconstruct in itk each single volume (a complete \
volume for every time step). It is a couple of week that I’m trying how to do that…
I understood that I should use some tag, but I’m not sure about which and my code is \
not working.
Could you be so kind to give me a suggestion here?
My regards,
Sonia
_____________________________________
Powered by www.kitware.com<https://na01.safelinks.protection.outlook.com/?url=http%3A% \
2F%2Fwww.kitware.com&data=02%7C01%7Classo%40queensu.ca%7Cb3ff832c055844c3723708d4d6a89 \
52e%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636369466924361221&sdata=reUnVLyhbeksZSU3vfoYkbLsWGY00wLNMS8x06VkMW0%3D&reserved=0>
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html<https://na01.safelinks.protection.ou \
tlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fopensource%2Fopensource.html&data=02%7C0 \
1%7Classo%40queensu.ca%7Cb3ff832c055844c3723708d4d6a8952e%7Cd61ecb3b38b142d582c4efb283 \
8b925c%7C1%7C0%7C636369466924361221&sdata=rktVpsgRtuqvnhg1mwUXcYWEnHpZvD4OVUJXYgfmfUE%3D&reserved=0>
Kitware offers ITK Training Courses, for more information visit:
http://www.kitware.com/products/protraining.php<https://na01.safelinks.protection.outl \
ook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7C \
lasso%40queensu.ca%7Cb3ff832c055844c3723708d4d6a8952e%7Cd61ecb3b38b142d582c4efb2838b92 \
5c%7C1%7C0%7C636369466924361221&sdata=NPImYVLXkps1zXFWNaMTXI1%2BlG3%2FrVljLn%2F8uvc9WxA%3D&reserved=0>
Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ<https://na01.safelinks.protection.outlook.com/?url=htt \
p%3A%2F%2Fwww.itk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7Cb3ff832c055 \
844c3723708d4d6a8952e%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636369466924361221&sdata=TOa5cYIKt5uJHlNffUAGiVE%2FxoLeQ42gIVd3PtBJqS4%3D&reserved=0>
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/insight-users<https://na01.safelinks.protec \
tion.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Finsight-u \
sers&data=02%7C01%7Classo%40queensu.ca%7Cb3ff832c055844c3723708d4d6a8952e%7Cd61ecb3b38 \
b142d582c4efb2838b925c%7C1%7C0%7C636369466924361221&sdata=uZ%2F6Ap%2BSbMzWJ4WU8Bu11x4Oui8T8NNQn8vzevtAC6M%3D&reserved=0>
_____________________________________
Powered by www.kitware.com<https://na01.safelinks.protection.outlook.com/?url=http%3A% \
2F%2Fwww.kitware.com&data=02%7C01%7Classo%40queensu.ca%7C2c8ee4263d3e4bc7852e08d4d76dc \
f42%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636370314013534944&sdata=%2FhTw0WuqtTkVin7lYS0mgP8TU4xTdMzcb2rpacH3LLE%3D&reserved=0>
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html<https://na01.safelinks.protection.ou \
tlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fopensource%2Fopensource.html&data=02%7C0 \
1%7Classo%40queensu.ca%7C2c8ee4263d3e4bc7852e08d4d76dcf42%7Cd61ecb3b38b142d582c4efb283 \
8b925c%7C1%7C0%7C636370314013534944&sdata=mNaYG7f%2B8HfPpq4nIoISipMyKPpeO7jst6ENNFt9%2Bes%3D&reserved=0>
Kitware offers ITK Training Courses, for more information visit:
http://www.kitware.com/products/protraining.php<https://na01.safelinks.protection.outl \
ook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7C \
lasso%40queensu.ca%7C2c8ee4263d3e4bc7852e08d4d76dcf42%7Cd61ecb3b38b142d582c4efb2838b92 \
5c%7C1%7C0%7C636370314013534944&sdata=sRN31UAYKK9OWn7tw%2BBHiZkBEg6AMoFv7gS%2ByQfWIxE%3D&reserved=0>
Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ<https://na01.safelinks.protection.outlook.com/?url=htt \
p%3A%2F%2Fwww.itk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C2c8ee4263d3 \
e4bc7852e08d4d76dcf42%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636370314013534944&sdata=x%2B0%2BTk9MXpDkB588kVo4IG00bwkrtHzLiYOr%2Ftgrd1g%3D&reserved=0>
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/insight-users<https://na01.safelinks.protec \
tion.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Finsight-u \
sers&data=02%7C01%7Classo%40queensu.ca%7C2c8ee4263d3e4bc7852e08d4d76dcf42%7Cd61ecb3b38 \
b142d582c4efb2838b925c%7C1%7C0%7C636370314013534944&sdata=6Btol9UmUL7G6k4xXuLYwxbMtV%2FJM7uCtiNkKyBeqf8%3D&reserved=0>
[Attachment #3 (text/html)]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: \
after-white-space;" class=""> <meta name="Generator" content="Microsoft Word 15 \
(filtered medium)"> <style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style>
<div class="WordSection1">
<p class="MsoNormal">Does Slicer load it correctly as a 4D volume? If yes, you can \
use that or copy it's behavior on your own software. If Slicer does not load it \
correctly or you are not sure how to do it, then ask help on the Slicer forum \
(discourse.slicer.org).</p> <p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Andras</p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="mso-element:para-border-div;border:none;border-top:solid #E1E1E1 \
1.0pt;padding:3.0pt 0in 0in 0in"> <p class="MsoNormal" \
style="border:none;padding:0in"><b>From: </b><a \
href="mailto:sonia.pozzi89@gmail.com">Sonia Pozzi</a><br> <b>Sent: </b>Sunday, July \
30, 2017 13:10<br> <b>To: </b><a href="mailto:lasso@queensu.ca">Andras Lasso</a><br>
<b>Cc: </b><a href="mailto:ljzijp@gmail.com">Lambert Zijp</a>; <a \
href="mailto:insight-users@itk.org"> Insight-users</a><br>
<b>Subject: </b>Re: [ITK-users] [ITK] Siemens 4d data</p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>Dear Andras and Lambert,
<div class=""><br class="">
</div>
<div class="">here is the code I’m using. Every one of my time series contains the \
same slice for different times.</div> <div class=""><br class="">
</div>
<div class="">The problem is that it is importing the series one by one and it seems \
that it is not working in checking out which slice belong to the same time \
acquisition.</div> <div class="">At the end my 4D volume has coordinates [x,y,t,z]. I \
also tried to switch t- and z-coordinates at the end of my simulation but then I have \
some problem in the resulting volume (I’m not able to continuing working on \
it).</div> <div class="">As you know I can’t share MRI data here, but if you are \
willing I could send you a small part of them to try to figure out together how to \
read them...</div> <div class="">That would help me a lot.</div>
<div class=""><br class="">
</div>
<div class="">Regards and thank you for your time,</div>
<div class=""><br class="">
</div>
<div class="">Sonia</div>
<div class=""><br class="">
</div>
<div class="">
<div class=""> nameGenerator -> SetDirectory( \
_dicomDirectory );</div> <div class=""> \
ReaderType::Pointer reader = ReaderType::New();</div> <div class=""><br class="">
</div>
<div class=""> ShortImageType4D::Pointer image4D = \
ShortImageType4D::New();</div> <div class=""> \
ShortImageType::Pointer image3D = ShortImageType::New();</div> <div class=""><br \
class=""> </div>
<div class=""> \
reader->SetImageIO(dicomIO);</div> <div class=""><br class="">
</div>
<div class=""> const std::string entry_id = \
"0018|1090 ";</div> <div class=""><br class="">
</div>
<div class=""> \
nameGenerator->AddSeriesRestriction(entry_id);</div> <div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class=""> typedef std::vector< std::string \
> SeriesIdContainer;</div> <div class=""> \
const SeriesIdContainer & seriesUID = \
nameGenerator->GetSeriesUIDs();</div> <div class=""> \
SeriesIdContainer::const_iterator seriesItr = seriesUID.begin();</div> <div \
class=""> SeriesIdContainer::const_iterator \
seriesEnd = seriesUID.end();</div> <div class=""><br class="">
</div>
<div class=""> typedef std::vector< std::string \
> FileNamesContainer;</div> <div class=""><br class="">
</div>
<div class=""> // figure out how many time points \
there are based on number of series </div> <div class=""> \
unsigned int timepoints = 0;</div> <div class=""> \
while (seriesItr != seriesEnd){</div> <div class=""> \
timepoints++;</div> <div class=""> \
seriesItr++;</div> <div class=""> \
}</div> <div class=""> std::cout << \
"Number of time points : " << timepoints << \
std::endl;</div> <div class=""><br class="">
</div>
<div class=""> seriesItr = seriesUID.begin();</div>
<div class=""> std::cout << "Reading \
first image : " << std::endl;</div> <div class=""> \
std::cout << seriesItr->c_str() << std::endl;</div> <div \
class=""><br class=""> </div>
<div class=""> std::string seriesIdentifier;</div>
<div class=""> seriesIdentifier = \
seriesItr->c_str();</div> <div class=""><br class="">
</div>
<div class=""> FileNamesContainer fileNames;</div>
<div class=""> fileNames = \
nameGenerator->GetFileNames(seriesIdentifier);</div> <div class=""> \
FileNamesContainer::iterator fileiterator = \
fileNames.begin();</div> <div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class=""> std::cout<<"sono \
qui"<<seriesIdentifier<<std::endl;</div> <div class=""><br class="">
</div>
<div class=""> \
reader->SetFileNames(fileNames);</div> <div class=""><br class="">
</div>
<div class=""> try</div>
<div class=""> {</div>
<div class=""> reader->Update();</div>
<div class=""> }</div>
<div class=""> catch (itk::ExceptionObject \
&ex)</div> <div class=""> {</div>
<div class=""> std::cout << ex << \
std::endl;</div> <div class=""> }</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class=""> const \
ShortImageType::SpacingType& spacing3D = \
reader->GetOutput()->GetSpacing();</div> <div class=""> \
std::cout << "Spacing 3D = " << spacing3D[0] \
<< ", " << spacing3D[1] << ", " << \
spacing3D[2] << std::endl;</div> <div class=""> \
const ShortImageType::PointType origin3D = \
reader->GetOutput()->GetOrigin();</div> <div class=""> \
std::cout << "Origin 3D = " << origin3D[0] \
<< ", " << origin3D[1] << ", " << \
origin3D[2] << std::endl;</div> <div class=""> \
const ShortImageType::SizeType size3D = \
reader->GetOutput()->GetBufferedRegion().GetSize();</div> <div class=""><br \
class=""> </div>
<div class=""> ShortImageType4D::SpacingType \
spacing4D;</div> <div class=""> \
ShortImageType4D::PointType origin4D;</div> <div class=""> \
ShortImageType4D::SizeType size4D;</div> <div class=""><br class="">
</div>
<div class=""> for (int i = 0; i < 3; \
++i){</div> <div class=""> spacing4D[i] = \
spacing3D[i];</div> <div class=""> origin4D[i] = \
origin3D[i];</div> <div class=""> size4D[i] = \
size3D[i];</div> <div class=""> }</div>
<div class=""> </div>
<div class=""> spacing4D[3] = 1;</div>
<div class=""> origin4D[3] = 0;</div>
<div class=""> size4D[3] = timepoints;</div>
<div class=""><br class="">
</div>
<div class=""> ShortImageType4D::IndexType \
start4D;</div> <div class=""> \
start4D.Fill(0);</div> <div class=""><br class="">
</div>
<div class=""> ShortImageType4D::RegionType \
region4D(start4D, size4D);</div> <div class=""><br class="">
</div>
<div class=""> std::cout << "Spacing 4D \
= " << spacing4D[0] << ", " << spacing4D[1] << \
", " << spacing4D[2] << ", " << spacing4D[3] \
<< std::endl;</div> <div class=""> std::cout \
<< "Size 4D = " << size4D[0] << ", " << \
size4D[1] << ", " << size4D[2] << ", " << \
size4D[3] << std::endl;</div> <div class=""> \
image4D->SetRegions(region4D);</div> <div class=""> \
image4D->SetSpacing(spacing4D);</div> <div class=""> \
image4D->SetOrigin(origin4D);</div> <div class=""> \
image4D->Allocate();</div> <div class=""><br class="">
</div>
<div class=""> seriesItr = seriesUID.begin();</div>
<div class=""><br class="">
</div>
<div class=""> typedef \
itk::ImageRegionConstIterator< ShortImageType > Iterator3D;</div> <div \
class=""> typedef itk::ImageRegionIterator< \
ShortImageType4D > Iterator4D;</div> <div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class=""> Iterator4D it4(image4D, \
image4D->GetBufferedRegion());</div> <div class=""> \
it4.GoToBegin();</div> <div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class=""> unsigned short int idx = 0;</div>
<div class=""> while (seriesItr != \
seriesEnd){</div> <div class=""><br class="">
</div>
<div class=""> seriesIdentifier = \
seriesItr->c_str();</div> <div class=""> \
std::cout << "Reading series " << std::endl;</div> <div \
class=""> std::cout << seriesItr->c_str() \
<< std::endl;</div> <div class=""><br class="">
</div>
<div class=""> fileNames = \
nameGenerator->GetFileNames(seriesIdentifier);</div> <div class=""><br class="">
</div>
<div class=""> for(unsigned int fni = 0; \
fni<fileNames.size(); fni++)</div> <div class=""> \
{ std::cout<<"FN \
"<<fileNames[fni]<<std::endl;</div> <div class=""><br class="">
</div>
<div class=""> }</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class=""> \
reader->SetFileNames(fileNames);</div> <div class=""><br class="">
</div>
<div class=""> image3D = \
reader->GetOutput();</div> <div class=""> \
image3D->SetRegions(reader->GetOutput()->GetRequestedRegion());</div> <div \
class=""> \
image3D->CopyInformation(reader->GetOutput());</div> <div class=""> \
image3D->Allocate();</div> <div class=""><br class="">
</div>
<div class=""> std::cout << "reading \
image volume " << idx << std::endl << std::endl;</div> <div \
class=""> try</div> <div class=""> \
{</div> <div class=""> \
reader->Update();</div> <div class=""> }</div>
<div class=""> catch (itk::ExceptionObject \
&ex)</div> <div class=""> {</div>
<div class=""> std::cout << ex << \
std::endl;</div> <div class=""> }</div>
<div class=""><br class="">
</div>
<div class=""> </div>
<div class=""> Iterator3D it3(image3D, \
image3D->GetBufferedRegion());</div> <div class=""> \
it3.GoToBegin();</div> <div class=""><br class="">
</div>
<div class=""> while (!it3.IsAtEnd())</div>
<div class=""> {</div>
<div class=""> it4.Set(it3.Get());</div>
<div class=""> ++it3;</div>
<div class=""> ++it4;</div>
<div class=""> }</div>
<div class=""><br class="">
</div>
<div class=""> // increment iterator</div>
<div class=""> seriesItr++; </div>
<div class=""> idx++;</div>
<div class=""><br class="">
</div>
<div class=""> }</div>
</div>
<div class=""><br class="">
<div>
<blockquote type="cite" class="">
<div class="">On 29 Jul 2017, at 20:58, Andras Lasso <<a \
href="mailto:lasso@queensu.ca" class="">lasso@queensu.ca</a>> wrote:</div> <br \
class="Apple-interchange-newline"> <div class="">
<div class="WordSection1" style="page: WordSection1; font-family: Helvetica; \
font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; \
letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; \
text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; \
-webkit-text-stroke-width: 0px;"> <div style="margin: 0cm 0cm 0.0001pt; font-size: \
11pt; font-family: Calibri, sans-serif;" class=""> Finding out what DICOM fields to \
use for grouping frames is a complex topic. There is no universally accepted \
standard, the field(s) to use depend on scanner manufacturer, imaging modality, and \
imaging protocol.<o:p class=""></o:p></div> <div style="margin: 0cm 0cm 0.0001pt; \
font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p \
class=""> </o:p></div> <div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; \
font-family: Calibri, sans-serif;" class=""> You can have a look at the 4D image \
importer logic in 3D Slicer (what DICOM fields are considered, what heuristics are \
used for automatically detecting special cases, etc):<o:p class=""></o:p></div> <div \
style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" \
class=""> <a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgi \
thub.com%2Ffedorov%2FMultiVolumeImporter%2Fblob%2Fmaster%2FMultiVolumeImporterPlugin.p \
y&data=02%7C01%7Classo%40queensu.ca%7C2c8ee4263d3e4bc7852e08d4d76dcf42%7Cd61ecb3b3 \
8b142d582c4efb2838b925c%7C1%7C0%7C636370314013534944&sdata=TSgfUbldP6g%2ByIXlxlKKTog3wDo95QduwU9YAut52A4%3D&reserved=0" \
style="color: purple; text-decoration: underline;" \
class="">https://github.com/fedorov/MultiVolumeImporter/blob/master/MultiVolumeImporterPlugin.py</a><o:p \
class=""></o:p></div> <div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; \
font-family: Calibri, sans-serif;" class=""> <o:p class=""> </o:p></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, \
sans-serif;" class=""> You may also consider using 3D Slicer for loading DICOM data \
and saving as a 4D nrrd file that you can then easily load into ITK. If you have any \
questions related to this then post it on<span \
class="Apple-converted-space"> </span><a \
href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdiscourse.slice \
r.org%2F&data=02%7C01%7Classo%40queensu.ca%7C2c8ee4263d3e4bc7852e08d4d76dcf42%7Cd6 \
1ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636370314013534944&sdata=RIwlK%2BCGepL9Fd5q4NvhCoZAq6qCe7Uyay1%2FBH%2B8hVA%3D&reserved=0" \
style="color: purple; text-decoration: underline;" \
class="">https://discourse.slicer.org</a>.<o:p class=""></o:p></div> <div \
style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" \
class=""> <o:p class=""> </o:p></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, \
sans-serif;" class=""> Andras<o:p class=""></o:p></div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, \
sans-serif;" class=""> <a name="_MailEndCompose" class=""><o:p \
class=""> </o:p></a></div> <span class=""></span>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, \
sans-serif;" class=""> <b class="">From:</b><span \
class="Apple-converted-space"> </span>Community [<a \
href="mailto:community-bounces@itk.org" \
class="">mailto:community-bounces@itk.org</a>]<span \
class="Apple-converted-space"> </span><b class="">On Behalf Of<span \
class="Apple-converted-space"> </span></b>Lambert Zijp<br class="">
<b class="">Sent:</b><span class="Apple-converted-space"> </span>Saturday, July \
29, 2017 1:38 PM<br class=""> <b class="">To:</b><span \
class="Apple-converted-space"> </span>Sonia Pozzi <<a \
href="mailto:sonia.pozzi89@gmail.com" class="">sonia.pozzi89@gmail.com</a>><br \
class=""> <b class="">Cc:</b><span \
class="Apple-converted-space"> </span>Insight-users <<a \
href="mailto:insight-users@itk.org" class="">insight-users@itk.org</a>><br \
class=""> <b class="">Subject:</b><span \
class="Apple-converted-space"> </span>Re: [ITK] [ITK-users] Siemens 4d data<o:p \
class=""></o:p></div> <div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; \
font-family: Calibri, sans-serif;" class=""> <o:p class=""> </o:p></div>
<div class="">
<div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, \
sans-serif;" class=""> Hi Sonia,<o:p class=""></o:p></div>
<div class="">
<div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, \
sans-serif;" class=""> <o:p class=""> </o:p></div>
</div>
<div class="">
<div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, \
sans-serif;" class=""> Apparently SeriesInstanceUID does not help; sounds familiar. \
Maybe FrameNumber, SeriesNumber or AcquisitionNumber? If not, sorting slices on slice \
coordinate and AcquisitionTime could be done as a last resort. If you post two slices \
with the same coordinate but belonging to different volumes, I will take look \
at it.<o:p class=""></o:p></div> </div>
<div class="">
<div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, \
sans-serif;" class=""> <o:p class=""> </o:p></div>
</div>
<div class="">
<div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, \
sans-serif;" class=""> Greetings, Lambert<o:p class=""></o:p></div>
</div>
</div>
<div class="">
<div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, \
sans-serif;" class=""> <o:p class=""> </o:p></div>
<div class="">
<div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, \
sans-serif;" class=""> On Sat, Jul 29, 2017 at 12:26 AM, Sonia Pozzi <<a \
href="mailto:sonia.pozzi89@gmail.com" target="_blank" style="color: purple; \
text-decoration: underline;" class="">sonia.pozzi89@gmail.com</a>> wrote:<o:p \
class=""></o:p></div> <blockquote style="border-style: none none none solid; \
border-left-color: rgb(204, 204, 204); border-left-width: 1pt; padding: 0cm 0cm 0cm \
6pt; margin-left: 4.8pt; margin-right: 0cm;" class=""> <div style="margin: 0cm 0cm \
0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> Hello,<br \
class=""> <br class="">
I have a set of Siemens series. In each series there is the same slice for different \
times.<br class=""> I would like to be able to reconstruct in itk each single volume \
(a complete volume for every time step).<br class=""> It is a couple of week that I’m \
trying how to do that…<br class=""> I understood that I should use some tag, but I’m \
not sure about which and my code is not working.<br class=""> <br class="">
Could you be so kind to give me a suggestion here?<br class="">
<br class="">
My regards,<br class="">
<br class="">
Sonia<br class="">
_____________________________________<br class="">
Powered by<span class="Apple-converted-space"> </span><a \
href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com& \
amp;data=02%7C01%7Classo%40queensu.ca%7Cb3ff832c055844c3723708d4d6a8952e%7Cd61ecb3b38b \
142d582c4efb2838b925c%7C1%7C0%7C636369466924361221&sdata=reUnVLyhbeksZSU3vfoYkbLsWGY00wLNMS8x06VkMW0%3D&reserved=0" \
target="_blank" style="color: purple; text-decoration: underline;" \
class="">www.kitware.com</a><br class=""> <br class="">
Visit other Kitware open-source projects at<br class="">
<a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.c \
om%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40queensu.ca%7Cb3ff832c0558 \
44c3723708d4d6a8952e%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636369466924361221&sdata=rktVpsgRtuqvnhg1mwUXcYWEnHpZvD4OVUJXYgfmfUE%3D&reserved=0" \
target="_blank" style="color: purple; text-decoration: underline;" \
class="">http://www.kitware.com/opensource/opensource.html</a><br class=""> <br \
class=""> Kitware offers ITK Training Courses, for more information visit:<br \
class=""> <a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww \
.kitware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queensu.ca%7Cb3ff \
832c055844c3723708d4d6a8952e%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636369466924 \
361221&sdata=NPImYVLXkps1zXFWNaMTXI1%2BlG3%2FrVljLn%2F8uvc9WxA%3D&reserved=0" \
target="_blank" style="color: purple; text-decoration: underline;" \
class="">http://www.kitware.com/products/protraining.php</a><br class=""> <br \
class=""> Please keep messages on-topic and check the ITK FAQ at:<br class="">
<a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.itk.org%2 \
FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7Cb3ff832c055844c3723708d4d6a895 \
2e%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636369466924361221&sdata=TOa5cYIKt5uJHlNffUAGiVE%2FxoLeQ42gIVd3PtBJqS4%3D&reserved=0" \
target="_blank" style="color: purple; text-decoration: underline;" \
class="">http://www.itk.org/Wiki/ITK_FAQ</a><br class=""> <br class="">
Follow this link to subscribe/unsubscribe:<br class="">
<a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitwar \
e.com%2Fmailman%2Flistinfo%2Finsight-users&data=02%7C01%7Classo%40queensu.ca%7Cb3f \
f832c055844c3723708d4d6a8952e%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C63636946692 \
4361221&sdata=uZ%2F6Ap%2BSbMzWJ4WU8Bu11x4Oui8T8NNQn8vzevtAC6M%3D&reserved=0" \
target="_blank" style="color: purple; text-decoration: underline;" \
class="">http://public.kitware.com/mailman/listinfo/insight-users</a><o:p \
class=""></o:p></div> </blockquote>
</div>
<div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, \
sans-serif;" class=""> <o:p class=""> </o:p></div>
</div>
</div>
<span style="font-family: Helvetica; font-size: 12px; font-style: normal; \
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: \
auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; \
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; \
display: inline !important;" class="">_____________________________________</span><br \
style="font-family: Helvetica; font-size: 12px; font-style: normal; \
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: \
auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; \
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""> <span \
style="font-family: Helvetica; font-size: 12px; font-style: normal; \
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: \
auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; \
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; \
display: inline !important;" class="">Powered by <a \
href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com& \
amp;data=02%7C01%7Classo%40queensu.ca%7C2c8ee4263d3e4bc7852e08d4d76dcf42%7Cd61ecb3b38b \
142d582c4efb2838b925c%7C1%7C0%7C636370314013534944&sdata=%2FhTw0WuqtTkVin7lYS0mgP8TU4xTdMzcb2rpacH3LLE%3D&reserved=0" \
class=""> www.kitware.com</a></span><br style="font-family: Helvetica; font-size: \
12px; font-style: normal; font-variant-caps: normal; font-weight: normal; \
letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; \
text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; \
-webkit-text-stroke-width: 0px;" class=""> <br style="font-family: Helvetica; \
font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; \
letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; \
text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; \
-webkit-text-stroke-width: 0px;" class=""> <span style="font-family: Helvetica; \
font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; \
letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; \
text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; \
-webkit-text-stroke-width: 0px; float: none; display: inline !important;" \
class="">Visit other Kitware open-source projects at</span><br style="font-family: \
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; \
font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; \
text-indent: 0px; text-transform: none; white-space: normal; widows: auto; \
word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""> <span \
style="font-family: Helvetica; font-size: 12px; font-style: normal; \
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: \
auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; \
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; \
display: inline !important;" class=""><a \
href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com% \
2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40queensu.ca%7C2c8ee4263d3e4bc \
7852e08d4d76dcf42%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636370314013534944&sdata=mNaYG7f%2B8HfPpq4nIoISipMyKPpeO7jst6ENNFt9%2Bes%3D&reserved=0" \
class="">http://www.kitware.com/opensource/opensource.html</a></span><br \
style="font-family: Helvetica; font-size: 12px; font-style: normal; \
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: \
auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; \
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""> <br \
style="font-family: Helvetica; font-size: 12px; font-style: normal; \
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: \
auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; \
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""> <span \
style="font-family: Helvetica; font-size: 12px; font-style: normal; \
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: \
auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; \
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; \
display: inline !important;" class="">Kitware offers ITK Training Courses, for more \
information visit:</span><br style="font-family: Helvetica; font-size: 12px; \
font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: \
normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; \
white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: \
0px;" class=""> <span style="font-family: Helvetica; font-size: 12px; font-style: \
normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; \
orphans: auto; text-align: start; text-indent: 0px; text-transform: none; \
white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; \
float: none; display: inline !important;" class=""><a \
href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com% \
2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queensu.ca%7C2c8ee4263d3e4bc78 \
52e08d4d76dcf42%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636370314013534944&sdata=sRN31UAYKK9OWn7tw%2BBHiZkBEg6AMoFv7gS%2ByQfWIxE%3D&reserved=0" \
class="">http://www.kitware.com/products/protraining.php</a></span><br \
style="font-family: Helvetica; font-size: 12px; font-style: normal; \
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: \
auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; \
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""> <br \
style="font-family: Helvetica; font-size: 12px; font-style: normal; \
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: \
auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; \
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""> <span \
style="font-family: Helvetica; font-size: 12px; font-style: normal; \
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: \
auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; \
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; \
display: inline !important;" class="">Please keep messages on-topic and check the \
ITK FAQ at:</span><br style="font-family: Helvetica; font-size: 12px; font-style: \
normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; \
orphans: auto; text-align: start; text-indent: 0px; text-transform: none; \
white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: \
0px;" class=""> <span style="font-family: Helvetica; font-size: 12px; font-style: \
normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; \
orphans: auto; text-align: start; text-indent: 0px; text-transform: none; \
white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; \
float: none; display: inline !important;" class=""><a \
href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.itk.org%2FWi \
ki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C2c8ee4263d3e4bc7852e08d4d76dcf42% \
7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636370314013534944&sdata=x%2B0%2BTk9MXpDkB588kVo4IG00bwkrtHzLiYOr%2Ftgrd1g%3D&reserved=0" \
class="">http://www.itk.org/Wiki/ITK_FAQ</a></span><br style="font-family: Helvetica; \
font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; \
letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; \
text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; \
-webkit-text-stroke-width: 0px;" class=""> <br style="font-family: Helvetica; \
font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; \
letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; \
text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; \
-webkit-text-stroke-width: 0px;" class=""> <span style="font-family: Helvetica; \
font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; \
letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; \
text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; \
-webkit-text-stroke-width: 0px; float: none; display: inline !important;" \
class="">Follow this link to subscribe/unsubscribe:</span><br style="font-family: \
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; \
font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; \
text-indent: 0px; text-transform: none; white-space: normal; widows: auto; \
word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""> <span \
style="font-family: Helvetica; font-size: 12px; font-style: normal; \
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: \
auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; \
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; \
display: inline !important;" class=""><a \
href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.c \
om%2Fmailman%2Flistinfo%2Finsight-users&data=02%7C01%7Classo%40queensu.ca%7C2c8ee4 \
263d3e4bc7852e08d4d76dcf42%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636370314013534944&sdata=6Btol9UmUL7G6k4xXuLYwxbMtV%2FJM7uCtiNkKyBeqf8%3D&reserved=0" \
class="">http://public.kitware.com/mailman/listinfo/insight-users</a></span></div> \
</blockquote> </div>
<br class="">
</div>
</div>
</body>
</html>
_____________________________________
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
--===============1065957473==--
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic