Re: [python] Kus paměti na numpy array

2018-01-11 Tema obsahu Petr Blahos
Jo, numpy.ctypeslib.as_array funguje. Takže:

def img_cb(buffer, buffer_size, cnt):
# tady ten buffer potřebuju dostat do numpy array
np_a = numpy.ctypes.as_array(buffer, shape=(1944, 2592, 3))


Díky,
Petr




2018-01-11 13:54 GMT+01:00 Petr Messner :

> Ahoj, co numpy.frombuffer?
>
> https://docs.scipy.org/doc/numpy-1.13.0/reference/
> generated/numpy.frombuffer.html
>
> Nebo:
>
> https://stackoverflow.com/questions/23930671/how-to-
> create-n-dim-numpy-array-from-a-pointer
>
> Snad neradím blbosti, s numpy jsem takhle ještě nepracoval.
>
> PM
>
>
> Dne středa 10. ledna 2018 17:08:23 UTC+1 Petr Blahos napsal(a):
> > Ahoj,
> >
> >
> > přes ctypes volám něco, co volá zpět můj callback. V tom callbacku je
> jeden
> > z parametrů pointer na unsigned char, a délka pole. No a já bych
> potřeboval
> > buď toto pole dostat do numpy array. Nevíte, jak na to?
> >
> >
> > Volání vypadá takto:
> >
> >
> >
> > def img_cb(buffer, buffer_size, cnt):
> > # tady ten buffer potřebuju dostat do numpy array
> >
> >
> >
> >
> >
> > cb_tp = ctypes.WINFUNCTYPE(ctypes.c_long, ctypes.POINTER(ctypes.c_ubyte),
> ctypes.c_long, ctypes.c_void_p)
> > cb_f = cb_tp(img_cb)
> >
> >
> >
> > volání_funkce_která_nastaví_callback(0, 1, cb_f, 1)
> > volání_funkce_která_odstartuje_volání_callbacku(0, None, False, True)
> >
> >
> >
> >
> > Ta data budu muset kopírovat. Dokážu udělat:
> >
> >
> > a = numpy.array(buffer[0:buffer_size], dtype=numpy.uint8)
> >
> >
> >
> > ale to je strašně pomalé.
> >
> >
> > Předem díky.
> > --
> > Petr
>
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Kus paměti na numpy array

2018-01-11 Tema obsahu Petr Messner
Ahoj, co numpy.frombuffer?

https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.frombuffer.html

Nebo:

https://stackoverflow.com/questions/23930671/how-to-create-n-dim-numpy-array-from-a-pointer

Snad neradím blbosti, s numpy jsem takhle ještě nepracoval.

PM


Dne středa 10. ledna 2018 17:08:23 UTC+1 Petr Blahos napsal(a):
> Ahoj, 
> 
> 
> přes ctypes volám něco, co volá zpět můj callback. V tom callbacku je jeden
> z parametrů pointer na unsigned char, a délka pole. No a já bych potřeboval
> buď toto pole dostat do numpy array. Nevíte, jak na to?
> 
> 
> Volání vypadá takto:
> 
> 
> 
> def img_cb(buffer, buffer_size, cnt):
>     # tady ten buffer potřebuju dostat do numpy array
> 
> 
> 
> 
> 
> cb_tp = ctypes.WINFUNCTYPE(ctypes.c_long, ctypes.POINTER(ctypes.c_ubyte), 
> ctypes.c_long, ctypes.c_void_p)
> cb_f = cb_tp(img_cb)
> 
> 
> 
> volání_funkce_která_nastaví_callback(0, 1, cb_f, 1)
> volání_funkce_která_odstartuje_volání_callbacku(0, None, False, True)
> 
> 
> 
> 
> Ta data budu muset kopírovat. Dokážu udělat: 
> 
> 
> a = numpy.array(buffer[0:buffer_size], dtype=numpy.uint8)
> 
> 
> 
> ale to je strašně pomalé.
> 
> 
> Předem díky.
> --
> Petr

___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


[python] Kus paměti na numpy array

2018-01-10 Tema obsahu Petr Blahos
Ahoj,

přes ctypes volám něco, co volá zpět můj callback. V tom callbacku je jeden
z parametrů pointer na unsigned char, a délka pole. No a já bych potřeboval
buď toto pole dostat do numpy array. Nevíte, jak na to?

Volání vypadá takto:

def img_cb(buffer, buffer_size, cnt):
# tady ten buffer potřebuju dostat do numpy array


cb_tp = ctypes.WINFUNCTYPE(ctypes.c_long, ctypes.POINTER(ctypes.c_ubyte),
ctypes.c_long, ctypes.c_void_p)
cb_f = cb_tp(img_cb)

volání_funkce_která_nastaví_callback(0, 1, cb_f, 1)
volání_funkce_která_odstartuje_volání_callbacku(0, None, False, True)


Ta data budu muset kopírovat. Dokážu udělat:

a = numpy.array(buffer[0:buffer_size], dtype=numpy.uint8)

ale to je strašně pomalé.

Předem díky.
--
Petr
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz