[Insight-users] RegionOfInterestImageFilter Question
David Doria
daviddoria at gmail.com
Sat May 26 08:32:25 EDT 2012
On Sat, May 26, 2012 at 7:57 AM, alex Dowson <alexdowson at hotmail.com> wrote:
>
> Dear David
>
> Please see the attached code with create image function and some cleanup.
>
> Alex
Here is the minimal example you should have been going for :)
#include "itkImage.h"
#include "itkRegionOfInterestImageFilter.h"
// Setup types
typedef itk::Image<double, 2> ImageType;
void CreateImage(ImageType::Pointer image)
{
// Create a black image with a white square
ImageType::IndexType start = {{-50, -40}};
ImageType::SizeType size;
size.Fill(582);
ImageType::RegionType region(start,size);
image->SetRegions(region);
image->Allocate();
image->FillBuffer(0);
}
int main( int argc, char *argv[] )
{
ImageType::Pointer image = ImageType::New();
CreateImage(image);
typedef itk::RegionOfInterestImageFilter< ImageType,ImageType> RoiCropType;
RoiCropType::Pointer roiCropFilter = RoiCropType::New();
roiCropFilter->SetInput(image);
ImageType::IndexType index;
index[0] = 15;
index[1] = 0;
ImageType::SizeType size;
size[0] = 553;
size[1] = 582;
ImageType::RegionType roi;
roi.SetIndex(index);
roi.SetSize(size);
roiCropFilter->SetRegionOfInterest(roi);
roiCropFilter->Update();
return EXIT_SUCCESS;
}
Now that I look again:
Index : [ –50,-40] Size : [582,582]
ROI Size :
Index : [15,0] Size: [ 553,582]
the max index of your image is (-50 + 582, -40 + 582) = (532, 542).
You are requesting all the way to (15 + 553, 0 + 582) = (568, 582).
Note that both components are past your image!
David
More information about the Insight-users
mailing list