する必要がある:
- ビデオファイルを開く
- ファイルのフレームを画像として繰り返します
- ビデオのこの画像フレームでいくつかの分析を行います
- ビデオのこの画像に描画します
- これらの変更で新しいビデオを作成します
私のウェブカメラでは OpenCV が機能しませんが、python-gst は機能しています。これは python-gst を使用して可能ですか?
ありがとうございました!
する必要がある:
私のウェブカメラでは OpenCV が機能しませんが、python-gst は機能しています。これは python-gst を使用して可能ですか?
ありがとうございました!
opencv が Web カメラに接続できない、またはそれによって記録されたビデオ ファイルを読み取れないということですか?
ビデオを別の形式で保存しようとしましたか?
OpenCV は、おそらく最もサポートされている Python 画像処理ツールです。
このスクリプトを使用して、ムービーを 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')
私はこれを自分で経験しています。mmreader を使用した MATLAB のほんの数行ですが、ビデオ ファイルから numpy にフレームをプルする方法を見つけようとして、すでに 2 日かかりました。十分なディスク容量があり、リアルタイムである必要がない場合は、次を使用できます。
mplayer -noconsolecontrols -vo png blah.mov
次に、次を使用して .png ファイルを numpy にプルします。
pylab.imread('blah0000001.png')
これが不完全であることはわかっていますが、それでも役立つ場合があります。幸運を!
Webカメラ用のC/C ++ラッパーを作成し、SWIGまたはSIPを使用してPythonからこれらの関数にアクセスするだけです。次に、PythonでOpenCVを使用します。これは、実際に最高のオープンソースのコンピュータービジョンライブラリです。
パフォーマンスが心配でLinuxで作業している場合は、OpenCVからゼロの労力で実行時にロードできるIntel Performance Primitives(IPP)の無料バージョンをダウンロードできます。特定のアルゴリズムでは、パフォーマンスが200%向上し、時間のかかる機能のほとんどを自動マルチコアサポートすることができます。