2011-10-25 22 views
6

Tôi đã viết một chương trình đơn giản cho Maemo bằng Python để kiểm tra màu của một số pixel mỗi khi hàm của tôi được gọi. Nhưng chức năng này chạy rất chậm (3-5 giây mỗi cuộc gọi). Có cách nào nhanh hơn để làm điều này không?sử dụng máy ảnh maemo bởi 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

Nếu không quen thuộc với gstreamer, việc chuyển đổi không gian màu có thực sự cần thiết không? Ngoài ra, điều chỉnh tham số chất lượng thành 'jpegenc' có thể hữu ích. –

Trả lời

1

Như George nói, bạn có thể đang phát sinh chi phí trong một cuộc gọi hệ thống nhưng tôi nghi ngờ cuộc gọi getpixel(). P232's getpixel() nổi tiếng chậm. Thay vào đó, hãy load() hình ảnh và sau đó lặp lại - điều đó sẽ nhanh hơn.

Các vấn đề liên quan