Convert numpy array to cython pointer

I have a numpy array that comes from cv2.imread and therefore has dtype = np.uint8 and ndim = 3 .

I want to convert it to Cython unsigned int* for use with the cpp external library.

I try cdef unsigned int* buff = <unsigned int*>im.data however I get a Python objects cannot be cast to pointers of primitive types error Python objects cannot be cast to pointers of primitive types

What am I doing wrong?

thanks

+4
source share
1 answer

thanks for your comments. allowed:

 cdef np.ndarray[np.uint32_t, ndim=3, mode = 'c'] np_buff = np.ascontiguousarray(im, dtype = np.uint32) cdef unsigned int* im_buff = <unsigned int*> np_buff.data 
+6
source

Source: https://habr.com/ru/post/1413923/


All Articles