需要更快的图像捕获和处理方法

时间:2014-03-06 07:18:33

标签: python opencv python-imaging-library raspberry-pi raspbian

我正在使用这个命令,即OpenCV图像捕获并使用PIL进行处理。捕获和完成处理需要将近2秒。我需要更简单的命令和最快的处理才能为我的机器人工作。任何人都有建议请咨询。

import cv2
from cv2 import *
from PIL import Image 
import RPi.GPIO as GPIO
import time
im = 0
.
.
.
.
.
def imgCrop(im):
        box = (0, 190, 640, 200)
        region = im.crop(box)
        region.save('crop.jpg')
    return region

def imgThres(im):
        gray = im.convert('L')
        bw = gray.point(lambda x: 0 if x<150 else 255, '1')
        bw.save("bw.jpg")
    return bw

def find_centroid(im, rez):
        width, height = im.size
        XX, YY, count = 0, 0, 0
        for x in xrange(0, width, rez):
            for y in xrange(0, height, rez):
                    if im.getpixel((x, y)) == 255:
                        XX += x
                        YY += y
                        count += 1
        return XX/count, YY/count

def camera ():
    cam = VideoCapture(0)   # 0 -> index of camera
    s, img = cam.read()
    if s:    
            imwrite("img.jpg",img) #save image
    imageFile = "img.jpg"
    Img = Image.open(imageFile)
    cImg = imgCrop(Img)
    tImg = imgThres(cImg)
    print find_centroid(tImg, 1)

        cen = find_centroid(tImg, 1)
        diff = cen[0] - 320
        if diff > 10:
        right()
            print 'right'
        if diff < -10:
        left()
            print 'left'
        else:
        forward()
            print 'straight'


while True:
    camera ()

我使用raspberry pi B作为我的微控制器并使用网络摄像头捕捉图像。有关信息此命令仅用于图像捕获和处理。还有机器人动作命令但我没有包含在这里。

0 个答案:

没有答案
相关问题