21 #ifndef mia_3d_image_hh 22 #define mia_3d_image_hh 73 typedef std::shared_ptr<C3DImage >
Pointer;
86 virtual size_t size()
const = 0;
91 virtual const C3DBounds& get_size()
const = 0;
96 virtual Pointer clone()
const = 0;
128 virtual std::pair<double, double> get_minmax_intensity()
const = 0;
147 template <
typename T>
231 void get_data_line_x(
int y,
int z, std::vector<T>& buffer)
const;
234 void get_data_line_y(
int x,
int z, std::vector<T>& buffer)
const;
237 void get_data_line_z(
int x,
int y, std::vector<T>& buffer)
const;
240 void put_data_line_x(
int y,
int z,
const std::vector<T> &buffer);
243 void put_data_line_y(
int x,
int z,
const std::vector<T> &buffer);
246 void put_data_line_z(
int x,
int y,
const std::vector<T> &buffer);
258 void put_data_plane_xy(
size_t z,
const T2DImage<T>& p);
261 void put_data_plane_yz(
size_t x,
const T2DImage<T>& p);
264 void put_data_plane_xz(
size_t y,
const T2DImage<T>& p);
268 const_reference
operator()(
size_t x,
size_t y,
size_t z)
const {
269 return m_image(x,y,z);
274 return m_image(x,y,z);
279 return m_image(l.
x,l.
y, l.
z);
284 return m_image(l.
x,l.
y, l.
z);
289 return m_image.begin();
293 const_iterator
end()
const {
294 return m_image.end();
299 return m_image.begin_range(begin, end);
304 return m_image.end_range(begin, end);
309 return m_image.begin_range(begin, end);
314 return m_image.end_range(begin, end);
320 return m_image.begin_range_with_boundary_flags(begin, end);
325 return m_image.end_range_with_boundary_flags(begin, end);
332 return m_image.begin_range_with_boundary_flags(begin, end);
337 return m_image.end_range_with_boundary_flags(begin, end);
345 return m_image.begin();
350 return m_image.end();
354 const_iterator
begin_at(
size_t x,
size_t y,
size_t z)
const {
355 return m_image.begin_at(x, y, z);
360 return m_image.begin_at(x, y, z);
389 return m_image.template get_gradient<float>(index);
413 template <
typename O>
421 template <
typename T>
424 copy(image.
begin(), image.
end(), result.begin());
435 return filter(*
this, image);
445 return filter(*
this, *image);
510 typedef __bind_all<T3DImage> Derived;
Specific type of the 3D images that hold real pixel data.
T3DImage< uint32_t > C3DUIImage
3D image with unsigned 32 bit integer values
std::vector< P3DImage > C3DImageSeries
helper type for image series
range_iterator_with_boundary_flag end_range_with_boundary_flags(const C3DBounds &begin, const C3DBounds &end)
reference operator()(const C3DBounds &l)
element access operator - read/write
virtual Pointer clone() const =0
C3DImage::Pointer P3DImage
define a shortcut to the 3D image shared pointer.
a 3D field of floating point single accuracy 3D vectors
reference operator()(size_t x, size_t y, size_t z)
element access operator - read/write
range_iterator_with_boundary_flag begin_range_with_boundary_flags(const C3DBounds &begin, const C3DBounds &end)
A templated class of a 3D data field.
const_range_iterator end_range(const C3DBounds &begin, const C3DBounds &end) const
forwarding function to access the specified range of the underlying T3DDatafield
base class for all filer type functors.
T3DImage< int32_t > C3DSIImage
3D image with signed 32 bit integer values
This is the template version of a 2D image that is used for holding real data.
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
FConvert3DImageToPixeltypeO< float > FCopy3DImageToFloatRepn
short name for 3DImage to float pixel repn copy functor
A collection of attributes.
static F::result_type filter(const F &f, const B &b)
T3DImage< int8_t > C3DSBImage
3D image with signed 8 bit integer values
C3DImage Super
define the super class of this class for generic processing
functor to convert an image with an abitrary pixel type to single floating point pixels ...
const_iterator end() const
constant iterator
const_reference operator()(const C3DBounds &l) const
element access operator - read only
const_reference operator()(size_t x, size_t y, size_t z) const
element access operator - read only
iterator begin()
read/write iterator, issues copy-on-write
T3DImage< double > C3DDImage
3D image with signed 64 bit floating point values
const_range_iterator begin_range(const C3DBounds &begin, const C3DBounds &end) const
forwarding function to access the specified range of the underlying T3DDatafield
virtual std::pair< double, double > get_minmax_intensity() const =0
std::shared_ptr< C3DImageSeries > P3DImageSeries
virtual const C3DBounds & get_size() const =0
C3DFVector get_gradient(int index) const
read/write access to the underlying data
std::shared_ptr< C3DImage > Pointer
Pointer type of the image.
const_reference operator[](int i) const
T3DImage< uint8_t > C3DUBImage
3D image with unsigned 8 bit integer values
const_range_iterator_with_boundary_flag begin_range_with_boundary_flags(const C3DBounds &begin, const C3DBounds &end) const
The generic base type of a 3D image.
virtual const C3DBounds & get_size() const
const_range_iterator_with_boundary_flag end_range_with_boundary_flags(const C3DBounds &begin, const C3DBounds &end) const
C3DBounds dimsize_type
generic type for the dimension of the image
T3DImage< bool > C3DBitImage
3D image with binary values
const_iterator begin_at(size_t x, size_t y, size_t z) const
constant iterator starting at the given location
iterator begin_at(size_t x, size_t y, size_t z)
read/write iterator starting at the given location
iterator end()
read/write iterator, issues copy-on-write
reference operator[](int i)
T3DImage< uint16_t > C3DUSImage
3D image with unsigned 16 bit integer values
static const char * data_descr
data type description for the plug-in path component
T3DImage< int16_t > C3DSSImage
3D image with signed 16 bit integer values
const_iterator begin() const
constant iterator
CAttributedData & operator=(const CAttributedData &org)
Assignemt operator.
T3DImage< int64_t > C3DSLImage
3D image with signed 64 bit integer values
::std::vector< typename __holder_type_dispatch< T >::type > data_array
type for the flat reprentation of the 2D data field
T3DImage< uint64_t > C3DULImage
3D image with unsigned 64 bit integer values
virtual size_t size() const =0
range_iterator begin_range(const C3DBounds &begin, const C3DBounds &end)
forwarding function to access the specified range of the underlying T3DDatafield
T3DImage< float > C3DFImage
3D image with signed 32 bit floating point values
EXPORT_3D C3DFVectorfield get_gradient(const C3DImage &image)
range_iterator end_range(const C3DBounds &begin, const C3DBounds &end)
forwarding function to access the specified range of the underlying T3DDatafield
#define NS_MIA_END
conveniance define to end the mia namespace