childmat.m

来自「一种SPIHT的改进算法!!!mallat算法实现,还有待提高!多联系lhz_5」· M 代码 · 共 33 行

M
33
字号
function [trAll,trChl]=childMat(trRows,trCols)
% 函数 CHILDMAT() 根据输入的坐标值trRows、trCols 输出其全体子孙 trAll,
% 其中包括孩子树 trChl;另外,根据算法原理,还要判断子孙树是否全为零,
% 若为全零,则trAll、trChl均为空表

global Mat rMat cMat
% Mat是输入的小波分解系数矩阵,作为全局变量,在编码的相关程序中使用
% rMat、cMat是Mat的行、列数,作为全局变量,在编码、解码的相关程序中使用

trAll=treeMat(trRows,trCols);
% 调用函数 treeMat() 生成该点的子孙树坐标队列
trZero=1;
% 用变量 trZero 来标记该点是否具有非零子孙
rA=size(trAll,1);
% 如果子孙树 trAll 中有系数值不为零,则 trZero=0,表示该点具有非零子孙
for r=1:rA
    if Mat(trAll(r,1),trAll(r,2))~=0
        trZero=0;
        break;
    end
end
if trZero
    trAll=[];
    trChl=[];
else
    if (trRows==1)&&(trCols==1)
        trChl=trAll(1:3,:);
    else
        trChl=trAll(1:4,:);
    end
    % 一般,函数 treeMat() 输出的全体子孙树 trAll 头四位元素组成相应的孩子树
    % 不过点(1,1)只有三个孩子
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?