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