访问多相机树莓派

时间:2020-07-20 05:15:39

标签: python camera cv2

所以现在我在树莓派中使用相机。我正在使用Arducam多摄像机板V2.2来使用多摄像机。在本教程中,它为具有不同GPIO端口的每个摄像机使用I2C。通过此代码,我成功地使用了cv2.imshow和第一个端口摄像机来显示视频流:

from picamera.array import PiRGBArray
from picamera import PiCamera
import time
import cv2
import RPi.GPIO as gp
import os

gp.setwarnings(False)
gp.setmode(gp.BOARD)

gp.setup(7,gp.OUT)
gp.setup(11,gp.OUT)
gp.setup(12,gp.OUT)
gp.setup(13,gp.OUT)

i2c = "i2cset -y 1 0x70 0x00 0x04"
os.system(i2c)
gp.output(7, False)
gp.output(11, False)
gp.output(12, True)

camera = PiCamera()
camera.resolution = (640, 480)
camera.framerate = 32
rawCapture = PiRGBArray(camera, size=(640, 480))

time.sleep(0.1)

for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):
    image = frame.array

    cv2.imshow("Frame", image)
    key = cv2.waitKey(1) & 0xFF
    rawCapture.truncate(0)

    if key == ord("q"):
        break

现在,我想在其他窗口中显示其他摄像机。谁能帮我怎么做?我没有使用Arducam的测试代码,因为它使用GUI将所有摄像机组合到一个窗口中。

P.S .:这是所有相机端口的I2C。

#Camera A
i2c = "i2cset -y 1 0x70 0x00 0x04"
os.system(i2c)
gp.output(7, False)
gp.output(11, False)
gp.output(12, True)

#Camera B   
i2c = "i2cset -y 1 0x70 0x00 0x05"
os.system(i2c)
gp.output(7, True)
gp.output(11, False)
gp.output(12, True)

#Camera C
i2c = "i2cset -y 1 0x70 0x00 0x06"
os.system(i2c)
gp.output(7, False)
gp.output(11, True)
gp.output(12, False)
    
#Camera D
i2c = "i2cset -y 1 0x70 0x00 0x07"
os.system(i2c)
gp.output(7, True)
gp.output(11, True)
gp.output(12, False)

谢谢。

0 个答案:

没有答案