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

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

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

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

5322閲覧

Opencvを使って自前の動画を読み込みたい

yumiwo

総合スコア5

OpenCV

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/05/17 11:45

編集2020/05/17 12:08

初心者です。
NVIDIAのJetson nanoでopencvを使用して自前の動画を読み込んで再生させたいのですが、errorが出てしまうので質問させていただきました。
下記コードでカメラ映像の再生を試みました。
jetson nanoでopencvを使ってカメラを動かすには、よくわからなったのですがGStreamerを使うことでカメラを起動することができたため使っています。

python

1import cv2 2 3GST_STR = 'nvarguscamerasrc \ 4 ! video/x-raw(memory:NVMM), width=1920, height=1080, format=(string)NV12, framerate=(fraction)30/1 \ 5 ! nvvidconv ! video/x-raw, width=(int)1920, height=(int)1080, format=(string)BGRx \ 6 ! videoconvert \ 7 ! appsink' 8WINDOW_NAME = 'Camera Test' 9filepath = "./IMG_8403.mov" 10 11def main(): 12 cap = cv2.VideoCapture(GST_STR, cv2.CAP_GSTREAMER,filepath) 13 14 while True: 15 ret, img = cap.read() 16 img_180 = cv2.rotate(img, cv2.ROTATE_180) 17 if ret != True: 18 break 19 20 cv2.imshow(WINDOW_NAME, img_180) 21 22 key = cv2.waitKey(10) 23 if key == 27: # ESC 24 break 25 26if __name__ == "__main__": 27 main() 28~

出てきたエラーは以下のとおりです
Traceback (most recent call last):
File "nano_cam.py", line 27, in <module>
main()
File "nano_cam.py", line 12, in main
cap = cv2.VideoCapture(GST_STR, cv2.CAP_GSTREAMER,filepath)
TypeError: VideoCapture() takes at most 2 arguments (3 given)

cv2.VideoCapture()の引数は2つにしてくださいということだと解釈していますが、GST_STR,cv2.CAP_GSTREAMERのどちらか一方、または両方を消した場合、カメラ自体の読み込みができなくなります。
このエラーの解消法をしている方、GStreamerについて知っている方、ご助言をいただけないでしょうか?

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

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

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

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

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

guest

回答1

0

詳しくないので直感ですが、filepathが不要なのでは?

投稿2020/05/17 12:05

fiveHundred

総合スコア9803

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

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

yumiwo

2020/05/17 12:40 編集

すみません。 説明不足でした。 filepathの部分が自前の動画のパスになっています。 今回は、自前の動画を再生させたいので、filepathは書いておきました。 ちなみにfilepathを抜いて実行した場合は、ただカメラがうつるだけです。
fiveHundred

2020/05/17 12:41

- 「cap = cv2.VideoCapture(filepath)」とすればGStreamerを使わずとも再生できそうですが、試してみましたか? - 上記で上手くいかない場合は、filepathを引数で指定するのではなく、GStreamerのコマンド(?)で指定してみてください
yumiwo

2020/05/17 13:43

コメントありがとうございます。 GStreamerを使わずに cap = cv2.VideoCapture(filepath)とした場合は下記のエラーが発生します。Jetson nanoでカメラを使用する際にGStreamerを使わない方法がよくわからなかったので、現在は使うようにしていました。 [ WARN:0] global /home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap_gstreamer.cpp (711) open OpenCV | GStreamer warning: Error opening bin: no source element for URI "./IMG_8403.mov" [ WARN:0] global /home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap_gstreamer.cpp (480) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問