盒子颜色分类-打印版本 +- RoboDK论坛(//www.w5838.com/forum) +——论坛:RoboDK (EN) (//www.w5838.com/forum/Forum-RoboDK-EN) +——论坛:RoboDK API (//www.w5838.com/forum/Forum-RoboDK-API) +——线程:盒子颜色排序(/ Thread-Box-Color-Sorting) |
盒子颜色分类-manisan-11-06-2021 你好, 我正在为我的硕士论文开发一个程序,最近才开始使用RoboDK。我是Python编程的新手。 我用RoboDK开发了一个有8个盒子的环境,其中两个是不同的颜色。我希望能够使用机械臂来检测盒子的颜色使用RGB值或任何更简单的方法,让它能够选择一个超出规格的盒子并把它放在线外。例如,在一条直线上有6个绿盒子,1个红盒子和1个蓝盒子。我想让带着摄像头的机械臂沿着直线遍历盒子,如果它看到红色或蓝色的盒子,就把它放在线外,因为它不是绿色的。我还想以红色的方框为主在另一种情况下,以蓝色的方框为主。 我已经将RoboDK环境与目标和所有东西连接起来,但发现很难将这种“颜色分类”能力编程到机器人中。 提前谢谢你, Manisan (附件= 2718) 回复:盒子颜色排序-山姆-11-08-2021 嗨Manisan, 我们在Python文档中添加了一些OpenCV的例子,你可能会觉得有用,请参阅: //www.w5838.com/doc/en/PythonAPI/examples.html#object-detection OpenCV有一个关于颜色分割的很好的教程,你可以根据自己的需要进行调整: https://docs.opencv.org/4.x/df/d9d/tutorial_py_colorspaces.html 回复:盒子颜色排序-manisan-11-24-2021 你好山姆! 谢谢你的回复。我已经能够创建一个程序,用于项目的颜色排序方面,并已经完成了RoboDK环境的实验。颜色代码是用python编写的,我正在努力添加这些代码或将其与RoboDK环境集成。 我最初的方法是从RoboDK软件生成一个代码,通过添加我的颜色处理代码来编辑它,然后在模拟器中运行它。由于某种原因,代码将无法运行。我附上了一个模拟环境。你可以看到PP#, PL#等是不同的轨迹。我还附上了颜色处理代码。我想整合两者,并做一些“如果块是X颜色,做PP1或PA12,等等” 总之,我只是想找到一种方法来集成python的颜色处理代码与RoboDK环境。 回复:盒子颜色排序-山姆-11-26-2021 不错的工作! 您可以将参数保存到站点(或项目),并在其他程序调用中重用它们,请参阅://www.w5838.com/doc/en/PythonAPI/robolink.html?highlight=setparam#robolink.Robolink.setParam 例如,您可以在序列的开头运行ColorSorting脚本一次,向用户请求颜色。然后,您可以使用第二个脚本来使用所记录的颜色处理图像。
代码:
reject_color = 'RED'
代码:
PP1 = RDK.Item('PPI1')
你应该看看我们的YouTube视频和Python文档! https://www.youtube.com/channel/UCDpDmeuYShxBYOgN2nIEtUw //www.w5838.com/doc/en/PythonAPI/index.html 回复:盒子颜色排序-manisan-12-01-2021 你好山姆, 采取了一点不同的方法,但我还是做到了。你的回复真的把我带到了正确的道路上,给我指出了正确的资源。我没有任何编程经验,但我成功做到了。我不知道你是否能看出来,但我很兴奋,RoboDK刚刚拯救了我的硕士学位哈哈。 这是代码和环境,所以人们可以尝试并改进它。 欢呼, 阿玛尼Caban 回复:盒子颜色排序-山姆-12-02-2021 我很高兴你能够在没有使用RoboDK编程经验的情况下实现你的目标。这就是我们的目标! 我看到你在图像中心使用一个像素来获得颜色。在现实中,图像会受到环境光、阴影、反射等的影响 你可以使用颜色分割来检索主导颜色。下面是一个示例代码:
代码:
lower_b =[160, 100, 20] #红色下限在HSV
|