此博客用来存放、并简单介绍相关数据处理等脚本。

视频抽帧

video2images.py:以一定间隔从视频内提取帧;

  • 在第6行修改视频格式

    1
    if input_path.endswith('.MP4'):
  • 在第19行修改图片大小(尽量保持原比例缩放)

    1
    frame_n = cv2.resize(frame, (1920, 1080)) # (W,H)
  • 第28、29、30分别为视频输入路径、图片储存文件夹、间隔帧数

    1
    2
    3
    input_path = "/path/to/your/video"     # 视频输入路径
    save_path = "/path/to/your/image/" # 提取图片输出路径
    frame_interval = 10 # 抽帧间隔数

图片批量重命名

rename.py:将文件夹家内以一定顺序重命名;

  • 第4、5、6行分别为原始图片文件夹、重命名后文件夹、重命名后第一个图片序号

    1
    2
    3
    path = '/path/to/your/image/'          # 文件夹路径
    out_path = '/path/to/your/new/image/' # 新文件夹路径
    start = 0 # 重命名后第一个图片序号
  • 第9行为命名原则

    1
    name = "%05d" % start                  #5位数 不足前面补零

依据mask图像分割

extract.py:这里给出的是依据 MiVOS-STCN 算法分割给出的(红色)mask进行图像分割,输出白色mask、分割后的图片;需要保持mask与原始图片名字一致!

  • 只需修改第21—24行相关路径即可

    1
    2
    3
    4
    original_path = '/path/to/ori/image/' # 原始图片路径
    ori_mask_path = '/path/to/ori/mask/' # 原始红色mask路径
    images_path = '/path/to/new/image/' # 分割后图片路径
    masks_path = '/path/to/new/image/' # 修改颜色后mask路径

调整图像分辨率

lowresolution.py:降低图像分辨率

  • 修改5、6行路径

    1
    2
    sourceDir = os.path.join(curDir, '/path/to/ori/image/')
    resultDir = os.path.join(curDir, '/path/to/new/image/')
  • 第13行修改到指定分辨率(尽量保持原始比例)

    1
    pic_n = cv2.resize(pic, (960, 540)) # (W,H)

修改图片通道数

rgb2rgba.py:有些项目需要RGB通道,有些则需要RGBA通道

  • 修改4、5行路径

    1
    2
    path      = "/path/to/ori/image/"     # 原始路径
    save_path = '/path/to/new/image/' # 保存路径
  • 第13行可以修改转换后通道数

    1
    pimg = img.convert("RGB")  # 4通道转化为rgb三通道

提取colmap匹配的有效图片

valid_imgs_from_imgstxt.py:colmap获取位姿可能因为某些原因造成部分图片无法匹配,这对有些项目影响很大!造成代码一些数组序号出问题、甚至可能无法运行,这里建议提取有效图片

  • 修改第25—27行相关路径即可

    1
    2
    3
    file_name   = "/path/to/colmap/text/images.txt" # images.txt 文件
    input_path = "/path/to/ori/image/" # 原始图片路径
    output_path = "/path/to/valid/image/" # 提取后有效图片路径

图像转GIF

image2gif.py:将一定顺序的图片序列转换为GIF动图

  • 修改13—15行相关路径

    1
    2
    3
    img_dir  = '/path/to/image'  # 图片路径
    duration = 0.05 # 图片间隔,每秒20帧,即1/20
    gif_name = img_dir+'.gif' # 输出gif名字

图像转视频

image2video.py:将一定顺序的图片序列转换为视频

  • 修改16行帧率、17行视频存储路径及名字

    1
    2
    fps = 30
    file_path = r"/pathto/video/name.mp4"
  • 第30行图片路径及分辨率

    1
    picvideo(r'/path/to/image/', (1920, 1080)) # (W,H)

相机位姿添加噪声

add_noise_in_txt.py:直接给colamp跑出的 image.txt 添加高斯噪声

  • 修改第9、10行噪声方差

    1
    2
    sigma_r = 5.0 # 旋转矩阵的噪声方差
    sigma_t = 0.1 # 位移向量的噪声方差
  • 修改第49、50行相关路径

    1
    2
    file_name = "/path/to/colmap/text/images.txt" # 原始colmap的image.tx
    output_name = "/path/to/new/images.txt" # 添加噪声后的image.txt路径

add_noise_in_json.py:给 tansform.json 添加高斯噪声

  • 修改第41、42行噪声方差

    1
    2
    sigma_r = 5.0 # 旋转矩阵的噪声方差
    sigma_t = 0.1 # 位移向量的噪声方差
  • 修改第98、99行相关路径

    1
    2
    file_name = "/path/to/transform.json"         # 原始位姿
    output_name = "/path/to/new/transform.json" # 添加噪声后