基于相位代码 部分注释 针对某一视频 不保证正确 仅供参考

function outName = phaseAmplify(vidFile, magPhase , fl, fh,fs, outDir, varargin)%'sigma', sigma,'pyrType', pyrType,'scaleVideo', 0.5

    %% Read Video
    vr = VideoReader(vidFile);
    [~, writeTag, ~] = fileparts(vidFile);%返回三个参数,那么,中间一个参数是视频文件的名字,最后一个是扩展名
    FrameRate = vr.FrameRate;    
    vid = vr.read();
    [h, w, nC, nF] = size(vid);%返回视频文件的大小,通道数以及帧数
    
    %% Parse Input
    p = inputParser();% 解析并检查输入名称的有效性,创建一个输入解析器模式,语法 @(x) 创建具有一个输入的匿名函数的句柄。

    defaultAttenuateOtherFrequencies = false; %If true, use reference frame phases
    pyrTypes = {
   'octave', 'halfOctave', 'smoothHalfOctave', 'quarterOctave'}; 
    checkPyrType = @(x) find(ismember(x, pyrTypes));%ismember函数返回的结果是x在pyrTypes里是否存在,若存在返回1,若不存在则返回0.find(X)找出X中的所有非零元素,并返回其索引值
    defaultPyrType = 'octave';
    defaultSigma = 0;
    defaultTemporalFilter = @FIRWindowBP;%f=@(x)cos(x)表示 f 为函数句柄,@是定义句柄的运算符。y=f(x),y=cos(x)
    defaultScale = 1;
    defaultFrames = [1, nF];%nF是帧数
    %addOptional将可选的位置参数添加到输入解析器模式中 
    addOptional(p, 'attenuateOtherFreq', defaultAttenuateOtherFrequencies, @islogical);%为输入参数指定验证函数。
    addOptional(p, 'pyrType', defaultPyrType, checkPyrType);
    addOptional(p,'sigma', defaultSigma, @isnumeric); %第四个参数是验证输入值是否能够解析成功的条件  
    addOptional(p, 'temporalFilter', defaultTemporalFilter);%第二个参数是输入值,第三个参数是输入值的默认值
    addOptional(p, 'scaleVideo', defaultScale);% 将可选的位置输入参数 argName 添加到输入解析器模式 p 中。如果函数的输入不包含此可选输入的值,输入解析器会为其赋予 defaultVal 值。
    addOptional(p, 'useFrames', defaultFrames);
    
    parse(p, varargin{
   :});

    refFrame = 1;
    attenuateOtherFreq = p.Results.attenuateOtherFreq;%0
    pyrType            = p.Results.pyrType;%octave
    sigma              = p.Results.sigma;%3
    temporalFilter     = p.Results.temporalFilter;%@FIRWindowBP
    scaleVideo  
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值