请高手帮忙:MATLAB程序 编写一个程序,要求实现下列算法:首先将图像分割成许多8X8的子图像 100
要求:首先将图像分割成许多8X8的子图像,对每个子图像进行FFT,对每个子图像中的64个系数,按照每个系数的方差来排序后,舍去小的变换系数,只保留16个系数,实现4:1的...
要求:首先将图像分割成许多8X8的子图像,对每个子图像进行FFT,对每个子图像中的64个系数,按照每个系数的方差来排序后,舍去小的变换系数,只保留16个系数,实现4:1的图像的压缩。 请高手帮忙 要注解哦 快点哦
展开
1个回答
展开全部
clear all;
close all;
clc;
I=double(imread('elain.bmp'));%读入图像
imshow(uint8(I));%显示图像
[Mro,Nco]=size(I);%获得读入图像的大小
fun1=@fft2; %获得fft变换函数的句柄
Imagefft=blkproc(I,[8,8],fun1);%图像块进行fft变换
Imtemp=double(zeros(Mro,Nco));%设置临时变量用于存处理后的图像值
for ii=1:8:Mro
for jj=1:8:Nco
Imtemp(ii:ii+3,jj:jj+3)=Imagefft(ii:ii+3,jj:jj+3);%舍去小的变换系数
end
end
fun2=@ifft2;
Imageifft=blkproc(Imtemp,[8,8],fun2);%分块逆变换
huifu=uint8(abs(Imageifft)); %取整
figure;
imshow(huifu); %显示图像
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询