Browse Source

python 脚手架

master
zhanglei 1 week ago
parent
commit
9af85065aa
  1. 59
      cvideo2.py

59
cvideo2.py

@ -0,0 +1,59 @@
import cv2
import numpy as np
import sys
def convert_to_red_pseudo_color(input_path, output_path):
"""
将自然光视频转换为红色伪彩效果
"""
# 打开视频
cap = cv2.VideoCapture(input_path)
if not cap.isOpened():
print("❌ 无法打开视频文件,请检查路径是否正确")
return
# 获取视频参数
fps = cap.get(cv2.CAP_PROP_FPS)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
print(f"✅ 视频已加载,总帧数: {total_frames}, 分辨率: {width}x{height}, 帧率: {fps}")
# 创建视频写入对象
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter(output_path, fourcc, fps, (width, height))
frame_count = 0
while True:
ret, frame = cap.read()
if not ret:
break
# 转为灰度图
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 纯红色伪彩
red_pseudo = np.zeros_like(frame)
red_pseudo[:, :, 2] = gray # BGR 红色通道
# 增强效果
red_pseudo = cv2.convertScaleAbs(red_pseudo, alpha=1.6, beta=35)
out.write(red_pseudo)
frame_count += 1
if frame_count % 100 == 0:
print(f"处理进度: {frame_count}/{total_frames} ({frame_count/total_frames*100:.1f}%)")
cap.release()
out.release()
print("\n🎉 转换完成!")
if __name__ == "__main__":
# 支持命令行传参
if len(sys.argv) != 3:
print("使用方法:python 脚本名.py 输入视频路径 输出视频路径")
else:
input_video = sys.argv[1]
output_video = sys.argv[2]
convert_to_red_pseudo_color(input_video, output_video)
Loading…
Cancel
Save