2017-01-26 3 views
1

Привет, я пытаюсь улучшить себя, и меня интересует малина Pi. Я хочу разработать студенческий проект с малиновой пи, малиновой пи-камерой и tft-экраном. Он включает в себя, когда raspi cam обнаруживает лицо, отображает один фильм и не обнаруживает какого-либо лицевого дисплея другого фильма. Я написал код, как показано ниже. Я использовал python opencv omxplayer libs. Когда я запускаю код, если лицо не обнаружено, видео не воспроизводится, но если лицо обнаружено, видео очень сильно включается и выключается, видео не появляется, только черные тени быстро появляются и выходят на экран. Спасибо за помощь. С уважением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) 
+0

Думаю, вам стоит лучше объяснить проблему здесь. Я не могу понять последнее предложение. –

+0

спасибо за ваш повтор, я отредактировал. –

ответ

1

Проблема здесь в инструкции. Когда программа распознает лицо, введите в цикле while. Здесь он продолжает убивать omxplayer и запускать фильм.
Попробуйте удалить цикл while и посмотреть, работает ли код.

+0

Спасибо за ответ еще раз. Я удалил во время инструкции. Теперь, когда лицо не обнаружено, видео выглядит как обнаружение лица в старом коде, видео очень сильно включается и выключается, видео не появляется, только черные тени быстро появляются и выходят на экран. Есть ли у вас какие-либо предположения для этой ситуации? –

+0

Можете ли вы опубликовать скриншот проблемы? –

+0

Я снял видео в течение 2 секунд. Я добавил к youtube. Ссылка: https://youtu.be/NPIPnlGYMOU –