• 大小: 197KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: Matlab
  • 标签: PCA  matlab  图像压缩  

资源简介

基于PCA的图像压缩Matlab代码,包含经典的Lena图像。被压缩图像必须是正方形的BMP格式图像。

资源截图

代码片段和文件信息

clear all;
K=8;%图像被分成K*K的小块
value_num=5;%主元数目
image= imread(‘lena.bmp‘);   % 读取图像  
%image=image(::1);
[xy] = size(image);  
if( x ~= y )                   % 图像不是方形的  
    error(‘图像不是方形的‘);  
end   
if( mod(xK) ~= 0 )  % 图像不能整分
    error(‘图像不能整分‘);  
end  
  
% 将K*K的小块图像存到IMG中
M = x/K;  
IMG = cell(MM);  
for i = 1:M  
    for j = 1:M  
        IMG{ij} = double(image(K*(i-1)+1:K*iK*(j-1)+1:K*j));  
    end  
end  
  
% 求平均值
ave_IMG = zeros(KK);  
for i = 1:M  
    for j = 1:M  
        ave_IMG = IMG{ij} + ave_IMG;  
    end  
end  
ave_IMG = ave_IMG/(M*M);  
  
%去均值
for i = 1:M  
    for j = 1:M  
        IMG{ij} = IMG{ij} - ave_IMG;  
    end  
end  
  
% 求协方差矩阵  
R = zeros(K*KK*K);  
IMG_Block_Vec=zeros(K*KM*M);
for i = 1:M*M  
    temp=[];  
    for j = 1:K  
        temp=[temp‘IMG{floor((i-1)/M)+1mod(i-1M)+1}(:j)‘]‘;  
    end  
    IMG_Block_Vec(:i)=temp;  
    R=R+temp*temp‘;  
end  
R=R/(M*M);
[vectorvalue] = eig(R);  
  
% 取value_num个主特征向量用于重构图像
if( value_num == K*K )  
    V = vector(:1:K*K);  % 全取
else  
    V = vector(:K*K-value_num+1:K*K);  %取value_num个
end  
  
%投影
Image_Code=zeros(M*Mvalue_num);
for i = 1:M*M  
    for j = 1:value_num  
        Image_Code(ij)= IMG_Block_Vec(:i)‘*V(:j);  
    end  
end  
  
% ????  
NewIMG_Vec = zeros(K*KM*M);  
for i = 1:M*M  
    for j = 1:value_num  
        NewIMG_Vec(:i) = NewIMG_Vec(:i) + Image_Code(ij)*V(:j);  
    end  
end  

for i=1:M  
    for j=1:M  
        IMG{ij} = reshape( NewIMG_Vec(:(i-1)*M+j)KK ) + ave_IMG;  
    end  
end  
for i=1:M  
    for j=1:M  
        compressing_image(K*(i-1)+1:K*iK*(j-1)+1:K*j) = uint8(IMG{ij});  
    end  
end  
  
% ????????  
imshow(compressing_image); 
% imwrite(compressing_image‘image.bmp‘)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-10-08 23:44  PCA_IMGCPS\
     文件        1924  2014-10-08 23:43  PCA_IMGCPS\Img_compress.m
     文件      263222  2014-08-23 23:31  PCA_IMGCPS\lena.bmp

评论

共有 条评论