質問編集履歴

1

解決したコードを掲載しました

2022/01/25 00:49

投稿

9nahito
9nahito

スコア45

test CHANGED
File without changes
test CHANGED
@@ -68,3 +68,68 @@
68
68
  rec.release()
69
69
  ```
70
70
 
71
+ 解決したコード ppaulさん
72
+ ```python
73
+ # -*- coding: utf-8 -*-
74
+ import cv2
75
+
76
+
77
+ # 定数定義
78
+ ESC_KEY = 27 # Escキー
79
+ INTERVAL= 33 # 待ち時間
80
+ FRAME_RATE = 60 # fps,もとのfpsよりも早いか遅いかで再生速度にもなる。
81
+
82
+ ORG_WINDOW_NAME = "org"
83
+ GRAY_WINDOW_NAME = "gray"
84
+
85
+ ORG_FILE_NAME = "/home/baka2022blue/デスクトップ/9.mp4"
86
+ GRAY_FILE_NAME = "test2.mp4"
87
+
88
+ # 元ビデオファイル読み込み
89
+ org = cv2.VideoCapture(ORG_FILE_NAME)
90
+
91
+ # 保存ビデオファイルの準備
92
+ end_flag, c_frame = org.read()
93
+ height, width, channels = c_frame.shape
94
+ rec = cv2.VideoWriter(GRAY_FILE_NAME, \
95
+ cv2.VideoWriter_fourcc(*'XVID'), \
96
+ FRAME_RATE, \
97
+ (width, height), \
98
+ True)
99
+ # ウィンドウの準備
100
+ #cv2.namedWindow(ORG_WINDOW_NAME)
101
+ cv2.namedWindow(GRAY_WINDOW_NAME)
102
+
103
+ time = 0
104
+
105
+ # 変換処理ループ
106
+ while end_flag == True:
107
+ if time <= 300:
108
+ # グレースケール変換
109
+ # cv2.cvtColor(変換する映像,色の変更方法)
110
+ g_frame = cv2.cvtColor(cv2.cvtColor(c_frame, cv2.COLOR_BGR2GRAY), cv2.COLOR_BGR2GRAY)
111
+ else:
112
+ g_frame = c_frame
113
+ # フレーム表示
114
+ #cv2.imshow(ORG_WINDOW_NAME, c_frame)
115
+ cv2.imshow(GRAY_WINDOW_NAME, g_frame)
116
+
117
+ # フレーム書き込み
118
+ rec.write(g_frame)
119
+
120
+ # Escキーで終了
121
+ key = cv2.waitKey(INTERVAL)
122
+ if key == ESC_KEY:
123
+ break
124
+
125
+ # 次のフレーム読み込み
126
+ end_flag, c_frame = org.read()
127
+ time+=1
128
+
129
+ # 終了処理
130
+ cv2.destroyAllWindows()
131
+ org.release()
132
+ rec.release()
133
+ ```
134
+
135
+