使用PCL,我试图检测和定位大型钢框架中的矩形切口(下图为img): 现在,我使用的是凹面船体类,并且确实从矩形中获取了轮廓。但是,摄像机视图的外边界也随之变化。 我使用了直通滤镜来消除边界,但是这仅在特定情况下有效。 我要问的是,您碰巧知道有什么方法可以带来更好的结果吗?
对于孔,它们并不总是在相同的高度或位置。但是它们是标准尺寸(+/- 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);
总而言之,寻找一种可靠的方法或想法来检测框架中的矩形切口。 谢谢