📄 masksize.m
字号:
function fsize=maskSize(imageMask, quantLevels)%% maskSize - returns the size of the mask if RLE compression is used.% imageMask assumed to vary between -1 and 1%% linearize imageMaskimMask=(imageMask+1)/2;imMask=round((quantLevels-1).*imMask(:));% keep an array for length of zero runszeroRuns=zeros(length(imageMask(:)), 1);% keep an array for grey levelsgreys=zeros(quantLevels, 1);% loop through whole image, finding zero runs and grey valueszeroRunLength=0;numGreys=0;numZeros=0;for i=1:length(imMask) if imMask(i)==round(0.5*(quantLevels-1)) zeroRunLength=zeroRunLength+1; else zeroRuns(zeroRunLength+1)=zeroRuns(zeroRunLength+1)+1; zeroRunLength=0; numZeros=numZeros+1; greys(imMask(i)+1)=greys(imMask(i)+1)+1; numGreys=numGreys+1; end; end;% calculate average rate of zero chainssymbolProbs=zeroRuns/numZeros;codeLengths=-log(symbolProbs)/log(2);% Replace infinite code lengths with very long onesfor j=1:size(codeLengths(:),1) if codeLengths(j)== Inf codeLengths(j)=100000; end; end;zeroRate=sum(symbolProbs.*codeLengths)% calculate average rate of greyssymbolProbs=greys/numGreys;codeLengths=-log(symbolProbs)/log(2);% Replace infinite code lengths with very long onesfor j=1:size(codeLengths(:),1) if codeLengths(j)== Inf codeLengths(j)=100000; end; end;greyRate=sum(symbolProbs.*codeLengths)fsize=(greyRate*numGreys+zeroRate*numZeros)/8;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -