creating 2D bearing angle image from 3d pointcloud
Hi,
I have a ROS node that subscribes to 3D points from a depth camera. I am using the PCL library to create a 3D bearing angle image based on the 3D pointcloud from a depth camera. I am able to create the image but am unsure how to reconstruct this. Using the methods defined in pcl/common/src/bearingangleimage.cpp and Open CV I have the following code:
pcl::BearingAngleImage bearing_angle_image;
bearing_angle_image.generateBAImage(*pcl_cloud_xyz);
cv::Mat Im(bearing_angle_image.height, bearing_angle_image.width, CV_8UC1, cv::Scalar(255));
int count = 0;
for (int i=0; i< bearing_angle_image.height-1; i++)
{
for (int j=0; j< bearing_angle_image.width-1; j++)
{
Im.at<unsigned char>(i,j) = bearing_angle_image.points[count].rgba;
count++;
}
}
cv::namedWindow("image", CV_WINDOW_AUTOSIZE);
imshow("image", Im);
cv::waitKey(0);
cv::destroyAllWindows();
The final output displayed is wrong. My question is what is the order of points and how can I reconstruct the bearing angle image to view?
Asked by playeronros on 2019-05-01 10:27:41 UTC
Comments