13 #ifdef ENABLE_OPENMP_OPTIMIZATION
34 #ifdef ENABLE_GPU_OPTIMIZATION
65 const sensor_msgs::ImageConstPtr& ir_image_cam1,
66 const sensor_msgs::ImageConstPtr& depth_image_cam2,
67 const sensor_msgs::ImageConstPtr& ir_image_cam2)
95 addInputNodeToQueue<ADI3DToFImageStitchingInputInfo>(image_stitch_input_info);
111 const sensor_msgs::ImageConstPtr& ir_image_cam1,
112 const sensor_msgs::ImageConstPtr& depth_image_cam2,
113 const sensor_msgs::ImageConstPtr& ir_image_cam2,
114 const sensor_msgs::ImageConstPtr& depth_image_cam3,
115 const sensor_msgs::ImageConstPtr& ir_image_cam3)
125 #ifdef ENABLE_OPENMP_OPTIMIZATION
126 #pragma omp parallel sections
170 addInputNodeToQueue<ADI3DToFImageStitchingInputInfo>(image_stitch_input_info);
188 const sensor_msgs::ImageConstPtr& depth_image_cam1,
const sensor_msgs::ImageConstPtr& ir_image_cam1,
189 const sensor_msgs::ImageConstPtr& depth_image_cam2,
const sensor_msgs::ImageConstPtr& ir_image_cam2,
190 const sensor_msgs::ImageConstPtr& depth_image_cam3,
const sensor_msgs::ImageConstPtr& ir_image_cam3,
191 const sensor_msgs::ImageConstPtr& depth_image_cam4,
const sensor_msgs::ImageConstPtr& ir_image_cam4)
201 #ifdef ENABLE_OPENMP_OPTIMIZATION
202 #pragma omp parallel sections
255 addInputNodeToQueue<ADI3DToFImageStitchingInputInfo>(image_stitch_input_info);
267 const sensor_msgs::CameraInfoConstPtr& CameraInfo_cam2)
282 const sensor_msgs::CameraInfoConstPtr& CameraInfo_cam2,
283 const sensor_msgs::CameraInfoConstPtr& CameraInfo_cam3)
301 const sensor_msgs::CameraInfoConstPtr& CameraInfo_cam2,
302 const sensor_msgs::CameraInfoConstPtr& CameraInfo_cam3,
303 const sensor_msgs::CameraInfoConstPtr& CameraInfo_cam4)
343 for (
int i = 0; i < 8; i++)
350 #ifdef ENABLE_GPU_OPTIMIZATION
352 stitch_frames_core_GPU_->copyRange2XYZLUT(
image_proc_utils_[cam_id]->getRangeToXYZLUT(), cam_id);
372 if ((depth_image ==
nullptr))
380 if (image_stitch_input_info->
getDepthFrame(cam_id) ==
nullptr)
384 int image_width = depth_image->width;
385 int image_height = depth_image->height;
386 if ((image_width != 512) || (image_height != 512))
392 memcpy(image_stitch_input_info->
getDepthFrame(cam_id), &depth_image->data[0], image_width * image_height * 2);
402 if (!
tf_buffer_[cam_id].canTransform(
"map", depth_image->header.frame_id, depth_image->header.stamp,
414 ROS_ERROR(
"Camera to Map TF2 Error: %s\n", ex.what());
426 double roll, pitch, yaw;
427 camera_map_rotation_matrix.
getRPY(roll, pitch, yaw);
435 for (
int r = 0; r < 4; r++)
437 for (
int c = 0; c < 4; c++)
439 *transform_matrix++ = transform4x4(r, c);
467 if ((ir_image ==
nullptr))
481 if (image_stitch_input_info->
getIRFrame(cam_id) !=
nullptr)
484 memcpy(image_stitch_input_info->
getIRFrame(cam_id), &ir_image->data[0],
495 template <
typename T>
510 std::cout <<
"Overwrite buffer" << std::endl;
515 last_node = new_frame;