39 #include <pcl/io/image_metadata_wrapper.h>
40 #include <pcl/memory.h>
41 #include <pcl/pcl_config.h>
42 #include <pcl/pcl_macros.h>
59 using Ptr = shared_ptr<Image>;
62 using Clock = std::chrono::high_resolution_clock;
63 using Timestamp = std::chrono::high_resolution_clock::time_point;
73 : wrapper_ (std::move(image_metadata))
74 , timestamp_ (
Clock::now ())
78 : wrapper_ (std::move(image_metadata))
85 inline virtual ~
Image () =
default;
95 isResizingSupported (
unsigned input_width,
unsigned input_height,
96 unsigned output_width,
unsigned output_height)
const = 0;
106 fillRGB (
unsigned width,
unsigned height,
unsigned char* rgb_buffer,
unsigned rgb_line_step = 0)
const = 0;
113 getEncoding ()
const = 0;
122 memcpy (rgb_buffer, wrapper_->getData (), wrapper_->getDataSize ());
133 fillGrayscale (
unsigned width,
unsigned height,
unsigned char* gray_buffer,
134 unsigned gray_line_step = 0)
const = 0;
142 return (wrapper_->getWidth ());
151 return (wrapper_->getHeight ());
161 return (wrapper_->getFrameID ());
171 return (wrapper_->getTimestamp ());
189 return (wrapper_->getData ());
196 return (wrapper_->getDataSize ());
203 return (getDataSize() / getHeight());
std::chrono::high_resolution_clock Clock
unsigned getFrameID() const
Image(FrameWrapper::Ptr image_metadata)
FrameWrapper::Ptr wrapper_
Timestamp getSystemTimestamp() const
Image(FrameWrapper::Ptr image_metadata, Timestamp time)
A structure representing RGB color information.
shared_ptr< FrameWrapper > Ptr
Image interface class providing an interface to fill a RGB or Grayscale image buffer.
virtual void fillRaw(unsigned char *rgb_buffer) const
fills a user given buffer with the raw values.
shared_ptr< const Image > ConstPtr
unsigned getWidth() const
unsigned getHeight() const
std::uint64_t getTimestamp() const
std::chrono::high_resolution_clock::time_point Timestamp