Image Region Intersection#

Synopsis#

This example demonstrates how to check if two regions of an image overlap/intersect.

Results#

Output:

Small inside region is 1
Small outside region is 0
Small overlap region is 0

Code#

C++#

#include "itkImage.h"

int
main()
{
  constexpr unsigned int Dimension = 2;
  using PixelType = unsigned char;

  using ImageType = itk::Image<PixelType, Dimension>;

  // Big region
  ImageType::RegionType bigRegion;

  ImageType::SizeType bigSize;
  bigSize[0] = 100;
  bigSize[1] = 100;

  ImageType::IndexType bigStart;
  bigStart[0] = 0;
  bigStart[1] = 0;

  bigRegion.SetSize(bigSize);
  bigRegion.SetIndex(bigStart);

  // Small inside region
  ImageType::RegionType smallInsideRegion;

  ImageType::SizeType smallInsideSize;
  smallInsideSize[0] = 10;
  smallInsideSize[1] = 10;

  ImageType::IndexType smallInsideStart;
  smallInsideStart[0] = 50;
  smallInsideStart[1] = 50;

  smallInsideRegion.SetSize(smallInsideSize);
  smallInsideRegion.SetIndex(smallInsideStart);

  std::cout << "Small inside region is " << bigRegion.IsInside(smallInsideRegion) << std::endl;

  // Small outside region
  ImageType::RegionType smallOutsideRegion;

  ImageType::SizeType smallOutsideSize;
  smallOutsideSize[0] = 10;
  smallOutsideSize[1] = 10;

  ImageType::IndexType smallOutsideStart;
  smallOutsideStart[0] = 110;
  smallOutsideStart[1] = 110;

  smallOutsideRegion.SetSize(smallOutsideSize);
  smallOutsideRegion.SetIndex(smallOutsideStart);

  std::cout << "Small outside region is " << bigRegion.IsInside(smallOutsideRegion) << std::endl;

  // Small overlap region
  ImageType::RegionType smallOverlapRegion;

  ImageType::SizeType smallOverlapSize;
  smallOverlapSize[0] = 10;
  smallOverlapSize[1] = 10;

  ImageType::IndexType smallOverlapStart;
  smallOverlapStart[0] = 97;
  smallOverlapStart[1] = 97;

  smallOverlapRegion.SetSize(smallOverlapSize);
  smallOverlapRegion.SetIndex(smallOverlapStart);

  std::cout << "Small overlap region is " << bigRegion.IsInside(smallOverlapRegion) << std::endl;

  return EXIT_SUCCESS;
}

Classes demonstrated#

template<unsigned int VImageDimension>
class ImageRegion : public itk::Region

An image region represents a structured region of data.

ImageRegion is an class that represents some structured portion or piece of an Image. The ImageRegion is represented with an index and a size in each of the n-dimensions of the image. (The index is the corner of the image, the size is the lengths of the image in each of the topological directions.)

See

Region

See

Index

See

Size

See

MeshRegion

ITK Sphinx Examples:

See itk::ImageRegion for additional documentation.