在两个桶的边缘处防止值在两个值之间反弹的算法策略'

时间:2017-10-25 15:39:13

标签: algorithm opencv signals noise buckets

我实时跟踪OpenCV(Python)中的各种彩球。跟踪非常稳定。即,当静止时,对于圆心而言,值不会改变超过1/2像素。

然而,我遇到了一个肯定是一个研究得很好的问题:我现在需要将球的位置放置在更粗糙的网格中 - 基本上只是简单地划分(+舍入)x,y位置。

e.g。

input range is 0 -> 9 
target range is 0 -> 1  (two buckets)

所以我这样做:发言(输入/ 5)

input:  [0 1 2 3 4 5 6 7 8 9] 
output: [0 0 0 0 0 1 1 1 1 1]

这很好,但是当初始值的一个小的改变可能导致它快速改变输出单一时,就会出现问题。在边缘'分裂 - 或敏感'区域。

input: [4 5 4 5 4 5 5 4 ...]
output:[0 1 0 1 0 1 1 0 ...]

即。值4和5(随着1像素误差/嘈杂'余量而下降)导致输出的快速变化。

有哪些策略/算法能够解决这些问题,请进一步帮助我?

我搜索了但似乎我不知道如何正确地为Google(或StackOverflow)表达问题。

我尝试添加' deadzones'。即而不是纯粹划分我离开'空白'在我的输出范围内,这意味着一个值有时没有输出(即在'之间')。这有点起作用,但意味着我有很多(即波动的范围)未使用的屏幕......

即。

input =  [0 1 2 3 4 5 6 7 8 9]
output = [0 0 0 0 x x 1 1 1 1]

时间平均并不理想(并且也不能很好地工作) - 并且会增加延迟。

我只是有一个预感'这里有一整套计算机/信号科学。

0 个答案:

没有答案