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;
142 template <
typename T>
205 void get_data_line_x(
int y,
int z, std::vector<T>& buffer)
const;
208 void get_data_line_y(
int x,
int z, std::vector<T>& buffer)
const;
211 void get_data_line_z(
int x,
int y, std::vector<T>& buffer)
const;
214 void put_data_line_x(
int y,
int z,
const std::vector<T> &buffer);
217 void put_data_line_y(
int x,
int z,
const std::vector<T> &buffer);
220 void put_data_line_z(
int x,
int y,
const std::vector<T> &buffer);
232 void put_data_plane_xy(
size_t z,
const T2DImage<T>& p);
235 void put_data_plane_yz(
size_t x,
const T2DImage<T>& p);
238 void put_data_plane_xz(
size_t y,
const T2DImage<T>& p);
242 const_reference
operator()(
size_t x,
size_t y,
size_t z)
const {
243 return m_image(x,y,z);
248 return m_image(x,y,z);
253 return m_image(l.
x,l.
y, l.
z);
258 return m_image(l.
x,l.
y, l.
z);
263 return m_image.begin();
267 const_iterator
end()
const {
268 return m_image.end();
273 return m_image.begin_range(begin, end);
278 return m_image.end_range(begin, end);
283 return m_image.begin_range(begin, end);
288 return m_image.end_range(begin, end);
294 return m_image.begin_range_with_boundary_flags(begin, end);
299 return m_image.end_range_with_boundary_flags(begin, end);
306 return m_image.begin_range_with_boundary_flags(begin, end);
311 return m_image.end_range_with_boundary_flags(begin, end);
319 return m_image.begin();
324 return m_image.end();
328 const_iterator
begin_at(
size_t x,
size_t y,
size_t z)
const {
329 return m_image.begin_at(x, y, z);
334 return m_image.begin_at(x, y, z);
363 return m_image.template get_gradient<float>(index);
385 template <
typename O>
393 template <
typename T>
396 copy(image.
begin(), image.
end(), result.begin());
407 return filter(*
this, image);
417 return filter(*
this, *image);
485 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
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< T > 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