質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

2回答

4842閲覧

PythonのOpencvで.avi動画を読み込みたい

MatsuiAyaka

総合スコア0

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/01/05 11:50

前提・実現したいこと

Jupyter Notebook(Mac)で『データ分析100本ノック』第9章を読みながら画像認識を行っています。
.avi動画を読み込もうとしたところ以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

動画を読み込みません。
画像幅などをwidthで取り出しても、「0.0」と出ます。
本は0ではなかったです。

エラーメッセージ```OpenCV: Couldn't read movie file "mov/mov01.avi"

該当のソースコード

import cv2
cap = cv2.VideoCapture("mov/mov01.avi")
width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
count = cap.get(cv2.CAP_PROP_FRAME_COUNT)
fps = cap.get(cv2.CAP_PROP_FPS)
print("画像幅: " + str(width))
print("画像高さ: " + str(height))
print("総フレーム数: " + str(count))
print("FPS: " + str(fps))
while(cap.isOpened()):
ret, frame = cap.read()

試したこと

・ImageMagickのインストール
・Moviepyのインストール
・skvideoのインストール
・ファイルの存在確認

補足情報(FW/ツールのバージョンなど)

JupyterNotebook6.4.5
MacbookPro10.13

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yominet

2022/01/05 13:42

1.mov01.aviは、別の動画再生ソフトで再生できますか? 2.mov01.aviの映像部分のコーデックはOpenCVで対応されていますか? 3.現在のソースコードを使って   他の動画ファイル(入手元や形式の違う動画で試してください)は読み込み可能でしょうか?
guest

回答2

0

OpenCV:ムービーファイル「mov /mov01.avi」を読み取れませんでしたってでているのでコード失敗なのでは

投稿2022/01/05 12:05

reminuku

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

調べてか質問してください!
しらべたらこれが出てきました

#include <cv.h> #include <highgui.h> using namespace cv; int main (int argc, char **argv) { double width; // 幅 double height; // 高さ double fps; // フレームレート double msec; // 現在位置 double index = -1; // フレームのインデックス double ratio; // 相対位置 CvCapture *capture = NULL; IplImage *frame = 0; double prev_index; int ch; // 幅と高さの取得 capture = cvCaptureFromFile("/usr/local/share/OpenCV/samples/c/tree.avi"); width = cvGetCaptureProperty (capture, CV_CAP_PROP_FRAME_WIDTH); height = cvGetCaptureProperty (capture, CV_CAP_PROP_FRAME_HEIGHT); fps = cvGetCaptureProperty (capture, CV_CAP_PROP_FPS); namedWindow ("Video File", CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO); while (1) { frame = cvQueryFrame (capture); msec = cvGetCaptureProperty (capture, CV_CAP_PROP_POS_MSEC); prev_index = index; index = cvGetCaptureProperty (capture, CV_CAP_PROP_POS_FRAMES); ratio = cvGetCaptureProperty (capture, CV_CAP_PROP_POS_AVI_RATIO); cvShowImage ("Capture", frame); ch = cvWaitKey ( 1000.0 / fps ); // 0 はディレイ時間 (ミリ秒単位) if (ch == '\x1b') { // ESC キー break; } fprintf( stderr, "width = %f, height = %f, fps = %f, index = %f, msec = %f\n", width, height, fps, index, msec ); if ( prev_index == index ) { cvSetCaptureProperty (capture, CV_CAP_PROP_POS_AVI_RATIO, 0.0); } } cvReleaseCapture (&capture); cvDestroyWindow ("Capture"); return 0; }

投稿2022/01/05 12:04

reminuku

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

reminuku

2022/01/05 12:06

pythonではないかもしれません
fana

2022/01/06 02:53

低評価理由: > .avi動画を読み込もうとしたところ以下のエラーメッセージが発生しました という問題点に対して, {解決策として提示している,問題原因を述べている,etc}な内容が見当たらないため.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問