【发布时间】:2019-06-07 15:31:18
【问题描述】:
使用 PCL,我正在尝试检测和定位大型钢架上的矩形切口(下图): 现在我正在使用 Concave hull 类,并且确实从矩形中获得了轮廓。但是,相机视图的外部边界也随之而来。 我使用了一个直通过滤器来消除边界,但这仅适用于特定情况。 我要问的是,您是否碰巧知道任何可以产生更好结果的方法?
对于孔,它们并不总是在相同的高度或位置。但它们是标准尺寸(+/- 1 厘米)。大小标准可以消除错误检测。
这是一个凉亭模拟模型,以及使用 ROS 从模拟 kinect 中捕获的点云。
使用 PCL,我使用 SAC 平面分割,然后提取凹壳。如图所示,相机视图的边缘也被视为凹面。
pcl::SACSegmentation<pcl::PointXYZ> segmentation;
segmentation.setOptimizeCoefficients (true);
segmentation.setModelType(pcl::SACMODEL_PLANE);
segmentation.setMethodType(pcl::SAC_RANSAC);
segmentation.setMaxIterations(1000);
segmentation.setDistanceThreshold(0.01);
segmentation.setInputCloud(cloud_ptr);//breytti
segmentation.segment(*inliers, *coefficients);
pcl::ConcaveHull<pcl::PointXYZ> chull;
chull.setInputCloud (cloud_projected);
chull.setAlpha (0.1);
chull.reconstruct (*cloud_hull, hullPolygons);
Eigen::Vector4f centroid;//new object for centroid calculation
pcl::PointXYZ minpt, maxpt;//min max boundary of new cloud
pcl::compute3DCentroid(*cloud_hull, centroid);
pcl::getMinMax3D(*cloud_hull,minpt,maxpt);
总而言之,寻找一种稳健的方法或想法来检测框架中的矩形切割。 谢谢
【问题讨论】:
-
能否解释一下我们在第二张图片中看到的内容?
-
第二张图片是原始的Pointcloud XYZRGB。红点是凹壳的结果。我想要的结果只是内部(较小的矩形)。
-
尺寸标准不会消除大的外部矩形吗?
标签: c++ computer-vision point-cloud-library point-clouds