2011-10-25 26 views
6

Napisałem prosty program dla Maemo by Python, aby sprawdzić kolory niektórych pikseli za każdym razem, gdy moja funkcja jest wywoływana. Ale ta funkcja działa bardzo wolno (3-5 sekund każde wywołanie). Czy jest jakiś szybszy sposób to zrobić?użyć kamery Maemo przez python

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 
+0

Bez znajomości gstreamer, czy konwersja przestrzeni kolorów jest naprawdę konieczna? Pomocne może być również dostrojenie parametru jakości do 'jpegenc'. –

Odpowiedz

1

Jak mówi George, możesz ponieść koszty w wywołaniu systemowym, ale podejrzewam, że wywołanie getpixel(). PIL's getpixel() jest notorycznie powolny. Zamiast tego obraz, a następnie pętla - powinna być szybsza.