我用Python为Maemo编写了一个简单的程序,每次调用我的函数时都要检查一些像素的颜色。但是这个函数运行得非常慢(每次调用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
通过
os.system
调用一个外部程序很可能需要花费时间。在请尝试使用GStreamer Python Bindings,并在调用之间保留视频对象。The docs for Videomixer可能有帮助。在
正如George所说,您可能会在系统调用中产生开销,但我怀疑} 图像,然后循环浏览应该更快。在
getpixel()
调用。众所周知,PIL的速度很慢。取而代之的是^{相关问题 更多 >
编程相关推荐