我正在从连接到小型 arduino 机器人的 C328R 相机中获取图像。我希望机器人驶向橙色的乒乓球并捡起它们。我正在使用由 funkotron76 在http://www.codeproject.com/KB/recipes/C328R.aspx提供的 C# 代码。
是否有我可以使用的库来执行此操作,或者我是否需要遍历图像中的每个像素以寻找橙色?如果是这样,我需要什么样的容差来补偿各种照明条件?
我可能可以通过测试找出这些数字,但我希望有人知道答案。
我正在从连接到小型 arduino 机器人的 C328R 相机中获取图像。我希望机器人驶向橙色的乒乓球并捡起它们。我正在使用由 funkotron76 在http://www.codeproject.com/KB/recipes/C328R.aspx提供的 C# 代码。
是否有我可以使用的库来执行此操作,或者我是否需要遍历图像中的每个像素以寻找橙色?如果是这样,我需要什么样的容差来补偿各种照明条件?
我可能可以通过测试找出这些数字,但我希望有人知道答案。
视力可能会非常困难,尤其是当您尝试忍受各种情况时。一些值得研究的好东西包括 Blob Finding(搜索与某些标准匹配的连续像素,通常是亮度阈值)、图像分割(图像中可以有多个球吗?)和色相的一般理论(大多数视觉算法使用灰度或二值图像,因此您首先需要以突出橙色作为选择标准的方式转换图像。)
由于您可能在向这些对象移动时实时跟踪这些对象,因此您可能还对学习跟踪模型感兴趣,例如卡尔曼滤波器。这对你正在做的事情来说太过分了,但它很有趣,而且基本的想法很有帮助。由于您大概知道对象不应该移动得很快,因此您可以使用该事实来过滤掉可能导致您远离对象的误报。您可以通过简单地忽略与先前接受的帧移动太远的帧来组合这种过滤的更简单版本(使用一些边界条件来避免在忽略对象时卡住。)