21#ifndef mia_3d_image_hh
22#define mia_3d_image_hh
74 typedef std::shared_ptr<C3DImage >
Pointer;
87 virtual size_t size()
const = 0;
270 const_reference
operator()(
size_t x,
size_t y,
size_t z)
const
272 return m_image(x, y, z);
278 return m_image(x, y, z);
284 return m_image(l.
x, l.
y, l.
z);
290 return m_image(l.
x, l.
y, l.
z);
296 return m_image.begin();
302 return m_image.end();
308 return m_image.begin_range(begin, end);
314 return m_image.end_range(begin, end);
320 return m_image.begin_range(begin, end);
326 return m_image.end_range(begin, end);
333 return m_image.begin_range_with_boundary_flags(begin, end);
339 return m_image.end_range_with_boundary_flags(begin, end);
347 return m_image.begin_range_with_boundary_flags(begin, end);
353 return m_image.end_range_with_boundary_flags(begin, end);
362 return m_image.begin();
368 return m_image.end();
372 const_iterator
begin_at(
size_t x,
size_t y,
size_t z)
const
374 return m_image.begin_at(x, y, z);
380 return m_image.begin_at(x, y, z);
409 return m_image.template get_gradient<float>(index);
441 template <
typename T>
457 return filter(*
this, image);
468 return filter(*
this, *image);
533 typedef __bind_all<T3DImage> Derived;
std::shared_ptr< C3DImageSeries > P3DImageSeries
T3DImage< int64_t > C3DSLImage
3D image with signed 64 bit integer values
FConvert3DImageToPixeltypeO< float > FCopy3DImageToFloatRepn
short name for 3DImage to float pixel repn copy functor
T3DImage< uint16_t > C3DUSImage
3D image with unsigned 16 bit integer values
T3DImage< uint8_t > C3DUBImage
3D image with unsigned 8 bit integer values
T3DImage< int32_t > C3DSIImage
3D image with signed 32 bit integer values
T3DImage< float > C3DFImage
3D image with signed 32 bit floating point values
T3DImage< uint64_t > C3DULImage
3D image with unsigned 64 bit integer values
std::vector< P3DImage > C3DImageSeries
helper type for image series
T3DImage< double > C3DDImage
3D image with signed 64 bit floating point values
T3DImage< bool > C3DBitImage
3D image with binary values
T3DImage< int16_t > C3DSSImage
3D image with signed 16 bit integer values
T3DImage< int8_t > C3DSBImage
3D image with signed 8 bit integer values
T3DImage< uint32_t > C3DUIImage
3D image with unsigned 32 bit integer values
C3DImage::Pointer P3DImage
define a shortcut to the 3D image shared pointer.
a 3D field of floating point single accuracy 3D vectors
The generic base type of a 3D image.
virtual std::pair< double, double > get_minmax_intensity() const =0
static const char * data_descr
data type description for the plug-in path component
C3DRotation get_rotation() const
E3DImageOrientation get_orientation() const
C3DFVector get_voxel_size() const
void set_voxel_size(const C3DFVector &voxel)
set the voxel size on world units
void set_rotation(const C3DRotation &voxel)
set the rotation about the origin of the image
EPixelType get_pixel_type() const
void set_orientation(E3DImageOrientation orient)
C3DImage(EPixelType type)
virtual Pointer clone() const =0
virtual const C3DBounds & get_size() const =0
std::shared_ptr< C3DImage > Pointer
Pointer type of the image.
void set_origin(const C3DFVector &voxel)
set the origin i.e. world units of the pixel at (0,0,0)
C3DImage(const CAttributedData &data, EPixelType type)
C3DFVector get_origin() const
virtual size_t size() const =0
C3DBounds dimsize_type
generic type for the dimension of the image
C3DImage()
standard constructor
A collection of attributes.
CAttributedData & operator=(const CAttributedData &org)
Assignemt operator.
::std::vector< typename __holder_type_dispatch< T >::type > data_array
type for the flat reprentation of the 2D data field
This is the template version of a 2D image that is used for holding real data.
A templated class of a 3D data field.
Specific type of the 3D images that hold real pixel data.
void put_data_line_z(int x, int y, const std::vector< T > &buffer)
void put_data_line_y(int x, int z, const std::vector< T > &buffer)
void put_data_line_x(int y, int z, const std::vector< T > &buffer)
void put_data_plane_xy(size_t z, const T2DImage< T > &p)
forwarding function to access the underlying T3DDatafield
const_range_iterator begin_range(const C3DBounds &begin, const C3DBounds &end) const
forwarding function to access the specified range of the underlying T3DDatafield
void get_data_line_y(int x, int z, std::vector< T > &buffer) const
void get_data_line_z(int x, int y, std::vector< T > &buffer) const
range_iterator begin_range(const C3DBounds &begin, const C3DBounds &end)
forwarding function to access the specified range of the underlying T3DDatafield
const_iterator begin() const
constant iterator
const_range_iterator end_range(const C3DBounds &begin, const C3DBounds &end) const
forwarding function to access the specified range of the underlying T3DDatafield
iterator begin()
read/write iterator, issues copy-on-write
T2DImage< T > get_data_plane_xz(size_t y) const
forwarding function to access the underlying T3DDatafield
T3DImage(const C3DBounds &size, const T *init_data)
const_iterator begin_at(size_t x, size_t y, size_t z) const
constant iterator starting at the given location
reference operator()(const C3DBounds &l)
element access operator - read/write
T3DImage(const C3DBounds &size, const data_array &init_data)
T2DImage< T > get_data_plane_xy(size_t z) const
forwarding function to access the underlying T3DDatafield
T3DImage(const T3DImage< T > &orig)
const_range_iterator_with_boundary_flag begin_range_with_boundary_flags(const C3DBounds &begin, const C3DBounds &end) const
range_iterator_with_boundary_flag begin_range_with_boundary_flags(const C3DBounds &begin, const C3DBounds &end)
range_iterator end_range(const C3DBounds &begin, const C3DBounds &end)
forwarding function to access the specified range of the underlying T3DDatafield
virtual const C3DBounds & get_size() const
reference operator[](int i)
T2DImage< T > get_data_plane_yz(size_t x) const
forwarding function to access the underlying T3DDatafield
T3DImage(const C3DBounds &size)
const_reference operator[](int i) const
void put_data_plane_xz(size_t y, const T2DImage< T > &p)
forwarding function to access the underlying T3DDatafield
void put_data_plane_yz(size_t x, const T2DImage< T > &p)
forwarding function to access the underlying T3DDatafield
T3DImage(const C3DBounds &size, const CAttributedData &attr)
void get_data_line_x(int y, int z, std::vector< T > &buffer) const
const_reference operator()(size_t x, size_t y, size_t z) const
element access operator - read only
iterator end()
read/write iterator, issues copy-on-write
C3DImage Super
define the super class of this class for generic processing
T3DImage(const T3DDatafield< T > &orig)
const T3DDatafield< T > & data() const
read only access to the underlying data
const_iterator end() const
constant iterator
iterator begin_at(size_t x, size_t y, size_t z)
read/write iterator starting at the given location
C3DFVector get_gradient(int index) const
read/write access to the underlying data
reference operator()(size_t x, size_t y, size_t z)
element access operator - read/write
const_reference operator()(const C3DBounds &l) const
element access operator - read only
std::pair< double, double > get_minmax_intensity() const
virtual Pointer clone() const
range_iterator_with_boundary_flag end_range_with_boundary_flags(const C3DBounds &begin, const C3DBounds &end)
const_range_iterator_with_boundary_flag end_range_with_boundary_flags(const C3DBounds &begin, const C3DBounds &end) const
T3DImage(T3DImage< T > &&orig)
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
#define NS_MIA_END
conveniance define to end the mia namespace
EXPORT_3D C3DFVectorfield get_gradient(const C3DImage &image)
static F::result_type filter(const F &f, const B &b)
functor to convert an image with an abitrary pixel type to single floating point pixels
T3DImage< O > operator()(const T3DImage< T > &image) const
base class for all filer type functors.