2016-11-03 5 views
0

私は以下のコードを持っていると私は多くの部分でそれを変更したい:ラズベリーパイのカメラとOpenCVのとのpython

は、どのように私はRaspberyのPiカメラの代わりにUSBカメラを使用することができますか?

私にヒントを与えたり、正しいコードを書いてくれた人には、感謝しています。

コードは次のとおりです。

import cv2.cv as cv 
import smbus 
import cv2 
bus = smbus.SMBus(1) 
address = 0x04 

def sendData(value): 
    bus.write_byte(address, value) 
    return -1 
def readData(): 
    state = bus.read_byte(address) 
    return state 
def ColorProcess(img): 
    imgHSV = cv.CreateImage(cv.GetSize(img) ,8 ,3) 
    cv.CvtColor(img, imgHSV, cv.CV_BGR2HSV) 
    imgProcessed = cv.CreateImage(cv.GetSize(img) ,8 ,1) 
    cv.InRangeS(imgHSV, (100, 94, 84), (109, 171, 143), imgProcessed) 
    return imgProcessed 
def main(): 
    width = 320 
    height = 240 

    capture = cv.CreateCameraCapture(0) 
    cv.SetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_WIDTH, width) 
    cv.SetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_HEIGHT, height) 
    cv.NamedWindow("output", 1) 
    cv.NamedWindow("processed", 1) 

    while True: 
     frame = cv.QueryFrame(capture) 
     cv.Smooth(frame, frame, cv.CV_BLUR, 3) 
     imgColorProcessed = ColorProcess(frame) 
     mat = cv.GetMat(imgColorProcessed) 
     moments = cv.Moments(mat, 0) 
     area = cv.GetCentralMoment(moments, 0, 0) 
     moment10 = cv.GetSpatialMoment(moments, 1, 0) 
     moment01 = cv.GetSpatialMoment(moments, 0, 1) 

     if (area > 60000): 
      posX = int(moment10/area) 
      posY = int(moment01/area) 
      ali = long(2000000) 

      state = readData() 
      if state == 1: 
       sendData(posX) 
       sendData(posY) 

      print 'x: ' + str(posX) + 'y: ' + str(posY) 

     cv.ShowImage("processed", imgColorProcessed) 
     cv.ShowImage("output", frame) 

     if cv.WaitKey(10) >= 0: 

      break 

    return; 

if __name__ == "__main__": 
     main() 

私は高い任意の助けに感謝します。

ありがとうございました。

+0

1つの質問につき1つの質問 – Miki

+0

あなたは1つだけにお答えいただき、ありがとうございます。 – ITLover

+0

@ITLover答えたいと思えば、3つの別々の質問に分割しなければならない微妙なヒントだったと思います。 –

答えて

0

このコマンドをPiのLXターミナルで実行すると、ドライバが処理されます。

sudo modprobe bcm2835-v4l2 
関連する問題