对于一家公司,我需要制作带摄像头的传送带,以识别传递的物体(并用机器人拾取这些物体)。
他们坚持使用C#,因为这是公司的指导方针。 目前我已经编写了如何读取对象的代码,然后我(现在)手动将点云导出为.XYZ格式(这似乎是最简单的格式)。
对象是可识别的,所以我想进入下一步:识别对象。
但我仍然坚持如何走得更远。我想将扫描的对象与我的数据库中的对象进行匹配。当谷歌搜索我找到PCL(点云库),但它只适用于C ++
是否有可以使用的PCL的替代品?我是编程新手,因此我几乎不可能将PCL从C ++翻译成C#。
非常感谢任何帮助。
请记住:我只是一名机械工程专业的学生,最近我自学了C#这个项目的基础知识。
答案 0 :(得分:0)
您有多种选择。如你所说,你正在使用相机,所以你有一个2D图像。但PCL用于处理3D点云。你最好选择像SIFT或SURF这样的图像2D描述符。
但是如果对象很容易识别,就像白色背景中的黑色圆圈或矩形一样,你可以使用角描述符进行,然后找到相机当前图像和数据库图像的角落匹配。
最后,如果您想使用PCL,可以在C#代码中使用它。唯一要做的就是创建一个包装器。这并不难。包装器只是一个中间项目,您可以在C#代码中调用c ++函数。 Here你可以找到一个简单的教程。
还有一个程序可以自动包装: A Code Generator for Creating Two-Ways Bridges between Native World and .NET World。但是我还没用过它。