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.
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
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)
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
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
T3DImage< unsigned int > C3DUIImage
3D image with unsigned 32 bit integer 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
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
const_iterator begin() const
constant iterator
::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
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