2016-11-16 31 views
0

私は非常に新しいカメラです。今では、カメラで単純な動きを検出したいのですが、私はcv2.absdiff()を使います。しかし、私が得る配列(image1、image2)は同じです。抽象化のために異なる配列を取得する方法、または配列内の要素(画像)を取得する方法はありますか?ここ は私のコードです:picamera(python、opencv)から配列の画像を抽象化する方法

import sys 
sys.path.append('/usr/local/lib/python2.7/site-packages') 
from picamera.array import PiRGBArray 
from picamara import PiCamera 
import cv2 
import time 
import time 
import numpy as np 

camera = PiCamera() 
camera.resolution = (640,480) 
camera.framerate = 32 
rawCapture = PiRGBArray(camera,size=(640,480)) 

time.sleep(0.1) 

for frame in camera.capture_continuous(rawCapture,format="bgr",use_video_port=True): 

    image1 = frame.array 
    gray1 = cv2.cvtColor(image1,cv2.COLOR_BGR2GRAY) 
    cv2.waitKey(33) 
    image2 = frame.array 
    gray2 = cv2.cvtColor(image2,cv2.COLOR_BGR2GRAY) 

    diff = cv2.absdiff(gray1,gray2) 
    cv2.imshow("DIFF",diff) 

    key = cv2.waitKey(33)&0xFF 
    rawCapture.truncate(0) 
    if key == ord("q"): 
     break 

答えて

1

あなたのスクリプトは明らかに違いがあれば表示されません自体と同じフレームを比較しようとしています。あなたは、さらに定期的に初期を更新するために、それを高めることができる

import sys 
#sys.path.append('/usr/local/lib/python2.7/site-packages') 
from picamera.array import PiRGBArray 
from picamara import PiCamera 
import cv2 
import time 
import time 
import numpy as np 

camera = PiCamera() 
camera.resolution = (640,480) 
camera.framerate = 32 
rawCapture = PiRGBArray(camera,size=(640,480)) 
time.sleep(0.1) 
initial_frame = camera.capture(rawCapture, format="bgr", use_video_port=True): 

for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True): 
    cv2.waitKey(33) 
    image2 = frame.array 
    gray = cv2.cvtColor(image2, cv2.COLOR_BGR2GRAY) 

    diff = cv2.absdiff(initial_frame, gray) 
    cv2.imshow("DIFF", diff) 

    key = cv2.waitKey(33) & 0xFF 
    rawCapture.truncate(0) 

    if key == ord("q"): 
     break 

次のように同じよう

一つのアプローチは、何かをあなたのループを開始する前に、単一の最初のフレームを取り、その後、それに任意の後のフレームを比較することであろうバックグラウンドへの長期的な変更を説明するためのフレーム。

+0

元のコードは、同じ繰り返しステップ内で同じフレームに2回アクセスします。つまり、基本的な初心者のミスですか?私はあなたの説明がこの問題にもう少し焦点を合わせることができると感じています。 – Wolf

関連する問題