[Numpy-discussion] Learn about numpy

Folkert Boonstra F.Boonstra at inter.nl.net
Mon May 5 06:33:10 EDT 2008


Nadav Horesh schreef:
> What you do here is a convolution with 
>
> 0 1 0
> 1 1 1
> 0 1 0
>
> kernel, and thresholding, you can use numpy.numarray.nd_image package:
>
> import numpy.numarray.nd_image as NI
> .
> .
> .
>    ker = array([[0,1,0], [1,1,1],[0,1,0]])
>    result = (NI.convolve(self.bufbw, ker) == 1).astype(uint8)
>
> for nore general cases you can use the function generic_filter in the same package.
>
>    Nadav.
>
>   
Thanks, that works ok! 

However if instead of uint8, uint32 values are used, the result only
contains zeros.
Or am I doing something wrong?
Folkert

import numpy
import numpy.numarray.nd_image as NI

B = numpy.zeros((5,5), dtype=numpy.uint8)
C = numpy.zeros((5,5), dtype=numpy.uint32)

DC = 4278190280
LC = 4278241280

B[:]   = 0
B[1,1] = 1
B[2,2] = 1
C[:]   = DC
C[1,1] = LC
C[2,2] = LC

ker01 = numpy.array([[0,1,0], \
                     [1,1,1], \
                     [0,1,0]])
kerCC = numpy.array([[C[0,0],C[1,1],C[0,0]], \
                     [C[1,1],C[1,1],C[1,1]], \
                     [C[0,0],C[1,1],C[0,0]]]).astype(numpy.uint32)

r1 = NI.convolve(B, ker01).astype(numpy.uint8)
r2 = (NI.convolve(B, ker01) == 1).astype(numpy.uint8)
r3 = NI.convolve(C, kerCC).astype(numpy.uint32)
r4 = (NI.convolve(C, kerCC) == C[0,0]).astype(numpy.uint32)




More information about the NumPy-Discussion mailing list