当前位置: 首页 > news >正文

python opencv 将不同shape尺寸的图片制作video视频

python opencv 将不同shape尺寸的图片制作video视频。

具体代码实现如下:

import os
import cv2
import time
import shutil
def resize_img_keep_ratio(img, target_size):old_size = img.shape[:2]  # 原始图像大小ratio = min(target_size[i] / old_size[i] for i in range(len(old_size)))  # 计算比例new_size = tuple(int(i * ratio) for i in old_size)  # 计算新的图像大小img = cv2.resize(img, (new_size[1], new_size[0]))  # 调整图像大小pad_w = target_size[1] - new_size[1]  # 计算宽度填充pad_h = target_size[0] - new_size[0]  # 计算高度填充top, bottom = pad_h // 2, pad_h - (pad_h // 2)left, right = pad_w // 2, pad_w - (pad_w // 2)img_new = cv2.copyMakeBorder(img, top, bottom, left, right, cv2.BORDER_CONSTANT, value=(255,255,255))  # 边缘填充return img_new
if __name__ == "__main__":path_root = "D:/dataset/img_list/lichee/"text_prompt = "lichee"path_s = "datas/{}/".format("lichee")if not os.path.exists(path_s): # 如果文件夹不存在os.mkdir(path_s) # 生成文件夹loc_time = time.localtime()str_time = time.strftime("%Y-%m-%d-%H-%M-%S", loc_time)save_name = "{}_{}".format(text_prompt,str_time)video_writer = Nones_idx = 0for f_ in os.listdir(path_root):image_path = path_root + f_img_ = cv2.imread(image_path)img_cv = resize_img_keep_ratio(img_, [720,720])cv2.namedWindow("img",0)cv2.imshow("img",img_cv)key_id = cv2.waitKey(0)if key_id == 27:breakif key_id == ord("a"):# box_xmls_idx += 1print("----------------------------->> s_idx:",s_idx)ss_name  = "{:05d}.jpg".format(s_idx)shutil.copyfile(image_path,path_s + str_time+"_"+ss_name)if video_writer is None:video_writer = cv2.VideoWriter("./demo/{}.mp4".format(save_name), cv2.VideoWriter_fourcc(*"mp4v"), fps=1, frameSize=(img_cv.shape[1],img_cv.shape[0]))video_writer.write(img_cv)os.remove(image_path)video_writer.release()

相关文章:

  • 掌握MySQL数据库操作:从创建到管理全攻略
  • 《Spring Boot 4.0新特性深度解析》
  • 基于Qt6 + MuPDF在 Arm IMX6ULL运行的PDF浏览器(项目推介)
  • Leetcode-BFS问题
  • 微信小程序单双周选择排序有效果图
  • Django 项目的 models 目录中,__init__.py 文件的作用
  • PyTorch Lightning实战 - 训练 MNIST 数据集
  • 【Java学习】Lambda表达式
  • day 23
  • 嵌入式MCU和Linux开发哪个好?
  • 架构思维:通用架构模式_系统监控的设计
  • 《微机原理与接口技术》第 5 章 汇编语言程序设计
  • 解决LangChain4j报错HTTP/1.1 header parser received no bytes
  • OJ项目测试
  • C++类和对象--中阶
  • sql语句面经手撕(定制整理版)
  • 收集飞花令碎片——C语言分支与循环语句(上)
  • 如何避免 JavaScript 中常见的闭包陷阱?
  • Nginx stream模块是连接级别的负载均衡
  • 序列检测器
  • 训练孩子的科学思维,上海虹口推出“六个一百”旗舰工程
  • 外交部就习近平主席将出席中拉论坛第四届部长级会议开幕式介绍情况
  • 外交部:愿同拉美国家共同维护多边贸易体制
  • 新华时评:中国维护国际经贸秩序的立场坚定不移
  • 中国海外发展:今年前4个月销售665.8亿元,花费305亿元拿地
  • 巴基斯坦外长:近期军事回应是自卫措施