私は、python(Python(x、y)ディストリビューション)アプリケーションでopencv(pythonxyインストーラでバージョン2.3.1)を使用してビデオファイルを開くことができないという問題があります。ファイルには問題のある形式(通常のMPEG-2であるべきですが、再生に関する問題が報告されています)がありますが、ffdshowビデオデコーダが処理します。python opencvでC++アプリケーションが読み取るファイルを処理する方法は?
私の問題は、同じシステム上のopencvの異なるインスタンスがファイルを別々に処理していることです。pythonディレクトリにインストールされているバージョンがファイルを読み込めません。
他のアプリケーションと同じ方法でpythonアプリケーションでビデオファイルを処理する方法はありますか?
次のコード:
import cv2.cv as cv
capture = cv.CaptureFromFile("film.mpeg")
print cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_POS_MSEC)
print cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_COUNT)
print cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_CONVERT_RGB )
cv.SetCaptureProperty(capture, cv.CV_CAP_PROP_POS_MSEC, 50)
frame = cv.QueryFrame(capture)
cv.SaveImage("img.jpg",frame)
戻り
0.0
0.0
0.0
、無効なイメージファイルを書き込みます。
同時に、同じコンピュータ上でopencv(同じバージョン番号2.3.1)を使用するC++アプリケーションがあり、このような形式でファイルを開くことができます。両方のアプリケーションが使用するライブラリをリストした後、私はC++のものがffdshow.ax
をロードすることを発見しました(私は名前を変更しないで、以下のポイント3を見てください)。私はPythonのアプリは
- :私がこれまで行ってきた何
私はopencv dllsを
C:\Python27\Lib\site-packages
に置き換え、動作しているアプリケーションのものと同じ結果を得ました。 - 私はファイル
ffdshow.ax
の名前をffdshow.ax_
に変更しましたが、C++アプリケーションはそれをロードせず、まだ動作していました。私は本当に混乱してしまいました。