对于一家公司,我需要制作一个带有摄像头的传送带,以识别经过的物体(并使用机器人拾取这些物体)。
他们坚持使用c#,因为这是公司的指导方针。目前我已经编码了如何读取对象,然后我(现在)手动导出点云为。xyz格式(这似乎是最简单的格式)。
对象是可识别的,所以我想进入下一步:识别对象。
但是我不知道如何走得更远。我想匹配的对象扫描与我的数据库中的对象。当谷歌我发现PCL(点云库),但它只工作在c++
有没有现成的PCL替代品?我是编程新手,所以把PCL从c++翻译成c#对我来说几乎是不可能的。
任何帮助都将非常感激。
请记住:我只是一名机械工程专业的学生,为了这个项目,我最近才自学了c#的基础知识。
您有多个选择。正如你所说,你使用的是相机,所以你有一个2D图像。但是PCL是用于处理3D点云的。你最好选择像SIFT或SURF这样的二维图像描述符。
但是,如果对象很容易识别,如白色背景中的黑色圆圈或矩形,则可以使用角描述符来完成,然后找到相机当前图像与数据库图像的角匹配。
最后,如果你想使用PCL,你可以在c#代码中使用它。唯一要做的就是创建一个包装器。这并没有那么难。包装器只是一个中间项目,它允许你在c#代码中调用c++函数。这里有一个简单的教程。
也有一个程序可以自动打包:一个用于在原生世界和。net世界之间创建双向桥梁的代码生成器。