我正在编写一个代码,当传感器使用多处理检测到相机图像时,它将捕获相机图像
使用多处理的原因目前不在代码中,但我想使用它在捕获期间实现不同的行为
然而,当传感器在使用当前代码操作时首次检测到图像时,图像被很好地捕获
从第二次检测开始,图像不像附加图像那样被捕获
在多处理中传递参数的方法似乎有问题,但如果您知道原因以及如何解决,请告诉我
import cv2
import cv2 as cv
import numpy as np
import io
from PIL import Image
import time
import picamera
import picamera.array
import RPi.GPIO as GPIO
from picamera.array import PiRGBArray
from datetime import datetime
import math
from multiprocessing import Process, Queue, Manager
import matplotlib.pyplot as plt
cameraSensor = 18 # pin No. of Camera
# Initialize the GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(cameraSensor, GPIO.IN, GPIO.PUD_DOWN)
cap = cv2.VideoCapture(0)
cap.set(3, 1280) #x width
cap.set(4, 720) #y height
cap.set(5, 60) #frame rate
def camera(queue):
print("camera")
startTime = time.time()
endTime = 100
num = 1
ret, frame = cap.read()
endTime = time.time()
print('shot time : ',endTime - startTime)
cv2.imwrite('/home/pi/Desktop/vision/frame/frame_'+str(time.time())+".jpg", frame)
endTime = time.time()
print('save time : ',endTime - startTime)
if __name__ == "__main__":
print("start")
GPIO.add_event_detect(cameraSensor, GPIO.RISING, bouncetime=800)
queue = Manager().Queue()
while True:
if GPIO.event_detected(cameraSensor):
process1 = Process(target=camera, args=(queue,))
process1.start()
目前没有回答
相关问题 更多 >
编程相关推荐