NUMPY массив преобразовать UIN8 LSB в UINT16 MSB - PullRequest
0 голосов
/ 28 июня 2018

Я уже спрашивал здесь , но мне просто интересно, нельзя ли это сделать изначально с помощью numpy, потому что я все равно буду позже использовать numpy позже с cv2, который читает массивы numpy.

Справочная информация, я читал 13 блоков 13680 байт с USB-камеры, пока не получил 177840 байт, то есть один необработанный кадр. Я делаю это, добавляя куски:

frame = dev.read(0x81, 0x3570, tout)
frame += dev.read(0x81, 0x3570, tout)
...

Затем список заполняется значениями 0-255, и два из этих значений должны сформироваться одно значение 0-65535. Итак, мой вопрос, как я могу преобразовать это (я предполагаю) Список LSB uint8 в массиве uint16 с половинным размером списка.

Допустим, у меня есть этот список:

list = [3,103,3,103]

Затем я хочу массив с:

[26371, 26371]

или есть способ сразу заполнить массив с 13 чтениями с моего usb-устройства, чтобы он имел 177840/2 значений uint16 в конце?

1 Ответ

0 голосов
/ 28 июня 2018

Возможно, я понял.

list = [3,103,3,103]
nlist = np.asarray(list, dtype='<B')
nlist = nlist.view(np.uint16)
print nlist, type(nlist[0])

выход:

[26371 26371] <type 'numpy.uint16'>
...