c# - 如何使用 .NET 在图像中查找橙色球?

标签 c# image-processing arduino

我正在从连接到小型 arduino 机器人的 C328R 相机获取图像。我希望机器人驶向橙色乒乓球并捡起它们。我正在使用 funkotron76 在 http://www.codeproject.com/KB/recipes/C328R.aspx 提供的 C# 代码.

是否有一个库可以用来执行此操作,或者我是否需要迭代图像中的每个像素来查找橙色?如果是这样,我需要什么样的容差来补偿各种照明条件?

我可能可以通过测试找出这些数字,但我希望有人知道答案。

最佳答案

视力可能会非常困难,尤其是当您尝试忍受不同的条件时。一些值得研究的好东西包括 Blob 查找(搜索符合特定条件(通常是亮度阈值)的连续像素)、Image Segmentation (一张图像中可以有多个球吗?)以及 Hue 的一般理论(大多数视觉算法都使用灰度或二值图像,因此您首先需要以突出显示橙色作为选择标准的方式转换图像。)

由于您可能在接近这些对象时实时跟踪这些对象,因此您可能还有兴趣了解跟踪模型,例如 Kalman filter 。对于你正在做的事情来说,这有点过分了,但它很有趣,而且基本想法很有帮助。由于您大概知道该物体不应移动得很快,因此您可以利用这一事实来过滤掉误报,否则可能会导致您远离该物体。您可以通过简单地忽略距离先前接受的帧太远的帧来组合这种过滤的更简单版本(使用一些边界条件以避免陷入忽略对象的困境。)

关于c# - 如何使用 .NET 在图像中查找橙色球?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2769775/

相关文章:

c# - NUnit 不会因终结器中的异常而失败

c# - 使用 three.js 加载 .obj 时出现问题

python - 从图像中提取补丁的更快方法?

user-interface - 我可以在 Java FX 中嵌入 PApplet 吗

arduino - 使用arduino用皮托管计算风速

c# - 按钮命令不起作用,按钮位于 Collection View 内

c# - ASP.NET Core 2.2 MVC : wrap responses

image-processing - 如何为图像中的每条水平线数据实现一维 FFT 滤波器

opencv - 在OpenCV(或skimage)中使用Projection Profile Deskew方法后,将旋转图像的背景更改为白色,而不是黑色

c - 如何使用Arduino的串口打印