Yaroslav commited on
Commit
e804a7f
·
verified ·
1 Parent(s): 65f9346

yooo cool

Files changed (1) hide show
  1. app.py +17 -4
app.py CHANGED
@@ -20,29 +20,42 @@ def increase_fps(input_video_path, target_fps=60):
20
  # Расчет коэффициента интерполяции
21
  ratio = target_fps / input_fps
22
  output = cv2.VideoWriter(output_path, codec, target_fps, (width, height))
23
- _, prev_frame = cap.read()
 
 
 
 
 
 
 
24
  prev_frame_gray = cv2.cvtColor(prev_frame, cv2.COLOR_BGR2GRAY)
25
 
26
  for _ in range(frame_count - 1):
27
  ret, next_frame = cap.read()
28
  if not ret:
29
  break
 
 
30
  next_frame_gray = cv2.cvtColor(next_frame, cv2.COLOR_BGR2GRAY)
31
 
 
 
 
 
32
  # Оптический поток
33
  flow = cv2.calcOpticalFlowFarneback(
34
- prev_frame, next_frame_gray, None, 0.5, 3, 15, 3, 5, 1.2, 0
35
  )
36
 
37
  # Генерация промежуточных кадров
38
  for i in range(1, int(ratio)):
39
  alpha = i / ratio
40
- intermediate_frame = cv2.addWeighted(prev_frame, 1 - alpha, next_frame_gray, alpha, 0)
41
  intermediate_bgr = cv2.cvtColor(intermediate_frame, cv2.COLOR_GRAY2BGR)
42
  output.write(intermediate_bgr)
43
 
44
  output.write(next_frame)
45
- prev_frame = next_frame_gray
46
 
47
  cap.release()
48
  output.release()
 
20
  # Расчет коэффициента интерполяции
21
  ratio = target_fps / input_fps
22
  output = cv2.VideoWriter(output_path, codec, target_fps, (width, height))
23
+ ret, prev_frame = cap.read()
24
+
25
+ # Проверка первого кадра
26
+ if not ret:
27
+ cap.release()
28
+ output.release()
29
+ raise ValueError("Не удалось прочитать кадры из видео.")
30
+
31
  prev_frame_gray = cv2.cvtColor(prev_frame, cv2.COLOR_BGR2GRAY)
32
 
33
  for _ in range(frame_count - 1):
34
  ret, next_frame = cap.read()
35
  if not ret:
36
  break
37
+
38
+ # Преобразуем текущий кадр в черно-белый
39
  next_frame_gray = cv2.cvtColor(next_frame, cv2.COLOR_BGR2GRAY)
40
 
41
+ # Убедимся, что размеры кадров совпадают
42
+ if prev_frame_gray.shape != next_frame_gray.shape:
43
+ next_frame_gray = cv2.resize(next_frame_gray, (prev_frame_gray.shape[1], prev_frame_gray.shape[0]))
44
+
45
  # Оптический поток
46
  flow = cv2.calcOpticalFlowFarneback(
47
+ prev_frame_gray, next_frame_gray, None, 0.5, 3, 15, 3, 5, 1.2, 0
48
  )
49
 
50
  # Генерация промежуточных кадров
51
  for i in range(1, int(ratio)):
52
  alpha = i / ratio
53
+ intermediate_frame = cv2.addWeighted(prev_frame_gray, 1 - alpha, next_frame_gray, alpha, 0)
54
  intermediate_bgr = cv2.cvtColor(intermediate_frame, cv2.COLOR_GRAY2BGR)
55
  output.write(intermediate_bgr)
56
 
57
  output.write(next_frame)
58
+ prev_frame_gray = next_frame_gray
59
 
60
  cap.release()
61
  output.release()