13

する必要がある:

  1. ビデオファイルを開く
  2. ファイルのフレームを画像として繰り返します
  3. ビデオのこの画像フレームでいくつかの分析を行います
  4. ビデオのこの画像に描画します
  5. これらの変更で新しいビデオを作成します

私のウェブカメラでは OpenCV が機能しませんが、python-gst は機能しています。これは python-gst を使用して可能ですか?

ありがとうございました!

4

4 に答える 4

7

opencv が Web カメラに接続できない、またはそれによって記録されたビデオ ファイルを読み取れないということですか?

ビデオを別の形式で保存しようとしましたか?

OpenCV は、おそらく最もサポートされている Python 画像処理ツールです。

于 2009-09-26T04:47:50.210 に答える
3

このスクリプトを使用して、ムービーを numpy 配列 + バイナリ ストアに変換しました。

"""
Takes a MPEG movie and produces a numpy record file with a numpy array.

"""
import os

filename = 'walking'
if not(os.path.isfile(filename + '.npy')): # do nothing if files exists
    N_frame = 42 # number of frames we want to store
    os.system('ffmpeg -i WALK.MOV.qt -f image2 foo-%03d.png')
    # convert them to numpy
    from numpy import zeros, save, mean
    from pylab import imread

    n_x, n_y, n_rgb =  imread('foo-001.png').shape

    mov = zeros((n_y, n_x, N_frame))

    for i_frame in range(N_frame):
        name = 'foo-%03d.png' % (i_frame +1)
        mov[:n_y,:n_x,i_frame] = flipud(mean(imread(name), axis=2)).T

    os.system('rm -f foo-*.png')
    save(filename + '.npy', mov)

慣例によっては、画像を反転させたくない場合があることに注意してください。次に、次を使用してロードできます。

load('walking.npy')
于 2009-12-21T10:25:19.613 に答える
3

私はこれを自分で経験しています。mmreader を使用した MATLAB のほんの数行ですが、ビデオ ファイルから numpy にフレームをプルする方法を見つけようとして、すでに 2 日かかりました。十分なディスク容量があり、リアルタイムである必要がない場合は、次を使用できます。

mplayer -noconsolecontrols -vo png blah.mov

次に、次を使用して .png ファイルを numpy にプルします。

pylab.imread('blah0000001.png')

これが不完全であることはわかっていますが、それでも役立つ場合があります。幸運を!

于 2009-12-18T17:36:04.793 に答える
0

Webカメラ用のC/C ++ラッパーを作成し、SWIGまたはSIPを使用してPythonからこれらの関数にアクセスするだけです。次に、PythonでOpenCVを使用します。これは、実際に最高のオープンソースのコンピュータービジョンライブラリです。

パフォーマンスが心配でLinuxで作業している場合は、OpenCVからゼロの労力で実行時にロードできるIntel Performance Primitives(IPP)の無料バージョンをダウンロードできます。特定のアルゴリズムでは、パフォーマンスが200%向上し、時間のかかる機能のほとんどを自動マルチコアサポートすることができます。

于 2009-09-30T11:00:07.157 に答える