[Insight-users] get the maximum pixel value using GetPixel() for 3D image
john smith
mkitkinsightuser at gmail.com
Tue Jun 7 09:27:25 EDT 2011
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:
ReaderType::Pointer reader = ReaderType::New();
reader->SetFileName( fileName.toStdString() );
reader->Update();
InputImageType::RegionType inputRegion =
reader->GetOutput()->GetLargestPossibleRegion();
//typedef itk::Image< short, 3 > InputImageType;
InputImageType::Pointer image = reader->GetOutput();
InputImageType::IndexType start;
InputImageType::SizeType size;
// get the size of the hole 3D image
size_x = size[0];
size_y = size[1];
size_z = size[2];
start[0] = 0; // first index on X
start[1] = 0; // first index on Y
start[2] = 0; // first index on Z
InputImageType::RegionType region;
region.SetSize( size );
region.SetIndex( start );
// Pixel data is allocated
image->SetRegions( region );
image->Allocate();
int i,j,k;
int max_value=0;
for ( i=0;i<size_x;i++) {
for ( j=0;i<size_y;j++){
for ( k=0;i<size_z;k++){
InputImageType::IndexType pixelIndex;
pixelIndex[0] = i; // x position
pixelIndex[1] = j; // y position
pixelIndex[2] = k; // z position
InputImageType::PixelType pixelValue = image->GetPixel(
pixelIndex );
if(pixelValue>max_value){max_value=pixelValue;}
}
}
}
ui->label_22->setText(QString("maximum_value_raw%1").arg(max_value));
2011/6/7 robert tamburo <robert.tamburo at gmail.com>
> GetPixel() belongs to itkImage, not the reader. Try
> reader->GetOutput()->GetPixel(index).
>
> 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.
>
> There are examples on how to use each class at
> http://www.itk.org/Wiki/ITK/Examples
>
> <http://www.itk.org/Wiki/ITK/Examples>
>
> On Tue, Jun 7, 2011 at 8:36 AM, john smith <mkitkinsightuser at gmail.com>wrote:
>
>> Hello,
>>
>> 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()?
>>
>> Thanks
>>
>> typedef short InputPixelType;
>> const unsigned int Dimension = 3;
>>
>> typedef itk::Image< InputPixelType, Dimension > InputImageType;
>> typedef itk::ImageFileReader< InputImageType > ReaderType;
>>
>>
>> ReaderType::Pointer reader = ReaderType::New();
>>
>> reader->SetFileName( fileName.toStdString() );
>> reader->Update();
>>
>> InputImageType::RegionType inputRegion =
>> reader->GetOutput()->GetLargestPossibleRegion();
>>
>> InputImageType::SizeType size = inputRegion.GetSize();
>>
>> // get the size of the hole 3D image
>> size_x = size[0];
>> size_y = size[1];
>> size_z = size[2];
>>
>> InputImageType::IndexType start = inputRegion.GetIndex();
>> start[0] = 0; // first index on X
>> start[1] = 0; // first index on Y
>> start[2] = 0; // first index on Z
>>
>> int i,j,k;
>> int max_value=0;
>> for ( i=0;i<size_x;i++) {
>> for ( j=0;i<size_y;j++){
>> for ( k=0;i<size_z;k++){
>>
>> InputImageType::IndexType pixelIndex;
>> pixelIndex[0] = i; // x position
>> pixelIndex[1] = j; // y position
>> pixelIndex[2] = k; // z position
>>
>> InputImageType::PixelType pixelValue = reader->GetPixel(
>> pixelIndex );
>>
>> if(pixelValue>max_value){max_value=pixelValue;}
>>
>> }
>> }
>> }
>>
>> _____________________________________
>>
>> 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.html
>>
>> 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://www.itk.org/mailman/listinfo/insight-users
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20110607/4f808377/attachment.htm>
More information about the Insight-users
mailing list