34#include <visp3/core/vpIoTools.h>
35#include <visp3/io/vpDiskGrabber.h>
40 : m_image_number(0), m_image_number_next(0), m_image_step(1), m_number_of_zero(0), m_directory(
"/tmp"),
41 m_base_name(
"I"), m_extension(
"pgm"), m_use_generic_name(false), m_generic_name(
"empty")
53 m_image_number = grabber.m_image_number;
54 m_image_number_next = grabber.m_image_number_next;
55 m_image_step = grabber.m_image_step;
56 m_number_of_zero = grabber.m_number_of_zero;
57 m_directory = grabber.m_directory;
58 m_base_name = grabber.m_base_name;
59 m_extension = grabber.m_extension;
60 m_use_generic_name = grabber.m_use_generic_name;
61 m_generic_name = grabber.m_generic_name;
67 : m_image_number(0), m_image_number_next(0), m_image_step(1), m_number_of_zero(0), m_directory(
"/tmp"),
68 m_base_name(
"I"), m_extension(
"pgm"), m_use_generic_name(true), m_generic_name(generic_name)
74 unsigned int noz,
const std::string &ext)
75 : m_image_number(number), m_image_number_next(number), m_image_step(step), m_number_of_zero(noz), m_directory(dir),
76 m_base_name(basename), m_extension(ext), m_use_generic_name(false), m_generic_name(
"empty"), m_image_name()
105 width = I.getWidth();
121 width = I.getWidth();
129 m_image_number = m_image_number_next;
131 if (m_use_generic_name) {
135 std::stringstream ss;
136 ss << m_directory <<
"/" << m_base_name << std::setfill(
'0') << std::setw(m_number_of_zero) << m_image_number <<
"."
138 m_image_name = ss.str();
141 m_image_number_next += m_image_step;
144 width = I.getWidth();
150 m_image_number = m_image_number_next;
152 if (m_use_generic_name) {
156 std::stringstream ss;
157 ss << m_directory <<
"/" << m_base_name << std::setfill(
'0') << std::setw(m_number_of_zero) << m_image_number <<
"."
159 m_image_name = ss.str();
162 m_image_number_next += m_image_step;
166 width = I.getWidth();
172 m_image_number = m_image_number_next;
174 if (m_use_generic_name) {
178 std::stringstream ss;
179 ss << m_directory <<
"/" << m_base_name << std::setfill(
'0') << std::setw(m_number_of_zero) << m_image_number <<
"."
181 m_image_name = ss.str();
184 m_image_number_next += m_image_step;
188 if (extension.find(
"npy") != std::string::npos) {
189#if defined (VISP_HAVE_MINIZ) && (VISP_CXX_STANDARD > VISP_CXX_STANDARD_98) && defined(VISP_HAVE_WORKING_REGEX)
191 float *data = array.
data<
float>();
192 I.init(data,
static_cast<unsigned int>(array.
shape[0]),
static_cast<unsigned int>(array.
shape[1]),
true);
201 width = I.getWidth();
207 m_image_number = image_number;
209 if (m_use_generic_name) {
213 std::stringstream ss;
214 ss << m_directory <<
"/" << m_base_name << std::setfill(
'0') << std::setw(m_number_of_zero) << m_image_number <<
"."
216 m_image_name = ss.str();
219 m_image_number_next = m_image_number + m_image_step;
223 width = I.getWidth();
229 m_image_number = image_number;
231 if (m_use_generic_name) {
235 std::stringstream ss;
236 ss << m_directory <<
"/" << m_base_name << std::setfill(
'0') << std::setw(m_number_of_zero) << m_image_number <<
"."
238 m_image_name = ss.str();
241 m_image_number_next = m_image_number + m_image_step;
245 width = I.getWidth();
251 m_image_number = m_image_number_next;
253 if (m_use_generic_name) {
257 std::stringstream ss;
258 ss << m_directory <<
"/" << m_base_name << std::setfill(
'0') << std::setw(m_number_of_zero) << image_number <<
"."
260 m_image_name = ss.str();
263 m_image_number_next += m_image_step;
267 width = I.getWidth();
273 m_image_number = number;
274 m_image_number_next = number;
279 m_generic_name = generic_name;
280 m_use_generic_name =
true;
void open(vpImage< unsigned char > &I) VP_OVERRIDE
void acquire(vpImage< unsigned char > &I) VP_OVERRIDE
void setGenericName(const std::string &genericName)
vpDiskGrabber & operator=(const vpDiskGrabber &grabber)
void setImageNumber(long number)
long getImageNumber() const
error that can be emitted by ViSP classes.
unsigned int height
Number of rows in the image.
bool init
Set to true if the frame grabber has been initialized.
unsigned int width
Number of columns in the image.
static void readPFM(vpImage< float > &I, const std::string &filename)
static void read(vpImage< unsigned char > &I, const std::string &filename, int backend=IO_DEFAULT_BACKEND)
Definition of the vpImage class member functions.
VISP_EXPORT NpyArray npy_load(const std::string &fname)
std::vector< size_t > shape