используйте maemo camera на python

#python #camera #gstreamer #maemo

#python #камера #gstreamer #maemo

Вопрос:

Я написал простую программу для Maemo на Python, чтобы проверять цвет некоторых пикселей при каждом вызове моей функции. Но эта функция выполняется очень медленно (3-5 секунд при каждом вызове). Есть ли более быстрый способ сделать это?

 import Image
import os
import sys

# sen_pos = (pixel_x, pixel_y)
def sen(sen_pos):
    os.system("gst-launch v4l2src device=/dev/video0 num-buffers=1 ! ffmpegcolorspace ! jpegenc ! filesink location=cam.jpg")
    frame = Image.open("cam.jpg")
    col = frame.getpixel((sen_pos[0], sen_pos[1]))
    avecol = sum(col) / len(col)
    if avecol > 127:
        return "white"
    elif avecol < 127:
        return "black"
    return None
 

Комментарии:

1. Действительно ли необходимо преобразование цветового пространства, не будучи знакомым с gstreamer? Кроме того, jpegenc может помочь настройка параметра качества.

Ответ №1:

Вызов внешней программы через os.system , вероятно, отнимает время.

Попробуйте вместо этого использовать привязки GStreamer к Python и сохранять объект video между вызовами. Документы для Videomixer могут помочь.

Ответ №2:

Как говорит Джордж, вы можете понести накладные расходы при системном вызове, но я подозреваю getpixel() , что вызов. PIL getpixel() , как известно, работает медленно. Вместо load() этого изображение, а затем цикл — это должно быть быстрее.