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

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()

http://www.xdnf.cn/news/5840.html

相关文章:

  • 法国蒙彼利埃大学团队:运用元动力学模拟与马尔可夫状态模型解锁 G 蛋白偶联受体构象动态机制
  • Linux 服务器用 SSH 拉取多个 Git 工程
  • LeRobot 项目部署运行逻辑(七)—— ACT 在 Mobile ALOHA 训练与部署
  • 开发工具分享: Web前端编码常用的在线编译器
  • Matlab 基于滑模自抗扰的高速列车自动驾驶算法研究
  • Linux 软硬连接详解
  • linux下minio的进程管理脚本
  • LMFD格子多相流体力学仿真机:超级计算如何实现平民化?
  • Java高频面试之并发编程-16
  • Mysql的索引,慢查询和数据库表的设计以及乐观锁和悲观锁
  • AUTOSAR图解==>AUTOSAR_TR_GeneralBlueprintsSupplement
  • 知网AI检测对抗智能体,降AI率不再单独花钱!
  • ESP32 web服务导致的lwip “pbuf_free: p->ref > 0问题
  • 【001】renPy android端启动流程分析
  • 内存对齐(Memory Alignment)
  • 4399(简易版) GOC小游戏
  • [python] 面向对象的三大特性-封装及新式类
  • Autoregressive Distillation of Diffusion Transformers
  • IOP|2025第二届机电一体化、机器人与控制系统国际会议(MRCS2025)
  • 电流互感器使用全攻略
  • Hugging Face汉化教程及注册使用详解
  • python-74-Nacos技术之单机模式安装Nacos并使用Python操作Nacos
  • 【Ansible】之inventory主机清单
  • 用 openssl 测试 tls 连接
  • Redis+Caffeine构造多级缓存
  • 多模态链式思考推理:让大模型更像人类一样思考
  • C——五子棋小游戏
  • 互联网大厂Java求职面试:优惠券服务架构设计与AI增强实践-3
  • cursor 出现问题 为客户解决问题
  • 大模型科研能力评价参考平台上线,推动技术创新与发展