2017-10-09 4 views
-1

私はPythonの新機能です。私は以下の問題を解決するのを助けてください。 "無効な引数"とはどういう意味ですか?キャプチャを開始できません:無効な引数

以下のコードはすべてうまくいきますが、コードを追加すると、データストリームによってライブストリームが公開されます。 「キャプチャを開始できません:無効な引数i:フレームの取り込みエラー」というエラーが発生します。ライブストリームを公開する際にエラーが発生すると、以下の機能が動き検出中に処理されます。

私はデフis_person(画像)の最上部に追加したコードは、エラーの原因となった:

os.system('sudo ./mjpg_streamer -i "./input_uvc.so -f 10 -r 640x320 -n -y" -o "./output_http.so -w ./www -p 80"') 

def is_person(image): 

    det = Detector(image) 
    faces = len(det.face()) 
    print ("FACE: "), det.drawColors[det.drawn-1 % len(det.drawColors)], faces 
    uppers = len(det.upper_body()) 
    print ("UPPR: "), det.drawColors[det.drawn-1 % len(det.drawColors)], uppers 
    fulls = len(det.full_body()) 
    print ("FULL: "), det.drawColors[det.drawn-1 % len(det.drawColors)], fulls 
    peds = len(det.pedestrian()) 
    print ("PEDS: "), det.drawColors[det.drawn-1 % len(det.drawColors)], peds 
    det.draw() 
    det.overlay() 

    return faces + uppers + fulls + peds 
    # return len(det.face()) or len(det.full_body()) or len(det.upper_body()) # or len(det.pedestrian()) 

def processImage(imgFile): 

    global connection 
    if is_person(imgFile): 
     print ("True") 
     imgFile = datetime.datetime.now() .strftime ("%Y-%m-%d-%H.%M.%S.jpg") 
     cam.capture (imgFile) 
     #with open(imgFile, "rb") as image_file: 
     # encoded_string = base64.b64encode(image_file.read()) 

    else: # Not a person 
     print ("False") 
    os.remove(imgFile) 
    sys.exit(0) 

try: 

    while True: 
     previous_state = current_state 
     current_state = GPIO.input(sensor) 
     if current_state != previous_state: 
      new_state = "HIGH" if current_state else "LOW" 
      if current_state:  # Motion is Detected 
       lock.acquire() 
       cam.start_preview() # Comment in future 
       cam.preview_fullscreen = False 
       cam.preview_window = (10,10, 320,240) 
       print('Motion Detected') 

       for i in range(imgCount): 
        curTime = (time.strftime("%I:%M:%S")) + ".jpg" 
        cam.capture(curTime, resize=(320,240)) 
        t = threading.Thread(target=processImage, args = (curTime,)) 
        t.daemon = True 
        t.start() 
        time.sleep(frameSleep) 
       cam.stop_preview() 
       lock.release() 
       time.sleep(camSleep) 

except KeyboardInterrupt: 

    cam.stop_preview() 
    sys.exit(0) 

は、事前にありがとうございます。

+0

トレースバック全体を投稿してください。どこにエラーが発生したかわからない場合、私たちは助けません。 –

+0

@brunodesthuilliersコード全体がうまく動作しますが、コードos.system( 'sudo ./mjpg_streamer -i "./input_uvc.so -f 10 -r 640x320 -n -y" -o "./output_http.so -w ./www -p 80" ') – XYZ

答えて

0

mjpg_streamer設定に問題があります。

チェックcomment #274 here

+0

すべてのmjpg-streamer設定が正常に完了しました。このコードの前にos.system(' sudo ./mjpg_streamer -i ' ./input_uvc.so -f 10 -r 640x320 -n -y "-o" ./output_http.so -w ./www -p 80 "')は別のpythonスクリプトでうまく動作します – XYZ

関連する問題