?? make_0.m
字號(hào):
function [cH3,cV3,cD3,cH2,cV2,cD2,cH1,cV1,cD1,count]=make_0(cH3,cV3,cD3,cH2,cV2,cD2,cH1,cV1,cD1,threshold)
% 該函數(shù)功能是本課程役計(jì)的關(guān)鍵,它完成了對(duì)經(jīng)過(guò)三級(jí)非標(biāo)準(zhǔn)分解后各分量圖矩陣中所有元素?cái)?shù)
% 值小于閥值的進(jìn)行置0處理,為后面進(jìn)行三級(jí)非標(biāo)準(zhǔn)重構(gòu)原始圖像從而實(shí)現(xiàn)圖像壓縮奠定了基礎(chǔ)。
% 輸入經(jīng)過(guò)非標(biāo)準(zhǔn)分解后顏色分量的各級(jí)的水平細(xì)節(jié)分量、垂直細(xì)節(jié)分量、對(duì)角細(xì)節(jié)分量和閥值
% threshold其中數(shù)字表示非標(biāo)準(zhǔn)處理的級(jí)別。輸出各分量圖矩陣中所有元素?cái)?shù)值小于閥值系數(shù)置
% 0處理后所對(duì)應(yīng)的各級(jí)的水平細(xì)節(jié)分量、垂直細(xì)節(jié)分量、對(duì)角細(xì)節(jié)分量,并統(tǒng)計(jì)它們系數(shù)為0個(gè)
% 數(shù)count。
threshold_num=str2num(threshold);
count=0;
% 借助臨時(shí)分量對(duì)第三級(jí)非標(biāo)準(zhǔn)分解的水平細(xì)節(jié)分量、垂直細(xì)節(jié)分量、對(duì)角細(xì)節(jié)分量進(jìn)行行、列數(shù)
% 擴(kuò)展合成cM_matrix3,并對(duì)數(shù)值小于閥值系數(shù)進(jìn)行置0處理,并統(tǒng)計(jì)矩陣元素?cái)?shù)值小于閥值系數(shù)的
% 個(gè)數(shù)。
cM_cA3=cD3
cM_cA3=zeros(size(cM_cA3,1),size(cM_cA3,2));
num=size(cM_cA3,1)*size(cM_cA3,2);
cM_matrix3=[cM_cA3,cH3;cV3,cD3];
cM_size=size(cM_matrix3);
for i=1:cM_size(1)
for j=1:cM_size(2)
if abs(cM_matrix3(i,j))<=threshold_num
count=count+1;
cM_matrix3(i,j)=0;
end
end
end
% 對(duì)所合成的cM_matrix3重新分離出置0處理后的水平細(xì)節(jié)分量、垂直細(xì)節(jié)分量和對(duì)角細(xì)節(jié)分量,并
% 精確了矩陣元素?cái)?shù)值小于閥值系數(shù)的數(shù)目。
cH3=cM_matrix3;cV3=cM_matrix3;cD3=cM_matrix3;
cH3(1+size(cM_cA3,1):2*size(cM_cA3,1),:)=[];cH3(:,1:size(cM_cA3,2))=[];
cV3(1:size(cM_cA3,1),:)=[];cV3(:,1+size(cM_cA3,2):2*size(cM_cA3,2))=[];
cD3(1:size(cM_cA3,1),:)=[];cD3(:,1:size(cM_cA3,2))=[];
count=count-num;
% 借助臨時(shí)分量對(duì)第二級(jí)非標(biāo)準(zhǔn)分解的水平細(xì)節(jié)分量、垂直細(xì)節(jié)分量、對(duì)角細(xì)節(jié)分量進(jìn)行行、列數(shù)擴(kuò)
% 展合成cM_matrix2,并對(duì)數(shù)值小于閥值系數(shù)進(jìn)行置0處理,并統(tǒng)計(jì)矩陣元素?cái)?shù)值小于閥值系數(shù)的個(gè)數(shù)。
cM_cA2=cD2
cM_cA2=zeros(size(cM_cA2,1),size(cM_cA2,2));
num=size(cM_cA2,1)*size(cM_cA2,2);
cM_matrix2=[cM_cA2,cH2;cV2,cD2];
cM_size=size(cM_matrix2);
for i=1:cM_size(1)
for j=1:cM_size(2)
if abs(cM_matrix2(i,j))<=threshold_num
count=count+1;
cM_matrix2(i,j)=0;
end
end
end
% 對(duì)所合成的cM_matrix2重新分離出置0處理后的水平細(xì)節(jié)分量、垂直細(xì)節(jié)分量和對(duì)角細(xì)節(jié)分量,并精
% 確了矩陣元素?cái)?shù)值小于閥值系數(shù)的數(shù)目。
cH2=cM_matrix2;cV2=cM_matrix2;cD2=cM_matrix2;
cH2(1+size(cM_cA2,1):2*size(cM_cA2,1),:)=[];cH2(:,1:size(cM_cA2,2))=[];
cV2(1:size(cM_cA2,1),:)=[];cV2(:,1+size(cM_cA2,2):2*size(cM_cA2,2))=[];
cD2(1:size(cM_cA2,1),:)=[];cD2(:,1:size(cM_cA2,2))=[];
count=count-num;
% 借助臨時(shí)分量對(duì)第一級(jí)非標(biāo)準(zhǔn)分解的水平細(xì)節(jié)分量、垂直細(xì)節(jié)分量、對(duì)角細(xì)節(jié)分量進(jìn)行行、列數(shù)擴(kuò)
% 展合成cM_matrix1,并對(duì)數(shù)值小于閥值系數(shù)的元素進(jìn)行置0處理,且統(tǒng)計(jì)矩陣元素?cái)?shù)值小于閥值系數(shù)
% 的個(gè)數(shù)。
cM_cA1=cD1
cM_cA1=zeros(size(cM_cA1,1),size(cM_cA1,2));
num=size(cM_cA1,1)*size(cM_cA1,2);
cM_matrix1=[cM_cA1,cH1;cV1,cD1];
cM_size=size(cM_matrix1);
for i=1:cM_size(1)
for j=1:cM_size(2)
if abs(cM_matrix1(i,j))<=threshold_num
count=count+1;
cM_matrix1(i,j)=0;
end
end
end
% 對(duì)所合成的cM_matrix1重新分離出置0處理后的水平細(xì)節(jié)分量、垂直細(xì)節(jié)分量和對(duì)角細(xì)節(jié)分量,并精
% 確了矩陣元素?cái)?shù)值小于閥值系數(shù)的數(shù)目。
cH1=cM_matrix1;cV1=cM_matrix1;cD1=cM_matrix1;
cH1(1+size(cM_cA1,1):2*size(cM_cA1,1),:)=[];cH1(:,1:size(cM_cA1,2))=[];
cV1(1:size(cM_cA1,1),:)=[];cV1(:,1+size(cM_cA1,2):2*size(cM_cA1,2))=[];
cD1(1:size(cM_cA1,1),:)=[];cD1(:,1:size(cM_cA1,2))=[];
count=count-num;
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -