<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:v =
"urn:schemas-microsoft-com:vml" xmlns:o =
"urn:schemas-microsoft-com:office:office" xmlns:w =
"urn:schemas-microsoft-com:office:word" xmlns:x =
"urn:schemas-microsoft-com:office:excel" xmlns:p =
"urn:schemas-microsoft-com:office:powerpoint" xmlns:a =
"urn:schemas-microsoft-com:office:access" xmlns:dt =
"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s =
"uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs =
"urn:schemas-microsoft-com:rowset" xmlns:z = "#RowsetSchema" xmlns:b =
"urn:schemas-microsoft-com:office:publisher" xmlns:ss =
"urn:schemas-microsoft-com:office:spreadsheet" xmlns:c =
"urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc =
"urn:schemas-microsoft-com:office:odc" xmlns:oa =
"urn:schemas-microsoft-com:office:activation" xmlns:html =
"http://www.w3.org/TR/REC-html40" xmlns:q =
"http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc =
"http://microsoft.com/officenet/conferencing" XMLNS:D = "DAV:" XMLNS:Repl =
"http://schemas.microsoft.com/repl/" xmlns:mt =
"http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2 =
"http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda =
"http://www.passport.com/NameSpace.xsd" xmlns:ois =
"http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir =
"http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds =
"http://www.w3.org/2000/09/xmldsig#" xmlns:dsp =
"http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc =
"http://schemas.microsoft.com/data/udc" xmlns:xsd =
"http://www.w3.org/2001/XMLSchema" xmlns:sub =
"http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec =
"http://www.w3.org/2001/04/xmlenc#" xmlns:sp =
"http://schemas.microsoft.com/sharepoint/" xmlns:sps =
"http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi =
"http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs =
"http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf =
"http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p =
"http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf =
"http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss =
"http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi =
"http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi =
"http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver =
"http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m =
"http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels =
"http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp =
"http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t =
"http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m =
"http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl =
"http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl =
"http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService"
XMLNS:Z = "urn:schemas-microsoft-com:" xmlns:st = ""><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.5512" name=GENERATOR>
<STYLE>@font-face {
        font-family: Calibri;
}
@font-face {
        font-family: Malgun Gothic;
}
@font-face {
        font-family: NSimSun;
}
@font-face {
        font-family: NSimSun;
}
@font-face {
        font-family: @Malgun Gothic;
}
@page WordSection1 {size: 8.5in 11.0in; margin: 1.0in 1.25in 1.0in 1.25in; }
P.MsoNormal {
        FONT-SIZE: 11pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"
}
LI.MsoNormal {
        FONT-SIZE: 11pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"
}
DIV.MsoNormal {
        FONT-SIZE: 11pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99
}
A:visited {
        COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.MsoHyperlinkFollowed {
        COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.EmailStyle17 {
        COLOR: windowtext; FONT-FAMILY: "Calibri","sans-serif"; mso-style-type: personal-compose
}
.MsoChpDefault {
        mso-style-type: export-only
}
DIV.WordSection1 {
        page: WordSection1
}
</STYLE>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></HEAD>
<BODY lang=EN-US vLink=purple link=blue bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hi</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>If you wish you can look MITK project
which doing that you want. But project is bigger you have look at code around
it. It is opensource and based on VTK and ITK.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2><A
href="http://www.mitk.org/wiki">http://www.mitk.org/wiki</A></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<BLOCKQUOTE
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=yxp233@postech.ac.kr href="mailto:yxp233@postech.ac.kr">Xiaopeng
Yang</A> </DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A title=vtkusers@vtk.org
href="mailto:vtkusers@vtk.org">vtkusers@vtk.org</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Friday, July 02, 2010 10:54
AM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> [vtkusers] A series of DICOM
images loading</DIV>
<DIV><BR></DIV>
<DIV class=WordSection1>
<P class=MsoNormal>Dear All,<o:p></o:p></P>
<P class=MsoNormal><o:p> </o:p></P>
<P class=MsoNormal>I have succeeded in loading a series of DICOM images and
visualized them by VTK. However, I can just see the last DICOM file. What I
want is that through controlling the scroll of the mouse, I can navigate from
one slice to another slice. Does anybody know how to fulfill the
goal?<o:p></o:p></P>
<P class=MsoNormal><o:p> </o:p></P>
<P class=MsoNormal>Attached please find my code.<o:p></o:p></P>
<P class=MsoNormal><o:p> </o:p></P>
<P class=MsoNormal>Thank you.<o:p></o:p></P>
<P class=MsoNormal>Xiaopeng<o:p></o:p></P>
<P class=MsoNormal><o:p> </o:p></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
<SPAN style="COLOR: blue">typedef</SPAN> <SPAN
style="COLOR: blue">signed</SPAN> <SPAN
style="COLOR: blue">short</SPAN>
PixelType;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
<SPAN style="COLOR: blue">const</SPAN> <SPAN
style="COLOR: blue">unsigned</SPAN> <SPAN
style="COLOR: blue">int</SPAN> Dimension =
3;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun"><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
<SPAN style="COLOR: blue">typedef</SPAN> itk::OrientedImage< PixelType,
Dimension >
ImageType;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun"><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
<SPAN style="COLOR: blue">typedef</SPAN> itk::ImageSeriesReader< ImageType
>
ReaderType;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
ReaderType::Pointer reader = ReaderType::New();<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun"><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
<SPAN style="COLOR: blue">typedef</SPAN>
itk::GDCMImageIO
ImageIOType;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
ImageIOType::Pointer dicomIO = ImageIOType::New();<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
reader->SetImageIO( dicomIO );<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun"><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
<SPAN style="COLOR: blue">typedef</SPAN> itk::GDCMSeriesFileNames
NamesGeneratorType;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
NamesGeneratorType::Pointer nameGenerator =
NamesGeneratorType::New();<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun"><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
nameGenerator->SetUseSeriesDetails( <SPAN style="COLOR: blue">true</SPAN>
);<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
nameGenerator->AddSeriesRestriction(<SPAN
style="COLOR: #a31515">"0008|0021"</SPAN> );<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun"><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
nameGenerator->SetDirectory( <SPAN style="COLOR: #a31515">"F:/Documents and
Settings/Xiaopeng/Desktop/Patient (Pai Sang Pu)/Output/Difussion"</SPAN>
);<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun"><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
<SPAN style="COLOR: blue">typedef</SPAN> std::vector< std::string
> SeriesIdContainer;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
<SPAN style="COLOR: blue">const</SPAN> SeriesIdContainer & seriesUID =
nameGenerator->GetSeriesUIDs();<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
SeriesIdContainer::const_iterator seriesItr =
seriesUID.begin();<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
SeriesIdContainer::const_iterator seriesEnd =
seriesUID.end();<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
<SPAN style="COLOR: blue">while</SPAN>( seriesItr != seriesEnd
)<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
{<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun"> std::cout
<< seriesItr->c_str() << std::endl;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
seriesItr++;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
}<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
std::string seriesIdentifier;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
seriesIdentifier = seriesUID.begin()->c_str();<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun"><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
<SPAN style="COLOR: blue">typedef</SPAN> std::vector< std::string
> FileNamesContainer;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
FileNamesContainer fileNames;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun"><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
fileNames = nameGenerator->GetFileNames( seriesIdentifier
);<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun"><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
reader->SetFileNames( fileNames );<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun"><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
<SPAN style="COLOR: blue">typedef</SPAN>
itk::ImageToVTKImageFilter<ImageType>FilterType;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
FilterType::Pointer connector = FilterType::New();<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun"><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
<SPAN style="COLOR: blue">try<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
{<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
reader->Update();<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
}<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
<SPAN style="COLOR: blue">catch</SPAN> (itk::ExceptionObject
&ex)<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
{<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun"> std::cout
<< ex << std::endl;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun"> <SPAN
style="COLOR: blue">return</SPAN> EXIT_FAILURE;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
}<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun"><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
connector->SetInput(reader->GetOutput());<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun"><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
vtkImageViewer *viewer = vtkImageViewer::New();<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
vtkRenderWindowInteractor *renderWindowInteractor =
vtkRenderWindowInteractor::New();<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun"><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
viewer->SetupInteractor(renderWindowInteractor);<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
viewer->SetInput(connector->GetOutput());<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
viewer->Render();<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
viewer->SetColorWindow(255);<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
viewer->SetColorLevel(128);<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun"><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: NSimSun">
renderWindowInteractor->Start();</SPAN><o:p></o:p></P></DIV>
<P>
<HR>
<P></P>_______________________________________________<BR>Powered by
www.kitware.com<BR><BR>Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html<BR><BR>Please keep messages
on-topic and check the VTK FAQ at:
http://www.vtk.org/Wiki/VTK_FAQ<BR><BR>Follow this link to
subscribe/unsubscribe:<BR>http://www.vtk.org/mailman/listinfo/vtkusers<BR></BLOCKQUOTE></BODY></HTML>