こんにちは私は自分自身を改善しようとしています。私はラズベリーパイに興味があります。ラズベリーパイ、ラズベリーパイカメラ、tftスクリーンの学生プロジェクトを開発したい。これは、raspi camが顔を検出すると、1つの映画を表示し、他の映画を表示していない顔を検出します。私は以下のようなコードを書いた。私はpython opencv omxplayer libsを使用しました。コードを実行すると、顔が検出されなければビデオは再生されませんが、顔が検出された場合、ビデオは非常に真剣にオン/オフし、ビデオは表示されず、黒い影だけが素早く画面に表示されます。助けてくれてありがとう。よろしくお願いします。ラズベリーパイ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)
ここで問題をよりよく説明する必要があると思います。私は最後の文を理解できません。 –
あなたのリプレイのおかげで、私は編集しました。 –