21 #ifndef mia_3d_image_hh 22 #define mia_3d_image_hh 71 typedef std::shared_ptr<C3DImage >
Pointer;
84 virtual size_t size()
const = 0;
89 virtual const C3DBounds& get_size()
const = 0;
94 virtual Pointer clone()
const = 0;
126 virtual std::pair<double, double> get_minmax_intensity()
const = 0;
145 template <
typename T>
208 void get_data_line_x(
int y,
int z, std::vector<T>& buffer)
const;
211 void get_data_line_y(
int x,
int z, std::vector<T>& buffer)
const;
214 void get_data_line_z(
int x,
int y, std::vector<T>& buffer)
const;
217 void put_data_line_x(
int y,
int z,
const std::vector<T> &buffer);
220 void put_data_line_y(
int x,
int z,
const std::vector<T> &buffer);
223 void put_data_line_z(
int x,
int y,
const std::vector<T> &buffer);
235 void put_data_plane_xy(
size_t z,
const T2DImage<T>& p);
238 void put_data_plane_yz(
size_t x,
const T2DImage<T>& p);
241 void put_data_plane_xz(
size_t y,
const T2DImage<T>& p);
245 const_reference
operator()(
size_t x,
size_t y,
size_t z)
const {
246 return m_image(x,y,z);
251 return m_image(x,y,z);
256 return m_image(l.
x,l.
y, l.
z);
261 return m_image(l.
x,l.
y, l.
z);
266 return m_image.begin();
270 const_iterator
end()
const {
271 return m_image.end();
276 return m_image.begin_range(begin, end);
281 return m_image.end_range(begin, end);
286 return m_image.begin_range(begin, end);
291 return m_image.end_range(begin, end);
297 return m_image.begin_range_with_boundary_flags(begin, end);
302 return m_image.end_range_with_boundary_flags(begin, end);
309 return m_image.begin_range_with_boundary_flags(begin, end);
314 return m_image.end_range_with_boundary_flags(begin, end);
322 return m_image.begin();
327 return m_image.end();
331 const_iterator
begin_at(
size_t x,
size_t y,
size_t z)
const {
332 return m_image.begin_at(x, y, z);
337 return m_image.begin_at(x, y, z);
366 return m_image.template get_gradient<float>(index);
390 template <
typename O>
398 template <
typename T>
401 copy(image.
begin(), image.
end(), result.begin());
412 return filter(*
this, image);
422 return filter(*
this, *image);
490 typedef __bind_all<T3DImage> Derived;
T3DImage< unsigned short > C3DUSImage
3D image with unsigned 16 bit integer values
Specific type of the 3D images that hold real pixel data.
const_iterator end() const
constant iterator
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)
T3DImage< signed char > C3DSBImage
3D image with signed 8 bit integer values
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< signed short > C3DSSImage
3D image with signed 16 bit integer values
virtual const C3DBounds & get_size() const
This is the template version of a 2D image that is used for holding real data.
const_reference operator()(const C3DBounds &l) const
element access operator - read only
#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)
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 ...
iterator begin()
read/write iterator, issues copy-on-write
const_reference operator()(size_t x, size_t y, size_t z) const
element access operator - read only
T3DImage< double > C3DDImage
3D image with signed 64 bit floating point values
virtual std::pair< double, double > get_minmax_intensity() const =0
std::shared_ptr< C3DImageSeries > P3DImageSeries
virtual const C3DBounds & get_size() const =0
const_reference operator[](int i) const
std::shared_ptr< C3DImage > Pointer
Pointer type of the image.
The generic base type of a 3D image.
const_iterator begin() const
constant iterator
const_iterator begin_at(size_t x, size_t y, size_t z) const
constant iterator starting at the given location
C3DBounds dimsize_type
generic type for the dimension of the image
T3DImage< bool > C3DBitImage
3D image with binary values
T3DImage< unsigned int > C3DUIImage
3D image with unsigned 32 bit integer values
const_range_iterator_with_boundary_flag begin_range_with_boundary_flags(const C3DBounds &begin, const C3DBounds &end) const
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
T3DImage< unsigned char > C3DUBImage
3D image with unsigned 8 bit integer values
T3DImage< signed int > C3DSIImage
3D image with signed 32 bit integer values
reference operator[](int i)
static const char * data_descr
data type description for the plug-in path component
::std::vector< typename __holder_type_dispatch< T >::type > data_array
type for the flat reprentation of the 2D data field
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
const_range_iterator_with_boundary_flag end_range_with_boundary_flags(const C3DBounds &begin, const C3DBounds &end) const
C3DFVector get_gradient(int index) const
read/write access to the underlying data
T3DImage< float > C3DFImage
3D image with signed 32 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
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