【MATLAB】生成视频code(用于显示器画质测试)

这里写目录标题

    • [1. 两张图片来回切换](#1. 两张图片来回切换)

1. 两张图片来回切换

matlab 复制代码
clc;clear;
dbstop if error
%% 生成两张图片来回切换的视频

% 图片参数设定
V=2160;%↓
H=3840;%→
%第1张图片
IMG1=zeros(V,H,3, 'uint8');      %如果不写'uint8',图片灰度范围[0,1]
box_v_precent=0.50;%v窗口大小
box_h_precent=0.50;%h窗口大小
box_v_st=fix(V/2)-fix(V*box_v_precent*0.5);
box_v_end=fix(V/2)+fix(V*box_v_precent*0.5)-1;
box_v=box_v_end-box_v_st+1;
box_h_st=fix(H/2)-fix(H*box_h_precent*0.5);
box_h_end=fix(H/2)+fix(H*box_h_precent*0.5)-1;
box_h=box_h_end-box_h_st+1;
for i=box_v_st:box_v_end
    for j=box_h_st:box_h_end
        IMG1(i,j,1)=255;
        IMG1(i,j,2)=255;    %生成窗口图片
        IMG1(i,j,3)=255;
    end
end
%第2张图片
IMG2=zeros(V,H,3, 'uint8');      %如果不写'uint8',图片灰度范围[0,1]
IMG2=IMG2+255;

%视频参数设定
Path='.\';% 输出视频路径
Freq=60;
time_Sec=10;
Frame_total=Freq*time_Sec;
myVideo = VideoWriter('TwoImgSwitchByFrame','MPEG-4');
myVideo.FrameRate=60;
%myVideo.Quality=100;
open(myVideo);
for k=1:Frame_total3
    odd=mod(k,2);
    if odd==1
     writeVideo(myVideo, IMG1);
    else
      writeVideo(myVideo, IMG2);
    end
end
% for k=1:Frame_total/2
% 
%      writeVideo(myVideo, IMG1);%只要依次写入视频就可,不一定在一个for循环
% 
% end
% for k=1:Frame_total/2
%       writeVideo(myVideo, IMG2);
% end

close(myVideo);

disp('Wirte_Finish');

生成视频测试code

matlab 复制代码
clear ;close all;clc;
dbstop if error
% 把视频里每一帧存为单独的图片
fileName = 'TwoImgSwitchByFrame.mp4'; 
obj = VideoReader(fileName);
numFrames = obj.NumberOfFrames;% 帧的总数
for k = 1 : numFrames% 读取数据
     frame = read(obj,k);
     %imshow(frame);%显示帧
     imwrite(frame,strcat('.\frame\',num2str(k),'.bmp'),'bmp');% 保存帧
end

disp('Wirte_Finish');
相关推荐
xiangyun612 小时前
【408数据结构 08】队列:循环队列判空判满,408年年考,一次讲清
c语言·开发语言·数据结构·c++·算法
xiangyun612 小时前
【408数据结构 06】双链表、循环链表、静态链表
c语言·开发语言·数据结构·c++·算法
白远山4 小时前
家政服务家政社区派单实战:调度系统架构设计与实现指南
java·开发语言·小程序·架构·需求分析
DevRay4 小时前
Java 21虚拟线程深度实战:告别线程池焦虑,百万并发吞吐量直接翻倍(原理+代码+避坑)
java·开发语言
free-elcmacom5 小时前
C++学习<1>程序分区
开发语言·c++
醉颜凉5 小时前
Java 必看:如何彻底避免 HashMap 多线程死循环问题?
java·开发语言
默 语5 小时前
Java新手入门:从零开始安装JDK并配置环境变量
java·开发语言·python·mysql·group by·1024程序员节·数据去重
Brilliantwxx5 小时前
【STM32】 I2C_EEPROM_test 工程(实战篇)
开发语言·stm32·单片机·嵌入式硬件·ecmascript
清水白石0085 小时前
Python 异步编程深度解析:Cancellation 到底是异常还是控制信号?从 asyncio 取消机制到企业级事务设计最佳实践
开发语言·python
kolyle5 小时前
万级 QPS 下的 Token 分发系统架构:从 0 到 1 跑通 AI 时代的“水电煤“
开发语言·人工智能·系统架构·token·qps·极智词元·大模型私有化部署