嗨,我正在努力提高自己,我对树莓派感兴趣。我想用树莓派,树莓派相机和TFT屏幕开发一个学生项目。它包括,当拉斯比凸轮检测到一个脸部时,显示一部电影,同时没有检测到任何脸部显示其他电影。我写了如下的代码。我用python opencv omxplayer库。当我运行代码时,如果没有检测到脸部,没有视频正在播放,但如果检测到脸部,视频会非常严肃地打开和关闭,视频不会出现,只有黑色阴影快速出现在屏幕上。感谢您的帮助。问候Raspberry Pi Omxplayer OpenCV
from picamera.array import PiRGBArray
from picamera import PiCamera
import time
import cv2
import os
import numpy
from subprocess import Popen
#setup movies
movie1 = ("my_movie1_path")
movie2 = ("my_movie2_path")
camera = PiCamera()
camera.resolution = (320, 240)
camera.framerate = 60
rawCapture = PiRGBArray(camera, size=(320, 240))
# Load a cascade file for detecting faces
face_cascade = cv2.CascadeClassifier('my_path/lbpcascade_frontalface.xml')
t_start = time.time()
fps = 0
# Capture frames from the camera
for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):
image = frame.array
# Use the cascade file we loaded to detect faces
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray)
print "1"
While True:
if len(faces) > 0 :
os.system('killall omxplayer.bin')
omcx = Popen(['omxplayer', '-b', movie2])
else :
os.system('killall omxplayer.bin')
omcx = Popen(['omxplayer', '-b', movie1])
#print "Found " + str(len(faces)) + " face(s)"
print "2"
rawCapture.truncate(0)
我认为你应该在这里解释更好的问题。我无法理解最后一句话。 –
感谢您的重播,我编辑。 –