2

ある夜の間にウェブカメラで静止画像をキャプチャしました。画像の照明が均一であるため、大部分は同じです。ただし、一部は他の部分とは大幅に異なります。フレーム内で人間の動きが見えます。

動きが画像に含まれるように、どの画像が大幅に異なるかをどのように検出できますか?さらに良いことに、動きを具体的に検出する方法はありますか?

OpenCVやSimpleCVのようなライブラリはこれを簡単に実現できると思いますが、私はそれらを使用することに限定されていません。

4

3 に答える 3

6

SimpleCVでは、

cam = Camera()
prev = cam.getImage()
while True:
    current = cam.getImage()
    fs = current.findMotion(prev, method="LK")
    if fs: #if there's motion
        print "motion found"
    prev = current

Image.findMotion()オプティカルフローを使用して動きを検出します。これはとても簡単に使えます。どのくらいの動きを期待するかに関する条件を追加します。

fs.dxfs.dy動きが検出されたすべてのポイントを提供します。

カメラから入力を取り、水平方向と垂直方向の動きを検出することで、BansheeMediaPlayerを制御する例を作成しました。ここで私のGitHubで見つけることができます。

于 2012-07-14T09:12:28.360 に答える
3

あなたが探しているものは、バックグラウンド減算と呼ばれます:

画像はウェブから取得されます

(画像はこの記事から取られています)

このSOディスカッションを見てください。

また、OpenCVには多くの記事/例があるので、グーグルで検索してください。

于 2012-07-14T09:14:00.220 に答える
1

あなたが持っている最初の画像が同じ種類のものである場合、最初の画像からのすべての画像の絶対差を見つけることができ、大幅に異なる画像を見つけるためのしきい値があります。また、openCVでは、ビデオの動きを検出するために、次のようなことができます: http ://sundararajana.blogspot.in/2007/05/motion-detection-using-opencv.html

于 2012-07-14T06:22:15.793 に答える