我实时跟踪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]
时间平均并不理想(并且也不能很好地工作) - 并且会增加延迟。
我只是有一个预感'这里有一整套计算机/信号科学。