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));<br><br><div class="gmail_quote">2011/6/7 robert tamburo <span dir="ltr"><<a href="mailto:robert.tamburo@gmail.com">robert.tamburo@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">GetPixel() belongs to itkImage, not the reader. Try reader->GetOutput()->GetPixel(index). <div>
<br></div><div>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.</div>
<div><br></div><div>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></div><div><br></div><div><a href="http://www.itk.org/Wiki/ITK/Examples" target="_blank"></a><br>
<br><div class="gmail_quote"><div><div></div><div class="h5">On Tue, Jun 7, 2011 at 8:36 AM, john smith <span dir="ltr"><<a href="mailto:mkitkinsightuser@gmail.com" target="_blank">mkitkinsightuser@gmail.com</a>></span> wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div><div></div><div class="h5">
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> }<br>
<br></div></div>_____________________________________<div class="im"><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><br>
<br></div></blockquote></div><br></div>
</blockquote></div><br>