<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (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;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.Section1
        {page:Section1;}
-->
</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=NL link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Hi,<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Your size_x, size_y and size_z are not representing the actual size
of the image.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Add:<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>size = inputRegion->GetSize();<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Before <o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>size_x = …<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>size_y = …<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>size_z = …<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>I would however also suggest to use an imageIterator.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Regards,<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Brecht Heyde<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>
<p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:
"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;
font-family:"Tahoma","sans-serif"'> insight-users-bounces@itk.org
[mailto:insight-users-bounces@itk.org] <b>On Behalf Of </b>john smith<br>
<b>Sent:</b> dinsdag 7 juni 2011 15:27<br>
<b>To:</b> robert tamburo; insight-users@itk.org<br>
<b>Subject:</b> Re: [Insight-users] get the maximum pixel value using
GetPixel() for 3D image<o:p></o:p></span></p>
</div>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal style='margin-bottom:12.0pt'>Thanks for your reply.I have
used the MinimumMaximumImageCalculator, but know I want to take the result
playing with the raw data.But I am trying to do that without using iterators,
just with using for loop. I have added the largest possible area from reader,
but when I am debuging my code, it seems that I cannot get inside the loop. Do
you know why? Here is my code:<br>
<br>
ReaderType::Pointer reader = ReaderType::New();<br>
<br>
reader->SetFileName( fileName.toStdString()
);<br>
reader->Update();<br>
<br>
InputImageType::RegionType inputRegion =<br>
reader->GetOutput()->GetLargestPossibleRegion();<br>
<br>
<br>
//typedef itk::Image< short, 3 > InputImageType;<br>
<br>
InputImageType::Pointer image =
reader->GetOutput();<br>
<br>
<br>
<br>
InputImageType::IndexType start;<br>
InputImageType::SizeType size;<br>
<br>
// get the size of the hole 3D image<br>
size_x = size[0];<br>
size_y = size[1];<br>
size_z = size[2];<br>
<br>
start[0] = 0; // first index on X<br>
start[1] = 0; // first index on Y<br>
start[2] = 0; // first index on Z<br>
<br>
InputImageType::RegionType region;<br>
region.SetSize( size );<br>
region.SetIndex( start );<br>
<br>
// Pixel data is allocated<br>
image->SetRegions( region );<br>
image->Allocate();<br>
<br>
int i,j,k;<br>
int max_value=0;<br>
<br>
for ( i=0;i<size_x;i++) {<br>
for ( j=0;i<size_y;j++){<br>
for ( k=0;i<size_z;k++){<br>
<br>
InputImageType::IndexType pixelIndex;<br>
pixelIndex[0] = i; // x position<br>
pixelIndex[1] = j; // y position<br>
pixelIndex[2] = k; // z position<br>
<br>
InputImageType::PixelType pixelValue = image->GetPixel( pixelIndex );<br>
<br>
if(pixelValue>max_value){max_value=pixelValue;}<br>
<br>
}<br>
}<br>
}<br>
<br>
ui->label_22->setText(QString("maximum_value_raw%1").arg(max_value));<o:p></o:p></p>
<div>
<p class=MsoNormal>2011/6/7 robert tamburo <<a
href="mailto:robert.tamburo@gmail.com">robert.tamburo@gmail.com</a>><o:p></o:p></p>
<p class=MsoNormal>GetPixel() belongs to itkImage, not the reader. Try
reader->GetOutput()->GetPixel(index). <o:p></o:p></p>
<div>
<p class=MsoNormal><o:p> </o:p></p>
</div>
<div>
<p class=MsoNormal>Two other things: 1) You may want to consider using an
ImageRegionIterator instead of for loops, and 2) You can use the
MinimumMaximumImageCalculator to get the maximum intensity in an image.<o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><o:p> </o:p></p>
</div>
<div>
<p class=MsoNormal>There are examples on how to use each class at <a
href="http://www.itk.org/Wiki/ITK/Examples" target="_blank">http://www.itk.org/Wiki/ITK/Examples</a><o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><o:p> </o:p></p>
</div>
<div>
<p class=MsoNormal style='margin-bottom:12.0pt'><o:p> </o:p></p>
<div>
<div>
<div>
<p class=MsoNormal>On Tue, Jun 7, 2011 at 8:36 AM, john smith <<a
href="mailto:mkitkinsightuser@gmail.com" target="_blank">mkitkinsightuser@gmail.com</a>>
wrote:<o:p></o:p></p>
</div>
</div>
<blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;
margin-left:4.8pt;margin-right:0cm'>
<div>
<div>
<p class=MsoNormal style='margin-bottom:12.0pt'>Hello,<br>
<br>
I am trying to find the maximum pixel value of a 3D image, and I am using
the GetPixel method with 3 loops.I want to load my image from a file so I
created a reader pointer.Does this pointer include the raw data of my image? I
have created the following code but I get an error: GetPixel() method is not a
member of reader. Could somebody tell me what I am doing wrong? How I could
find the maximum pixel value of a loaded image with the method of GetPixel()?<br>
<br>
Thanks<br>
<br>
typedef
short
InputPixelType;<br>
const unsigned int
Dimension = 3;<br>
<br>
typedef itk::Image< InputPixelType, Dimension
> InputImageType;<br>
typedef itk::ImageFileReader< InputImageType >
ReaderType;<br>
<br>
<br>
ReaderType::Pointer reader = ReaderType::New();<br>
<br>
reader->SetFileName( fileName.toStdString()
);<br>
reader->Update();<br>
<br>
InputImageType::RegionType inputRegion =<br>
reader->GetOutput()->GetLargestPossibleRegion();<br>
<br>
InputImageType::SizeType size = inputRegion.GetSize();<br>
<br>
// get the size of the hole 3D image<br>
size_x = size[0];<br>
size_y = size[1];<br>
size_z = size[2];<br>
<br>
InputImageType::IndexType start = inputRegion.GetIndex();<br>
start[0] = 0; // first index on X<br>
start[1] = 0; // first index on Y<br>
start[2] = 0; // first index on Z<br>
<br>
int i,j,k;<br>
int max_value=0;<br>
for ( i=0;i<size_x;i++) {<br>
for ( j=0;i<size_y;j++){<br>
for ( k=0;i<size_z;k++){<br>
<br>
InputImageType::IndexType
pixelIndex;<br>
pixelIndex[0] = i; // x position<br>
pixelIndex[1] = j; // y position<br>
pixelIndex[2] = k; // z position<br>
<br>
InputImageType::PixelType pixelValue = reader->GetPixel( pixelIndex );<br>
<br>
if(pixelValue>max_value){max_value=pixelValue;}<br>
<br>
}<br>
}<br>
}<o:p></o:p></p>
</div>
</div>
<p class=MsoNormal>_____________________________________<o:p></o:p></p>
<div>
<p class=MsoNormal style='margin-bottom:12.0pt'><br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at<br>
<a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Kitware offers ITK Training Courses, for more information visit:<br>
<a href="http://www.kitware.com/products/protraining.html" target="_blank">http://www.kitware.com/products/protraining.html</a><br>
<br>
Please keep messages on-topic and check the ITK FAQ at:<br>
<a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><o:p></o:p></p>
</div>
</blockquote>
</div>
<p class=MsoNormal><o:p> </o:p></p>
</div>
</div>
<p class=MsoNormal><o:p> </o:p></p>
</div>
</body>
</html>