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

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

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

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

Python

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

解決済

OpenCVで動画の途中まで色変換したいです。

9nahito
9nahito

総合スコア28

OpenCV

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

Python

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

1回答

0評価

0クリップ

235閲覧

投稿2022/01/23 03:23

編集2022/01/25 11:22

OpenCVで動画を timeが300以下の時 まで色変換してそれ以降は色変換なしで出力したいです。

timeが300を超えても動画は 表示 されるのですが、出力された動画ファイルは timeが300以下 の時までしか出されていません。

どうしたら timeが300を超えても 動画を出力し続けれますか?

以下のサイトのコードを少し書き換えて使っています。
https://qiita.com/hitomatagi/items/ce00fab38d829965db3b

python

# -*- coding: utf-8 -*- import cv2 # 定数定義 ESC_KEY = 27 # Escキー INTERVAL= 33 # Eacを押してからの待ち時間 FRAME_RATE = 60 # fps time = 0 ORG_WINDOW_NAME = "org" GRAY_WINDOW_NAME = "gray" ORG_FILE_NAME = "動画.mp4" GRAY_FILE_NAME = "出力された動画.mp4" # 元ビデオファイル読み込み org = cv2.VideoCapture(ORG_FILE_NAME) # 保存ビデオファイルの準備 end_flag, c_frame = org.read() height, width, channels = c_frame.shape rec = cv2.VideoWriter(GRAY_FILE_NAME, \ cv2.VideoWriter_fourcc(*'XVID'), \ FRAME_RATE, \ (width, height), \ False) # ウィンドウの準備 #cv2.namedWindow(ORG_WINDOW_NAME) cv2.namedWindow(GRAY_WINDOW_NAME) # 変換処理ループ while end_flag == True: if time <= 300: # グレースケール変換 g_frame = cv2.cvtColor(c_frame, cv2.COLOR_BGR2GRAY) else: g_frame = c_frame # フレーム表示 #cv2.imshow(ORG_WINDOW_NAME, c_frame) cv2.imshow(GRAY_WINDOW_NAME, g_frame) # フレーム書き込み rec.write(g_frame) # Escキーで終了 key = cv2.waitKey(INTERVAL) if key == ESC_KEY: break # 次のフレーム読み込み end_flag, c_frame = org.read() time+=1 # 終了処理 cv2.destroyAllWindows() org.release() rec.release()

解決したコード ppaulさん

python

# -*- coding: utf-8 -*- import cv2 # 定数定義 ESC_KEY = 27 # Escキー INTERVAL= 33 # 待ち時間 FRAME_RATE = 60 # fps,もとのfpsよりも早いか遅いかで再生速度にもなる。 ORG_WINDOW_NAME = "org" GRAY_WINDOW_NAME = "gray" ORG_FILE_NAME = "/home/baka2022blue/デスクトップ/9.mp4" GRAY_FILE_NAME = "test2.mp4" # 元ビデオファイル読み込み org = cv2.VideoCapture(ORG_FILE_NAME) # 保存ビデオファイルの準備 end_flag, c_frame = org.read() height, width, channels = c_frame.shape rec = cv2.VideoWriter(GRAY_FILE_NAME, \ cv2.VideoWriter_fourcc(*'XVID'), \ FRAME_RATE, \ (width, height), \ True) # ウィンドウの準備 #cv2.namedWindow(ORG_WINDOW_NAME) cv2.namedWindow(GRAY_WINDOW_NAME) time = 0 # 変換処理ループ while end_flag == True: if time <= 300: # グレースケール変換 # cv2.cvtColor(変換する映像,色の変更方法) g_frame = cv2.cvtColor(cv2.cvtColor(c_frame, cv2.COLOR_BGR2GRAY), cv2.COLOR_BGR2GRAY) else: g_frame = c_frame # フレーム表示 #cv2.imshow(ORG_WINDOW_NAME, c_frame) cv2.imshow(GRAY_WINDOW_NAME, g_frame) # フレーム書き込み rec.write(g_frame) # Escキーで終了 key = cv2.waitKey(INTERVAL) if key == ESC_KEY: break # 次のフレーム読み込み end_flag, c_frame = org.read() time+=1 # 終了処理 cv2.destroyAllWindows() org.release() rec.release()

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

OpenCV

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

Python

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