图像边缘锐化和标准图像压缩过程.docx

上传人:b****6 文档编号:3757535 上传时间:2022-11-25 格式:DOCX 页数:14 大小:325.63KB
下载 相关 举报
图像边缘锐化和标准图像压缩过程.docx_第1页
第1页 / 共14页
图像边缘锐化和标准图像压缩过程.docx_第2页
第2页 / 共14页
图像边缘锐化和标准图像压缩过程.docx_第3页
第3页 / 共14页
图像边缘锐化和标准图像压缩过程.docx_第4页
第4页 / 共14页
图像边缘锐化和标准图像压缩过程.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

图像边缘锐化和标准图像压缩过程.docx

《图像边缘锐化和标准图像压缩过程.docx》由会员分享,可在线阅读,更多相关《图像边缘锐化和标准图像压缩过程.docx(14页珍藏版)》请在冰豆网上搜索。

图像边缘锐化和标准图像压缩过程.docx

图像边缘锐化和标准图像压缩过程

1.实现两个高频加强的图像边缘锐化的方法,原始图像是灰度图像,给出高频加强公式、程序和实验效果。

(注意程序不能是直接一个函数的调用,要把变换过程和公式体现出来。

(1)理想高通滤波器

functionout=imideal(I,freq)

%I参数输入的灰度图像

%freq参数高通滤波器的截止频率

%返回值:

out–指定的理想高通滤波器

f=fft2(I);%傅立叶变换

f=fftshift(f);%转换数据矩阵

[M,N]=size(I);

out=ones(M,N);

fori=1:

M

forj=1:

N

if(sqrt(((i-M/2)^2+(j-N/2)^2))

out(i,j)=0;

end

end

end

out=f.*out;%对应元素相乘实现频域滤波

(2)巴特沃斯高通滤波器

巴特沃斯高频加强公式

H(u,v)=a+b/(1+D0/D(u,v))^2n

functionout=imibtws(I,d0)

%I参数输入的灰度图像

%d0参数截止频率距远点距离

%返回值:

out–指定的巴特沃斯高通滤波器

f=fft2(I);%傅立叶变换

f=fftshift(f);%转换数据矩阵

[M,N]=size(I);

out=zeros(M,N);

nn=2;

fori=1:

M

forj=1:

N

d=sqrt((i-M/2)^2+(j-N/2)^2);

if(d)

out(i,j)=1/(1+0.414*(d0/d)^(2*nn));

end

end

end

out=f.*out;%对应元素相乘实现频域滤波

(3)归一化函数

functionout=guiyi(I)

%guiyi图像频域显示前的预处理

%I参数图像频域

%返回值:

out–图像频域显示

I=ifftshift(I);

I=ifft2(I);

I=uint8(real(I));

out=I;

(4)主函数

closeall

clear

clc

I=imread('LENA.bmp');

figure

(1);subplot(1,2,1);imshow(I);title('原图像');

f=fft2(I);%做fft变换

f=fftshift(f);%将零点移到中心

t=log(1+abs(f));%对幅值做对数变换,以压缩动态范围

figure

(1);subplot(1,2,2);imshow(t,[]);title('原图像FFT');

%t是doublearray,是浮点数,需要[].

%理想高通过滤

h=imideal(I,60);

out=f+0.9*h;

%归一化处理

out=guiyi(out);

figure

(2);subplot(1,2,1);imshow(out);title('理想高频加强锐化');

h=guiyi(h);

figure

(2);subplot(1,2,2);imshow(h);title('理想高频加强锐化');

%巴特沃斯高通过滤器

h=imibtws(I,15);

out=f+0.9*h;%高频加强锐化

%归一化处理

out=guiyi(out);

figure(3);subplot(1,2,1);imshow(out);title('巴特沃斯高频加强锐化');

h=guiyi(h);

figure(3);subplot(1,2,2);imshow(h);title('巴特沃斯高频加强滤波');

(5)实验结果

2、实现基于DCT的模拟JPEG标准图像压缩过程,并针对大压缩比的重构图像会产生马赛克效应的问题,设计采用一些方法减少马赛克效应。

程序应体现以下几个步骤。

(a)减少马赛克效应的方法,可以是图像编码中的预处理(不一定在第一个步骤)

(b)彩色坐标转换

压缩可采用YUV坐标。

(c)离散余弦变换

采用8×8子块的二维离散余弦变换算法。

(d)量化

(e)压缩图像重构

(f)结果比较与分析

(1)主函数

rgb=imread('Lena.jpg');%读取图片

%下面是对RGB三个分量进行分离,此时他们依然为整数

r=rgb(:

:

1);

g=rgb(:

:

2);

b=rgb(:

:

3);

figure,imshow(rgb),title('原来的RGB图像');

%RGB到YUV的转换

y=0.299*double(r)+0.587*double(g)+0.114*double(b);

u=-0.169*double(r)-0.3316*double(g)+0.5*double(b);

v=0.5*double(r)-0.4186*double(g)-0.0813*double(b);

yuv=cat(3,y,u,v);%YUV图像

figure,imshow(uint8(yuv)),title('通过计算得到的YUV图像')

dt=dctmtx(8);%产生一个8*8的DCT变换举证

 

%进行DCT变换dydudv是double类型

dy=blkproc(y,[88],'P1*x*P2',dt,dt');

du=blkproc(u,[88],'P1*x*P2',dt,dt');

dv=blkproc(v,[88],'P1*x*P2',dt,dt');

a=[1611101624405161;

1212141926586055;

1413162440576955;

1417222951878062;

182237566810910377;

243555648110411392;

49647887103121120101;

7292959811210010399;];%量化值

b=[1718244799999999;

1821266699999999;

2426569999999999;

4766999999999999;

9999999999999999;

9999999999999999;

9999999999999999;

9999999999999999;];

%系数量化

dy1=blkproc(dy,[88],'x./P1',a);

du1=blkproc(du,[88],'x./P1',b);

dv1=blkproc(dv,[88],'x./P1',b);

%这里进行取整量化,dy2du2dv2是uint8类型

dy2=int8(dy1);

du2=int8(du1);

dv2=int8(dv1);

%dy3du3dv3是double类型

dy3=blkproc(double(dy2),[88],'x.*P1',a);

du3=blkproc(double(du2),[88],'x.*P1',b);

dv3=blkproc(double(dv2),[88],'x.*P1',b);

%取左上角十个点

m=[

11110000;

11100000;

11000000;

10000000;

00000000;

00000000;

00000000;

00000000;];

%dy4du4dv4是double类型

dy4=blkproc(dy3,[88],'P1.*x',m);

du4=blkproc(du3,[88],'P1.*x',m);

dv4=blkproc(dv3,[88],'P1.*x',m);

%DCT逆变换

Y=blkproc(double(dy4),[88],'P1*x*P2',dt',dt);

U=blkproc(double(du4),[88],'P1*x*P2',dt',dt);

V=blkproc(double(dv4),[88],'P1*x*P2',dt',dt);

%YUV是double类型

YUV=cat(3,uint8(Y),uint8(U),uint8(V));%经过DCT变换和量化后的YUV图像

figure,imshow(YUV),title('经过DCT变换和量化后的YUV图像');

R=Y-0.001*U+1.402*V;

G=Y-0.344*U-0.714*V;

B=Y+1.772*U+0.001*V;

RGB=cat(3,R,G,B);%经过DCT反变换和量化后的YUV图像

RGB=uint8(RGB);

figure,imshow(RGB),title('经过压缩后的图像');

imwrite(RGB,'newLena.jpg');%保存压缩图像

(2)实验结果

(3)实验结果分析

对比压缩前后的图像可知,压缩后的图像稍显模糊,这是因为该压缩算法为有损压缩,压缩后的图像丢失了原始图像部分数据信息。

但由于DCT变换有使图像能量集中在左上方的特性,因此压缩图像保留了原始图像大部分的图像特征,其视觉效果与原始图像相差不大

3、将结合自己的研究方向和图像处理的关系,实现一个基本算法。

图像均衡化

clearall%一,图像的预处理,读入彩色图像将其灰度化

P=imread('Lena.jpg');%读入JPG彩色图像文件

imshow(P)%显示出来figureNO1

title('输入的彩色JPG图像')

imwrite(rgb2gray(P),'PicSampleGray.bmp');%将彩色图片灰度化并保存

PS=rgb2gray(P);%灰度化后的数据存入数组

figure,imshow(P)%显示灰度化后的图像,也是均衡化前的样品figureNO2

title('灰度化后的图像')

%二,绘制直方图

[m,n]=size(P);%测量图像尺寸参数

GP=zeros(1,256);%预创建存放灰度出现概率的向量

fork=0:

255

GP(k+1)=length(find(P==k))/(m*n);%计算每级灰度出现的概率,将其存入GP中相应位置

end

figure,bar(0:

255,GP,'g')%绘制直方图figureNO3

title('原图像直方图')

xlabel('灰度值')

ylabel('出现概率')

%三,直方图均衡化

S1=zeros(1,256);

fori=1:

256

forj=1:

i

S1(i)=GP(j)+S1(i);%计算Sk

end

end

S2=round(S1*256);%将Sk归到相近级的灰度

fori=1:

256

GPeq(i)=sum(GP(find(S2==i)));%计算现有每个灰度级出现的概率

end

figure,bar(0:

255,GPeq,'b')%显示均衡化后的直方图figureNO4

title('均衡化后的直方图')

xlabel('灰度值')

ylabel('出现概率')

figure,plot(0:

255,S2,'r')%显示灰度变化曲线figureNO5

legend('灰度变化曲线')

xlabel('原图像灰度级')

ylabel('均衡化后灰度级')

%四,图像均衡化

PA=P;

fori=0:

255

PA(find(P==i))=S2(i+1);%将各个像素归一化后的灰度值赋给这个像素

end

figure,imshow(PA)%显示均衡化后的图像figureNO6

title('均衡化后图像')

imwrite(PA,'PicEqual.bmp');

实验结果

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1