我目前正在使用OpenCV尝试检测黑布覆盖的桌子上的物体。相机并不总是看着相同的方向(它是机器人的头部),但只会处理一个图像,因此速度不是必须的。在删除面积太小的轮廓之前,我已经使用cv::Canny
和cv::findContours
使用了我能找到的最合适的参数。这让我接近我想要的结果,但显然检测到一些不在表区域的轮廓。
什么是过滤那些的好方法?
我在考虑三种解决方案(可以结合使用以获得更好的结果):
cv::HoughLines
?)。cv::Point
和最后一个cv::Point
之间的距离(vector<cv::Point>
)是否有效?如果有人有一种有效的方法来过滤这些轮廓,或只是输入和建议上面的一种过滤方法,那就太棒了。您可以在右下方看到的机器人手也不会成为问题,因为在实际实验过程中它们将不在视野范围内。