//////////////////////////////////////////////////////////////////////////////////
| 259 | private: |
| 260 | /////////////////////////////////////////////////////////////////////////////////////// |
| 261 | void |
| 262 | writeToDisk (const Frame::ConstPtr& frame) |
| 263 | { |
| 264 | if (!frame) |
| 265 | return; |
| 266 | |
| 267 | FPS_CALC_WRITER ("data write ", buf_); |
| 268 | nr_frames_total++; |
| 269 | |
| 270 | const std::string time_string = getTimestamp(frame->time); |
| 271 | |
| 272 | // Save RGB data |
| 273 | const std::string rgb_filename = "frame_" + time_string + "_rgb.pclzf"; |
| 274 | switch (frame->image->getEncoding ()) |
| 275 | { |
| 276 | case openni_wrapper::Image::YUV422: |
| 277 | { |
| 278 | io::LZFYUV422ImageWriter lrgb; |
| 279 | lrgb.write (reinterpret_cast<const char*> (&frame->image->getMetaData ().Data ()[0]), frame->image->getWidth (), frame->image->getHeight (), rgb_filename); |
| 280 | break; |
| 281 | } |
| 282 | case openni_wrapper::Image::RGB: |
| 283 | { |
| 284 | io::LZFRGB24ImageWriter lrgb; |
| 285 | lrgb.write (reinterpret_cast<const char*> (&frame->image->getMetaData ().Data ()[0]), frame->image->getWidth (), frame->image->getHeight (), rgb_filename); |
| 286 | break; |
| 287 | } |
| 288 | case openni_wrapper::Image::BAYER_GRBG: |
| 289 | { |
| 290 | io::LZFBayer8ImageWriter lrgb; |
| 291 | lrgb.write (reinterpret_cast<const char*> (&frame->image->getMetaData ().Data ()[0]), frame->image->getWidth (), frame->image->getHeight (), rgb_filename); |
| 292 | break; |
| 293 | } |
| 294 | } |
| 295 | |
| 296 | // Save depth data |
| 297 | const std::string depth_filename = "frame_" + time_string + "_depth.pclzf"; |
| 298 | |
| 299 | io::LZFDepth16ImageWriter ld; |
| 300 | //io::LZFShift11ImageWriter ld; |
| 301 | ld.write (reinterpret_cast<const char*> (&frame->depth_image->getDepthMetaData ().Data ()[0]), frame->depth_image->getWidth (), frame->depth_image->getHeight (), depth_filename); |
| 302 | |
| 303 | // Save depth data |
| 304 | const std::string xml_filename = "frame_" + time_string + ".xml"; |
| 305 | |
| 306 | io::LZFRGB24ImageWriter lrgb; |
| 307 | lrgb.writeParameters (frame->parameters_rgb, xml_filename); |
| 308 | ld.writeParameters (frame->parameters_depth, xml_filename); |
| 309 | // By default, the z-value depth multiplication factor is written as part of the LZFDepthImageWriter's writeParameters as 0.001 |
| 310 | // If you want to change that, uncomment the next line and change the value |
| 311 | //ld.writeParameter (0.001, "depth.z_multiplication_factor", ss3.str ()); |
| 312 | |
| 313 | toggle_one_frame_capture = false; |
| 314 | } |
| 315 | |
| 316 | /////////////////////////////////////////////////////////////////////////////////////// |
| 317 | void |
nothing calls this directly
no test coverage detected