использовать камеру maemo от python - PullRequest
6 голосов
/ 25 октября 2011

Я написал простую программу для 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

Ответы [ 2 ]

2 голосов
/ 25 ноября 2011

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

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

1 голос
/ 05 декабря 2011

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

...