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

【MATLAB】读取视频,提取视频每一帧特征值并存成EXCEL,并保存个别图像

1、读取视频
2、对视频尺寸进行预处理到4K
3、分析每帧特征
4、将每帧特征存储到Excel表格
5、将特殊画面存进对应文件夹里

clear;close all;clc;%初始化fileName='grayscale.mp4';%视频名称filepath=strcat('./input/',fileName);obj=VideoReader(filepath);numFrames=obj.NumFrames;% 帧的总数h=obj.Width;v=obj.Height;vh_th=0.7;%16:9差异设置,abs(h/v-16/9)<vh_th不加黑框frame_UD=zeros(2160,3840,3,'uint8');YCbCr=zeros(2160,3840,'double');frame_Falg=zeros(numFrames,4,'double');APL=zeros(1,1,'double');savepath=strcat('./output/',fileName(1:end-4));if~exist(savepath,'dir')savepath_status=mkdir(savepath);%如果路径不存在则新建一个endfork=1:numFrames% 读取数据frame=read(obj,k);%视频大小预处理ifabs(h/v-16/9)<vh_th frame_UD=imresize(frame,[2160,3840],'bilinear');%16:9插值到4Kblack_add=0;elseifh>v frame_new_h=imresize(frame,[v,3840],'bilinear');start=fix((2160-v)/2);frame_UD(start:start+v-1,:,:)=frame_new_h;black_add=(2160-v)*3840;elseframe_new_v=imresize(frame,[2160,h],'bilinear');start=fix((3840-h)/2);frame_UD(:,start:start+h-1,:)=frame_new_v;black_add=(3840-h)*2160;endend%APL generateYCbCr=0.299*frame_UD(:,:,1)+0.587*frame_UD(:,:,2)+0.114*frame_UD(:,:,3);APL=mean2(YCbCr)/255;%0~4pixel countifAPL>=0&&APL<0.2Gray_range=4;elseifAPL>=0.2&&APL<0.4Gray_range=5;elseifAPL>=0.4&&APL<0.6Gray_range=6;elseifAPL>=0.6&&APL<0.8Gray_range=8;elseifAPL>=0.8&&APL<=1Gray_range=10;elseray_range=10;endGray_cnt=fix(sum(sum(sum(frame_UD<Gray_range)))/3);ifGray_cnt>(8295+black_add)grayscale_gradient_Flag=1;elsegrayscale_gradient_Flag=0;endframe_Falg(k,1)=k;frame_Falg(k,2)=APL;frame_Falg(k,3)=Gray_cnt;frame_Falg(k,4)=grayscale_gradient_Flag;% imshow(frame_UD);%显示帧ifgrayscale_gradient_Flag==1WritePath=strcat('./output/',fileName(1:end-4),'/',num2str(k),'.bmp');imwrite(frame_UD,WritePath);% 保存帧endendWritepath_excel=strcat('./output/',fileName(1:end-4),'_analysis.xlsx');%方式1,速度慢%Writdetail_excel = {'Frame num', 'APL', 'Gray count','grayscale_like' };% for k=1:numFrames% Writdetail_excel (k+1,:)={frame_Falg(k,1),frame_Falg(k,2),frame_Falg(k,3),frame_Falg(k,4)};% end%方式2,矩阵操作加速Writdetail_excel(1,:)={'Frame num','APL','Gray count','grayscale_like'};Writdetail_excel(2:numFrames+1,:)=num2cell(frame_Falg(:,:));writecell(Writdetail_excel,Writepath_excel);disp('Analysis Done!');
http://www.jsqmd.com/news/632237/

相关文章:

  • Palantir实战指南:如何用AI+本体技术重构企业数据孤岛(附真实案例)
  • 大数据开发学习Day11
  • openclaw平替之nanobot源码解析(七):Gateway与多渠道集成慰
  • 【个人博客—山东大学项目实训——古诗词与文章智能创作助学平台(一)】
  • 安全智能:MongoDB EF Core 提供程序中的可查询加密和向量搜索倜
  • 【笔试真题】- 淘天-2026.04.11-工程岗
  • Xmake进阶指南---打造高效Qt开发工作流
  • 桌面端 Claw 个人微信接入指南铝
  • Qt——布局管理器(一)
  • 别再乱重启了!Proxmox集群故障时,先学会用这四条命令精准定位问题
  • DotNetPy:现代.NET 与 Python 互操作 实战指南谏
  • 全国GEO优化服务选择与行业分析指南
  • c++中的模板
  • 2026自吸磁力泵技术解析:防腐化工泵/防腐磁力泵/不锈钢化工泵/不锈钢磁力泵/安徽化工泵/安徽磁力泵/氟合金磁力泵/选择指南 - 优质品牌商家
  • TCP/IP协议详解:高性能服务器开发的底层基石寻
  • 新手入门音响控台培训调音台培训专业迈达斯培训怎么选
  • 单调队列优化多重背包 学习笔记 详解曝
  • 自动导引车(AGV)与自主移动机器人(AMR)控制系统的 C# 开源封装库诠
  • 非线性信号的时间尺度调整
  • 【大模型工程化监控黄金法则】:20年SRE专家亲授5类告警阈值设定铁律,避开97%的误报陷阱
  • 记录复现多模态大模型论文OPERA的一周工作()碳
  • MySQL锁机制:从全局锁到行级锁的深度解读赡
  • Gerrit代码Review高效协作指南:如何利用Topic和CI加速团队开发
  • AI时代,.NET开发者的生存危机还是能力外挂?馅
  • Java与PHP结合的优势第二篇章
  • 工业物联网实时分析的“秒级”革命:拆解DolphinDB如何攻克海量数据下的预警与决策难题腿
  • Z-Image-Turbo部署全攻略:从零开始,快速搭建个人AI绘画站
  • 探秘Cuk升降压电路:如何实现低纹波与高隔离的电源设计
  • 协程执行顺序与作用域解析
  • testserver.cc测试例子解读