Объект numpy.ndarray не вызывается? - PullRequest
0 голосов
/ 03 ноября 2018

Запуск этого скрипта:

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 Ответ

0 голосов
/ 03 ноября 2018

array - это атрибут, а не метод. Вам не нужно называть это.

Используйте stream.array, а не stream.array().

Источник: PiArrayOutput, который является базовым классом для PiBayerArray.

И наоборот, .demosaic() - это метод экземпляра, поэтому вам нужно вызвать его, чтобы получить возвращаемое значение.

...