I wrote a simple program for Maemo by Python to check some pixel's color every time that my function is called. But this function runs very slowly (3-5 seconds each call). Is there any faster way to do this?
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
Calling an external program via
os.system
is likely what's taking the time.Try using GStreamer Python Bindings instead and keeping the video object around between calls. The docs for Videomixer may help.