Объект numpy.ndarray не вызывается?
Запуск этого скрипта:
import time
import picamera
import picamera.array
import numpy as np
with picamera.PiCamera() as camera:
with picamera.array.PiBayerArray(camera) as stream:
camera.capture(stream, 'jpeg', bayer=True)
# Demosaic data and write to output (just use stream.array if you
# want to skip the demosaic step)
output = (stream.array() >> 2).astype(np.uint8)
with open('image.jpg', 'wb') as f:
output.tofile(f)
Выдает следующую ошибку:
Traceback (most recent call last):
File "numpy_simple.py", line 11, in <module>
output = (stream.array() >> 2).astype(np.uint8)
TypeError: 'numpy.ndarray' object is not callable
Во время бега:
output = (stream.demosaic() >> 2).astype(np.uint8)
with open('image.data', 'wb') as f:
output.tofile(f)
Не дает никакой ошибки.
Я немного смущен.
1 ответ
Решение
array
это атрибут, а не метод. Вам не нужно называть это.
использование stream.array
не stream.array()
,
Источник: PiArrayOutput
, который является базовым классом для PiBayerArray
,
Наоборот, .demosaic()
это метод экземпляра, поэтому вам нужно вызвать его, чтобы получить возвращаемое значение.