TypeError: 'numpy.ndarray' object is not callable

I am trying to convert a scilab code to python I have the following code:

for ( i = 0:roi_sx:imgg_sx-roi_sx)
    for ( j = 0:roi_sy:imgg_sy-roi_sy)
        intensity = 0;
        for ( m = i+1:1:i+roi_sx )
            for ( n = j+1:1:j+roi_sy )
              intensity = intensity + imgg(m,n);  
              
            end
        end
        if ( intensity < threshold*roi_sx*roi_sy ) then
            imgs(i+1:1:i+roi_sx, j+1:1:j+roi_sy) = zeros(roi_sx, roi_sy);
        end
    end
end

this is what I could come up with:

for i in range(0,imgg_sx-roi_sx,roi_sx):
    for j in (0,imgg_sy-roi_sy,roi_sy):
        intensity = 0
        for m in range (i+1,i+roi_sx,1):
            for n in range (j+1,j+roi_sy,1):
              intensity = intensity + (imggmatrix[m][n])
        if intensity < threshold*roi_sx*roi_sy:
            imgs([i+1 for i in range(i+roi_sx)],[j+1 for j in range(j+roi_sx)]) = np.zeros((roi_sx, roi_sy),dtype=float)
            #np.imgs([i+1 for i in range(i+roi_sx)],[j+1 for j in range(j+roi_sx)]) = np.zeros((roi_sx, roi_sy),dtype=float)

anyone can please help me figure out what is wrong with this line, I appreciate every contribution

imgs([i+1 for i in range(i+roi_sx)],[j+1 for j in range(j+roi_sx)]) = np.zeros((roi_sx, roi_sy),dtype=float)

I got the following error:

  File "C:\Users\medyo\Desktop\MIP\DataMatrix\DataMatrix.py", line 26, in <module>
    imgs([i+1 for i in range(i+roi_sx)],[j+1 for j in range(j+roi_sx)])
TypeError: 'numpy.ndarray' object is not callable

Upvotes: 0

Views: 90

Answers (1)

gabrsafwat
gabrsafwat

Reputation: 128

I didn't try it, but from what I see your code should be like this since The "if statement" if intensity < threshold*roi_sx*roi_sy: at its current location will always see intensity = 0. It should be indented under the "for loop".

for i in range(0,imgg_sx-roi_sx,roi_sx):
    for j in (0,imgg_sy-roi_sy,roi_sy):
        intensity = 0
        for m in range (i+1,i+roi_sx,1):
            for n in range (j+1,j+roi_sy,1):
              intensity = intensity + (imggmatrix[m][n])
              if intensity < threshold*roi_sx*roi_sy:
                imgs([i+1 for i in range(i+roi_sx)],[j+1 for j in range(j+roi_sx)]) = np.zeros((roi_sx, roi_sy),dtype=float)
                #np.imgs([i+1 for i in range(i+roi_sx)],[j+1 for j in range(j+roi_sx)]) = np.zeros((roi_sx, roi_sy),dtype=float)

Upvotes: 0

Related Questions