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 <petr.mess...@gmail.com>: > 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