I'm very confused because in a for loop I'm printing an array value. However, after exiting a loop the output doesn't match what I'm printing. What's going on?
Code:
import numpy as np
from itertools import product
def boxBlur(image):
m = len( image ) - 1
n = len( image[1] ) - 1
out = [ [0]* ( n - 1 ) ] * ( m - 1 )
for i,j in product( range(1,m) , range(1,n) ):
vals = np.array(image[i-1:i+2]).transpose()[j-1:j+2].flatten()
I = i - 1
J = j - 1
out[I][J] = int( sum(vals) / 9 )
print( "M[" + str(I) + "," + str(J) + "] = " + str(out[I][J]) )
print(out)
return out
image = [[7,4,0,1],
[5,6,2,2],
[6,10,7,8],
[1,4,2,0]]
boxBlur(image)
M[0,0] = 5
M[0,1] = 4
M[1,0] = 4
M[1,1] = 4
[[4, 4], [4, 4]]