Когда объявление массива Python Numpy не получает аргументов?
У меня есть камера, подключенная к моему компьютеру, которая производит 16-битные изображения в градациях серого. Я импортирую их с проприетарным программным обеспечением производителя камеры, а затем вставляю в массив.
imObj = fc2.Image()
frame = np.array(c.retrieve_buffer(imObj))
Это приводит к массиву как uint8. Если я попытаюсь добавить параметр dtype в объявление массива:
frame = np.array(c.retrieve_buffer(imObj), dtype = np.uint16)
Я получаю следующий вывод:
typeError: __array__() takes no arguments (1 given)
Кто-нибудь знает, что вызывает это?
РЕДАКТИРОВАТЬ: я использую pyflycapture2. Я не знаю, как вызвать или установить атрибуты класса Image.
1 ответ
Кажется, вы используете pyflycapture2
который, кажется, не имеет __array__
крючок, способный перезаписывать данные.
Вместо этого его __array__
крюк выбирает dtype
соответствует изображению. То есть возвращает uint8
основанный массив, если основной формат PIXEL_FORMAT_MONO8
и uint16
основанный массив, когда формат PIXEL_FORMAT_MONO16
,
Возможно, стоит проверить, что формат изображения (c.retrieve_buffer(imObj).img.format
) это то что ты думаешь?