【发布时间】:2013-09-17 05:16:08
【问题描述】:
我是使用 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
这是有效的,但看起来不是很优雅或高效。我希望有一个更快的解决方案...
欢迎提出建议
【问题讨论】:
-
1.您应该发布实际代码,并附上一些上下文 2。您应该发布错误消息
标签: python arrays opencv numpy