我是使用 OpenCV、Python 和 Numpy 的新手,但现在已经是 Java、C++、C 程序员一段时间了。
我正在实现一个 sigma-delta 背景检测器,它执行以下操作:
让 i1 成为第一张图片,让 i2 成为第二张图片
for each pixel:
if i1(x,y) > i2(x,y), then i2(x,y) = i2(x,y) + 1
if i1(x,y) < i2(x,y), then i2(x,y) = i2(x,y) - 1
我基本上是在尝试遍历 2D 图像数组并将像素值与其他图像进行比较,但我正在努力使用 for 循环来处理 numpy 数组。我尝试使用嵌套的 for 循环,但我收到一条错误消息,提示我无法访问该数组的元素。
编辑:
for x in range (width):
for y in range (height):
if Mt [x,y] > It[x,y]:
Mt [x,y] = Mt[x,y]+1
elif Mt [x,y] < It[x,y]:
Mt [x,y] = Mt[x,y]-1
这是有效的,但似乎不是很优雅或高效。我希望有一个更快的解决方案...
任何建议都将受到欢迎