私はubuntu14.04を使用していて、anaconda pythonをインストールしています。condainstallopencvとcondainstall cv2を使用してopencvをインストールしました。しかし、VideoCaptureをまったく使用できません(ビデオを処理する必要があります)フレームごと)。プロジェクトの残りの部分ではanacondaを使用する必要があります。
これが私のコードです:
import cv2
import os
capture = cv2.VideoCapture('/home/Downloads/data/zfH2XdRcH14.mp4')
while not capture.isOpened():
print 'noob'
while True:
ret, frame = capture.read()
cv2.imwrite('~/Downloads/data/pic.png',frame)
cv2.imshow('Video', frame)
count += 1
print count
コードはnoobを出力し続けます。場所を何度も確認しましたが、正しいです。私は問題が何であるか見当がつかず、私はこれに何時間も立ち往生しています。
解決策は、opencvでffmpegをコンパイルすることです。 opencv3については、 https://github.com/menpo/conda-opencv を参照してください。
Opencv2については、 http://dhaneshr.net/2016/06/03/installing-opencv-2-4-x-with-ffmpeg-python-on-anaconda/ を参照してください。
ffmpegはデフォルトのcondaチャネルには存在しません。
ビデオ処理用の最新および追加のパッケージと依存関係を含むconda-forgeチャネルからopencvをダウンロードする必要があります。次のことを試してください。
conda install -c conda-forge ffmpeg
conda install -c conda-forge opencv
ここで、-cは、チャネルに「conda-forge」として使用するように指示します。
私は同じ問題に遭遇しました。 ffmpegが有効になっていないため、VideoCaptureはCondaのデフォルトバージョンのOpenCVでは機能しません。 VideoCaptureを機能させるには、CmakeGUIでffmpegを有効にしてコンパイルする必要があります。 ffmpegが有効になっている私のバージョンのOpenCVをインストールすることもできます。
conda install -c https://conda.binstar.org/jaimeivancervantes opencv
私も同じ問題を抱えていたと思います。 lib
フォルダーをPATH
に追加して修正しました。例えば、
export PATH="/home/iori/anaconda3/bin:$PATH"
export PATH="/home/iori/anaconda3/lib:$PATH"
私の.bachrc
にはこの2行目があります。最初の行はanacondaによって追加され、source activate
コマンドはこのbin
フォルダーを切り替えますが、opencvがそことのlib_opencv_*.so
ファイルを見つけることができないため、迷惑だと思ったlib
フォルダーは処理されないと思います。もちろんcv2.VideoCaptureは失敗します。
上記の例は、デフォルトのcondaenvの問題を修正します。他の環境の場合でも、lib
フォルダーをPATH
に手動で追加する必要があります。だから、私はsource activate
コマンドをカスタマイズしてこれを自動的に行う方法を知りたいです...
Conda-recipesを使用してffmpegをインストールします。
git clone https://github.com/conda/conda-recipes.git
cd conda-recipes
conda build x264
conda build ffmpeg
ここ も参照してください。
私は同じ問題を抱えていて、インターネットを調べた後、うまくいく解決策を見つけました。管理者アクセス権のあるコマンドライン:
conda install conda-build
conda install cmake
conda config --add channels menpo
次のファイルを編集します。
C:\ Program Files\Anaconda2\pkgs\cmake-3.6.3-vc9_0\info\recipe\buy.sh
次のフラグを追加します。
-DWITH_FFMPEG = 1
たとえば、私の場合:
#!/bin/bash
LDFLAGS=$LDFLAGS" -Wl,-rpath,$PREFIX/lib" \
./bootstrap \
--verbose \
--prefix="${PREFIX}" \
--system-libs \
--no-qt-gui \
--no-system-libarchive \
--no-system-jsoncpp \
-- \
-DWITH_FFMPEG = 1 \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DCMAKE_FIND_ROOT_PATH="${PREFIX}"
make
make install
最後に:
conda build /conda
それは私に働いた。
一方、私は以前にopencv_ffmpegxyz.dllファイルを\ opencv\build\binから\ Program Files\Anaconda2にコピーしました。私の場合、opencv_ffmpe320_64.dll(64ビットバージョン)で、opencv_ffmpeg.dllファイルが配置されているパスにffmpegという新しい環境変数を追加しました。
よろしく。
ビデオライターを機能させる別の方法を見つけました。実際にImageMagikをコンピューターにインストールしてから、アニメーションパスをImageMagikをインストールした場所に設定しました。 ffmpegでも同じことができるのだろうか?
plt.rcParams["animation.convert_path"] = "C:\ProgramFiles\ImageMagick\magick.exe"
#Here I am loading a matplotlib.plot as the animation, so it could be different than for you, but the point is that by specifying the path to imagemagik I was able to write a video to a file.
anim = animation.FuncAnimation(fig, animate, frames=len(mylist), init_func=init, interval=300, blit=True)
anim.save('output.gif', dpi=80, writer='imagemagik')