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

美国室内设计网站大全百度优化教程

美国室内设计网站大全,百度优化教程,海南网站开发,武汉好消息来了文章目录 读取具体哪一帧等待按钮写入解码方式与文件格式对应全部代码 读取具体哪一帧 这个方法可以获取某一帧: while True:cap.set(cv2.CAP_PROP_POS_FRAMES, current_frame)ret, frame cap.read()if not ret:break等待按钮 这个方法可以显示当前帧&#xff0c…

文章目录

  • 读取具体哪一帧
  • 等待按钮
  • 写入解码方式与文件格式对应
  • 全部代码

读取具体哪一帧

这个方法可以获取某一帧:


while True:cap.set(cv2.CAP_PROP_POS_FRAMES, current_frame)ret, frame = cap.read()if not ret:break

等待按钮

这个方法可以显示当前帧,然后等待你的按钮:

        # 显示当前帧cv2.imshow('Video Frame', frame)# 等待按键输入key = cv2.waitKey(0)  # 使用较短的等待时间以确保视频正常播放if key == 27:  # ESCbreakelif key == ord('q'):  # Q 键(往回跳一帧)if current_frame > 0:current_frame -= 1elif key == ord('w'):  # W 键(往前播放一帧)if current_frame < len(json_data) - 1:current_frame += 1

这个标志打开可以让你存储一个mp4视频:

FLAG_SAVE_VIDEOS = False

写入解码方式与文件格式对应

不同的视频文件格式通常需要使用不同的编解码器,因此你需要根据你要创建的视频文件格式来选择合适的四字符编码标识。以下是一些常见的视频文件格式和相应的四字符编码标识示例:

  1. H.264 编码(通常用于.mp4文件):

    fourcc = cv2.VideoWriter_fourcc(*'H264')
    
  2. XVID 编码(通常用于.avi文件):

    fourcc = cv2.VideoWriter_fourcc(*'XVID')
    
  3. MJPG 编码(通常用于.avi文件,适用于每帧图像质量高的场景):

    fourcc = cv2.VideoWriter_fourcc(*'MJPG')
    
  4. DIVX 编码(通常用于.avi文件):

    fourcc = cv2.VideoWriter_fourcc(*'DIVX')
    
  5. VP8 编码(通常用于.webm文件):

    fourcc = cv2.VideoWriter_fourcc(*'VP80')
    
  6. VP9 编码(通常用于.webm文件):

    fourcc = cv2.VideoWriter_fourcc(*'VP90')
    

这些是一些常见的视频文件格式和相应的四字符编码标识示例。根据你的需求和所使用的视频文件格式,选择适合的编码标识以确保视频文件可以正确编码和解码。不同的视频编辑软件和播放器也支持不同的编解码器,因此你可能需要根据最终使用情况进行调整。

全部代码

import logging
import timeimport cv2
import json# 读取JSON文件
with open('../inoutdir/long.json', 'r') as f:json_data = json.load(f)# 打开视频文件
cap = cv2.VideoCapture('../inoutdir/long.mp4')current_frame = 0
# 配置日志记录
logging.basicConfig(level=logging.INFO, format='%(asctime)s [Frame %(frame)d / %(frame_all)d] %(message)s')
logger = logging.getLogger()FLAG_SAVE_VIDEOS = False
if FLAG_SAVE_VIDEOS:output_file = '../output/long_draw.mp4'fourcc = cv2.VideoWriter_fourcc(*'mp4v')frame_width = int(cap.get(3))frame_height = int(cap.get(4))out = cv2.VideoWriter(output_file, fourcc, 30, (frame_width, frame_height))# 初始化时间统计
start_time = time.time()
total_frames = len(json_data)while True:cap.set(cv2.CAP_PROP_POS_FRAMES, current_frame)ret, frame = cap.read()if not ret:break# 记录时间戳frame_timestamp = time.time()# 从JSON中获取当前帧的检测结果if current_frame < len(json_data):detections = json_data[current_frame]['dets']# 在每个检测上绘制边界框for det in detections:x1, y1, x2, y2, score, class_id = detcolor = (0, 255, 0)  # 绿色边界框label = f'{int(class_id)},{score:.2f}'cv2.rectangle(frame, (int(x1), int(y1)), (int(x2), int(y2)), color, 2)# 计算文本位置以确保在框内text_x = int(x1)text_y = int(y1) - 10if text_y - 10 < 0:text_y = int(y1) + 20  # 如果文本位置超出了帧的上边界,则将其放在边界框的下方cv2.putText(frame, label, (text_x, text_y), cv2.FONT_HERSHEY_SIMPLEX, 0.5, color, 2)if FLAG_SAVE_VIDEOS:out.write(frame)  # 将当前帧写入输出视频current_frame += 1else:# 显示当前帧cv2.imshow('Video Frame', frame)# 等待按键输入key = cv2.waitKey(0)  # 使用较短的等待时间以确保视频正常播放if key == 27:  # ESCbreakelif key == ord('q'):  # Q 键(往回跳一帧)if current_frame > 0:current_frame -= 1elif key == ord('w'):  # W 键(往前播放一帧)if current_frame < len(json_data) - 1:current_frame += 1# 计算每一帧消耗的时间并记录到日志中frame_processing_time = time.time() - frame_timestamplogger.info(f'Frame processed in {frame_processing_time:.4f} seconds',extra={'frame': current_frame, 'frame_all': total_frames})# 计算总共消耗的时间
total_processing_time = time.time() - start_time
average_frame_time = total_processing_time / total_frames if total_frames > 0 else 0print(total_processing_time)
print(average_frame_time)# 释放视频文件、关闭窗口和输出视频文件
cap.release()
if FLAG_SAVE_VIDEOS:out.release()
cv2.destroyAllWindows()
http://www.dinnco.com/news/68342.html

相关文章:

  • 电脑版网页灵宝seo公司
  • 山西建设网站百度惠生活推广怎么收费
  • 建美食网站有哪些原因做小程序公司哪家好
  • 我有网网站建设青岛百度网站排名优化
  • 17一起来做网站成都seo外包
  • 网站做的一样侵权吗青岛百度推广优化
  • 杭州网站建设培训班seo基础视频教程
  • 金融网站怎么做网站优化服务
  • 怎么做日本钓鱼网站吗永久免费自动建站
  • 给博彩网站做优化搜索引擎seo如何赚钱
  • 深圳海外医疗网站建设福建seo优化
  • 一般多少钱做一个网站哪里可以学seo课程
  • 建设银行插入网银盾网站打不开编程培训
  • 2015做哪个网站能致富seo公司怎样找客户
  • 南昌网站维护淘宝关键词优化推广排名
  • 天猫是b2b电子商务网站吗最有效的推广方式
  • 做海关授权的网站网络推广团队
  • 怎样申请免费网站网络营销推广方法十种
  • 美国做空机构浑水网站营销策划方案案例
  • 备案期间网站能用吗营销方式有哪几种
  • ps网站交互设计站长之家下载
  • 如何设置个人网站百度搜索引擎的使用方法
  • 小程序软件开发制作西安网站seo排名优化
  • 网站没有备案可以做百度推广吗重庆seo网站推广费用
  • 怎么查wordpress主题个人博客seo
  • 免费b2b网站大全黄页88无锡网站建设
  • 总结 设网站免费建站系统哪个好用吗
  • 做赌博网站会被判多久seo工作内容有哪些
  • 杭州网站推广公司网站建设的技术支持
  • 政府网站的模块结构下载班级优化大师