【问题标题】:opencv detect light frequencyopencv检测光频率
【发布时间】:2016-09-06 14:59:57
【问题描述】:

我目前正在从事机器人汽车的爱好项目。 在相机前面,我将放置 2 个光源,我想通过计算机视觉检测光源并将我的机器人汽车定位在它前面。

在 Raspberry Pi 3 上使用 Python 和 OpenCV,我有以下工作: 我正在使用 2 个红光源。使用以下 OpenCV 函数:cvtColor(frame to HSV)、inRange(red filter)、findContours(找到 2 个光源)、Moments(获取光源的 x,y 坐标),计算光源的距离框架的边缘并生成汽车必须移动的方向。

现在的问题是,我无法确定哪个红光源是左哪个是右。例如,如果我用 2 个红色光源转动我的面包板,程序将无法判断汽车必须绕着光源移动。

我有 2 个想法来解决这个问题: - 使用频率让光源闪烁不同。假设 LEFT(1, 0, 1) 和 RIGHT(0, 1, 0)。我可能无法在这里使用线程,因为我需要“每一帧”。 - 使用 1 个红色和 1 个绿色光源。为此,我必须添加单独的函数来检测绿色,这意味着更多的处理能力。

由于我在该领域缺乏经验,因此我正在努力选择最佳选项。你有什么建议吗?或者哪个想法更好?

【问题讨论】:

  • 我不明白使用频率让光源闪烁不同。比如说 LEFT(1, 0, 1) 和 RIGHT(0, 1, 0) 你能解释一下吗?
  • @LBerger:使用一秒时间帧意味着每秒 3 帧。 Left(1,0,1) 将 0.33s ON,然后 0.33s OFF,然后 0.33s ON。也可以使用 0.5s 的时间范围。这意味着 0.167s 开启,0.167s 关闭,0.167s 开启。

标签: python opencv raspberry-pi computer-vision object-detection


【解决方案1】:

这不是一个完整的答案,但我希望它能帮助你。

在这个程序LedBlinkingFrequency 中,我使用线程对固定点(可以是矩形)使用傅里叶变换估计像素频率(时间)。我想你可以用python翻译。也许您可以禁用傅立叶并仅使用具有阈值的时间信号来计算每单位时间 1 次

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-09
    • 2011-02-08
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多