発生している問題
https://www.trifields.jp/how-to-install-opencv-on-ubuntu-2742を参考にしてOpenCV 3.3をインストールして、同サイトのサンプルプログラムをコンパイル・実行し成功したので、http://kivantium.hateblo.jp/entry/2014/11/25/230658を写経してOpenCVを勉強しようと思い、まずVideoCaptureを使って動画を読み込めるかを試すために以下のコードをコンパイルし、実行してみました。
terminal
1$ cat main.cpp 2#include <opencv2/opencv.hpp> 3 4using namespace std; 5using namespace cv; 6 7int main() { 8 9 string path = "./video.mp4"; 10 ifstream ifs(path); 11 if(ifs.is_open()) cout << "exist" << endl; 12 else cout << "not exist" << endl; 13 14 VideoCapture video("./video.mp4"); 15 16 if(!video.isOpened()) { 17 cout << "Video not found!" << endl; 18 return -1; 19 } 20 21 return 0; 22} 23$ g++ main.cpp -o out `pkg-config --cflags opencv` `pkg-config --libs opencv` 24$ ./out 25exist 26Video not found!
というふうにビデオを読み込めないので困っています。自分なりにGoogle検索を使って調べてヒットした情報を試してみました。それは以下の「試したこと」に記載しておきます。数日調べてみても解決しなかったため質問させて頂きました。何卒よろしくおねがいします。
試したこと
USBカメラを使って試してみる → USBカメラを持っていないので試せない
相対パスで指定するのではなく絶対パスで指定してみる → 変わらず
以下、調べていた時に気になったところ
https://stackoverflow.com/questions/8414947では、
A missing OpenCV's ffmpeg.dll does not generate any warnings/errors in OpenCV 2.3.1, and code fails silently. Make sure that you have proper opencv_ffmpeg*.dll in your path.
(訳) ffmpeg.dllが存在していない場合、警告を表示せずに動画の読み込みに失敗する?
https://ja.stackoverflow.com/questions/32443/mp4ファイルの読み込みでは、
opencv_ffmpeg310.dllを他のdll同様にexeと同一フォルダに配置したところ普通に読み込めました。
と書かれていたので、opencv_ffmpeg310.dllが存在するか調べるために、以下のコマンドをterminalで実行しましたが、
$ sudo find / -name 'opencv_ffmpeg310.dll'
opencv_ffmpeg310.dllがディスク内では見つかりませんでした。(本来はこのファイルが無いと読み込めない?)
補足情報
Ubuntu 19.10
OpenCV 3.3.0
g++ (Ubuntu 9.2.1-9ubuntu2) 9.2.1 20191008
ffmpeg version 4.1.4-1build2
回答1件
あなたの回答
tips
プレビュー