私は OpenCV、Python、および Numpy を使用するのは初めてですが、しばらくの間 Java、C++、C プログラマーでした。
次のことを行うシグマデルタ バックグラウンド検出器を実装しています。
i1 を最初の画像、i2 を 2 番目の画像とする
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
これは機能していますが、あまりエレガントでも効率的でもないようです。一刻も早い解決を望みます...
どんな提案でも大歓迎です