二维福利叶变换图像处理技术.docx

上传人:b****1 文档编号:14295087 上传时间:2023-06-22 格式:DOCX 页数:25 大小:690.72KB
下载 相关 举报
二维福利叶变换图像处理技术.docx_第1页
第1页 / 共25页
二维福利叶变换图像处理技术.docx_第2页
第2页 / 共25页
二维福利叶变换图像处理技术.docx_第3页
第3页 / 共25页
二维福利叶变换图像处理技术.docx_第4页
第4页 / 共25页
二维福利叶变换图像处理技术.docx_第5页
第5页 / 共25页
二维福利叶变换图像处理技术.docx_第6页
第6页 / 共25页
二维福利叶变换图像处理技术.docx_第7页
第7页 / 共25页
二维福利叶变换图像处理技术.docx_第8页
第8页 / 共25页
二维福利叶变换图像处理技术.docx_第9页
第9页 / 共25页
二维福利叶变换图像处理技术.docx_第10页
第10页 / 共25页
二维福利叶变换图像处理技术.docx_第11页
第11页 / 共25页
二维福利叶变换图像处理技术.docx_第12页
第12页 / 共25页
二维福利叶变换图像处理技术.docx_第13页
第13页 / 共25页
二维福利叶变换图像处理技术.docx_第14页
第14页 / 共25页
二维福利叶变换图像处理技术.docx_第15页
第15页 / 共25页
二维福利叶变换图像处理技术.docx_第16页
第16页 / 共25页
二维福利叶变换图像处理技术.docx_第17页
第17页 / 共25页
二维福利叶变换图像处理技术.docx_第18页
第18页 / 共25页
二维福利叶变换图像处理技术.docx_第19页
第19页 / 共25页
二维福利叶变换图像处理技术.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

二维福利叶变换图像处理技术.docx

《二维福利叶变换图像处理技术.docx》由会员分享,可在线阅读,更多相关《二维福利叶变换图像处理技术.docx(25页珍藏版)》请在冰点文库上搜索。

二维福利叶变换图像处理技术.docx

二维福利叶变换图像处理技术

第1章基于二维傅里叶变换的图像处理技术

1.1二维傅里叶变化基础

假如以正方形网格采样得到的数字图像用f(x,y)表示,由一维傅里叶变换的定义可以得到f(x,y)的二维傅里叶变换为:

其反变换为:

1.2傅里叶变换的性质

1.分离性:

2.平移性

3.周期性

4.共轭对称性

5.旋转性

6.分配性和比例性

1.3matlab中二维傅里叶变换的函数以及应用

在MATLAB中,用来实现数字图像傅里叶变换用到的函数主要有fft2函数和fftshift函数。

前者用来实现数字信号的二维离散傅里叶变换,后者用来将傅里叶变换的零频率部分移到频谱的中间。

fft2函数的语法格式如下:

Y=fft2(X)

Y=fft2(X,m,n)

fftshift函数的语法格式如下:

Y=fftshift(X)

Y=fftshift(X,dim)

例:

制作64*64大小的简单黑白二值图像用Matlab的imread函数读

取并做二维DFT变换

代码:

clear

%?

?

256*256?

?

?

?

?

f=zeros(256,256)?

f(124:

130,117:

137)=1?

%?

?

?

?

?

?

figure

(1)?

imshow(f)?

title('?

?

?

?

')?

%?

?

?

?

?

F=fft2(f)?

%?

?

?

?

?

F2=fftshift(abs(F))?

%?

?

?

?

figure

(2)?

x=1:

256?

y=1:

256?

mesh(x,y,F2(x,y))?

colormap(jet)?

colorbar

title('?

?

?

?

?

?

?

')?

图1-1a)

图1-1b)

结果分析:

从变换结果图1-1b)可以看出,图像的能量主要集中在某一频率段,如果将系数较小的部分舍去,即可实现图像的压缩。

例:

更改DFT系数为整数,做IDFT观察图像的变化;

%将DFT系数的绝对值四舍五入后作为新的dft系数

F1=round(abs(F))。

f2=ifft2(F1)。

figure(3)。

imshow(f2)。

实验结果:

图1-2a)

实验结论:

可见图像无法还原到最初。

例:

更改小幅值的DFT系数为0,做IDFT变化观察图像的变化:

%将绝对值小于a的都改为零,在做IDFT变换:

%取a=1;

F(abs(F)<1)=0。

f2=ifft2(F)。

figure(4)。

imshow(f2)。

实验结果:

图1-3a)

结果分析:

在执行二维离散傅里叶变换过程中,只取离散傅里叶变换系数大于1的系数,所示的反变换结果如图1-3c)和原图像1-1a)比较,通过肉眼观测,很难看出两者的区别,如果将系数小于100的值设为0,反变换得到的结果如图1-3d)所示,图像的清晰度越来越低,图像质量越来越差。

F(abs(F)<100)=0。

f2=ifft2(F)。

figure(4)。

imshow(f2)。

图1-3d)

例:

选取不同类型(自然景观、人物照片、卡通图片)的实际图片重复上述处理并分析结果

用下面这幅图进行分析:

代码:

f=imread('e:

/26794054.jpg')。

figure

(1)。

imshow(f)。

F=fft2(f)。

figure

(2)。

f1=ifft2(F)。

imshow(f1)。

图1-4

结果分析:

可见图像已经发生严重失真。

例:

将彩色图像转换为黑白二值图像之后才能进行二维傅里叶变换

这里我们取阈值为0.5

代码:

f=imread('e:

/26794054.jpg')?

f1=im2bw(f,0.5)?

figure

(1)?

imshow(f1)?

title('?

?

?

?

')?

F=fft2(f1)?

%?

F?

?

?

?

?

?

F1=ceil(real(F))?

f2=ifft2(F1)?

figure

(2)?

imshow(f2)?

%?

DFT?

?

?

?

?

?

?

?

?

F(abs(F)<10)=0?

f3=ifft2(F)?

figure(3)?

imshow(f3)?

实验结果:

图1-5a)

图1-5b)图1-5c)

结果分析:

可见如果要压缩彩图,不可能保留其颜色信息,只有将其先转换为黑白二值图像之后才能进行压缩,这样至少图像基本形状信息不会缺失。

第2章基于离散余弦变换的图像压缩技术

2.1离散余弦变换基础

一维离散余弦变换和其反变换定义如下:

式中

二维离散余弦变换和反变换的公式为:

2.2Matlab实例操作

1、dct2函数

利用该函数可以实现数字图像的二维离散余弦变换,该函数使用了一个基于FFT的算法,提高了较大矩阵时的处理速度。

其语法格式为:

B=dct2(A)

B=dct2(A,m,n)

B=dct2(A,[mn])

例:

对D:

\matlab\girl.jpg进行离散余弦变换:

代码:

clearall

%读入图像并显示

RGB=imread('D:

\matlab\girl.jpg')。

figure

(1)。

imshow(RGB)。

title('原始图像')。

%将真彩图像转换为灰度图像

A=rgb2gray(RGB)。

%实现离散余弦变换

B=dct2(A)。

%结果显示

figure

(2)。

imshow(log(abs(B)),[]),colormap(jet(64)),colorbar

title('离散余弦变换结果')。

实验结果:

图2-1a)图2-1b)

图2-1c)

结果分析:

从图2-1b)所示的变化结果及图2-1c)所示的变化系数可以看出,经过离散余弦变换,图像的能量主要集中在图像2-1b)的左上角,其余大部分系数接近于0,这说明离散余弦变换也可用于图像的压缩。

2.、idct2函数

MATLAB中,可以用函数Idct2实现离散余弦反变换,其语法格式为:

B=idct2(A)

B=idct2(A,m,n)

B=idct2(A,[mn])

例:

对D:

\matlab\girl.jpg进行离散余弦变换,在进行反变换之前,将系数小于10的值设为0,再进行反变换

代码:

clearall

%读入图像并转换为灰度图像

RGB=imread('D:

\matlab\girl.jpg')。

A=rgb2gray(RGB)。

%显示图像

figure

(1)。

imshow(A)。

title('原始图像灰度显示')。

%离散余弦变换并显示结果

B=dct2(A)。

figure

(2)。

imshow(log(abs(B)),[]),colormap(jet(64)),colorbar

title('离散余弦变换结果图像')。

%将变换系数中小于10的值设为0

B(abs(B)<10)=0。

%离散余弦反变换并显示结果

K=idct2(B)。

figure(3)。

imshow(K,[0255])。

title('反变换图像')。

实验结果:

图2-2a)图2-2b)

图2-2c)

结果分析:

在执行离散余弦变换过程中,只取离散余弦变换系数大于10的系数,所示的反变换结果如图2-2c)和原图像2-2a)比较,通过肉眼观测,很难看出两者的区别,如果将系数小于50和小于100的值设为0,反变换得到的结果如图2-2d)和2-2e)所示,图像的清晰度越来越低,图像质量越来越差。

2-2d)2-2e)

2.3JPEG压缩技术:

原理:

1、dctmtx函数

该函数用于计算二维的离散余弦变换矩阵,语法格式如下:

D=dctmtx(n);D是返回的n*n的矩阵,D*A是矩阵A的每一列离散余弦变换值,D'*A是矩阵A的每一列的离散余弦变换值,如果A是一个方阵,A的二维离散余弦变换可以用D*A*D'计算。

例:

对D:

\matlab\girl.jpg进行JPEG压缩:

代码:

clearall

%读入图像并显示

REG=imread('D:

\matlab\girl.jpg')。

I=rgb2gray(REG)。

figure

(1)。

imshow(I)。

title('原始图像')。

%图像数据类型转换为double型

I=im2double(I)。

D=dctmtx(8)。

%系数取舍矩阵

mask=[11111000

11110000

11100000

11000000

10000000

00000000

00000000

00000000]。

%DCT变换D->P1。

[88]->x。

D->P2'

Bdct=blkproc(I,[88],'P1*x*P2',D,D')。

%系数选择

Bch=blkproc(Bdct,[88],'P1.*x',mask)。

%IDCT变换

Bidct=blkproc(Bch,[88],'P1*x*P2',D',D)。

%结果显示

figure

(2),imshow(Bidct)。

title('解压图像')。

实验结果:

2-3a)2-3b)

2-3c)

结果分析:

如图2-3c)所示,尽管在反变换过程中只保留了15/64=23.4%的系数,单反变换图像依然有较好的视觉效果,仔细观察图像可以看出,解压图像边缘线条边缘比较模糊,这说明在压缩过程中抛弃了图像的高频成分,因而图像经过DCT后,其低频分量主要集中在左上角,而高频分量集中在右下角。

第3章基于小波变换的图像压缩

3.1连续小波变换

所有小波是通过对基本小波进行尺度伸缩和位移得到的。

基本小波(也称母小波)是一具有特殊性质的实值函数,它是震荡衰减的,而且通常衰减得很快,在数学上满足零均值条件:

而且,其频谱满足条件(容许条件):

即基本小波在频域也具有好的衰减性质。

一族小波基函数可以由基本小波函数通过尺度伸缩参数a和位移参数b来产生:

如果函数f(t)属于空间L2(R),则的连续小波变换(CWT)定义为:

CWT的逆变换为:

3.2离散小波变换

令尺度伸缩参数为整数,平移参数从而得到离散的小波函数令尺度伸缩参数,为整数,平移参数,从而得到离散的小波函数:

由此可得离散小波变换为:

在实际应用中,为了使小波变换的计算更加有效,通常构造的小波函数都具有正交性,即

3.3小波变换函数

dwt2函数用来实现单尺度二维离散小波变换

idwt函数用来实现二维小波单尺度逆变换

wavedec2函数用来实现二维信号的多尺度小波分解

waverec2函数用来实现多尺度二维小波重构

dwtmode函数用于设置离散小波变换的延拓模式,延拓模式表示处理边界问题的不同方法

appcoef2函数用来提取二维信号小波分解的近似系数

detcoef2函数用来提取二维信号小波分解的细节系数

wrcoef2函数用与由二维小波系数重构单支

upcoef2函数用于二维小波系数的直接重构

upwlev2函数用于二维小波分解的单尺度重构

wenergy2函数用于计算二维小波分解的能量

wfilters用于设计小波滤波器

3.4用小波变换实现图像压缩:

小波降噪和压缩函数:

wnoise函数用于产生小波的噪声测试数据

wnoisest函数用于估计一维小波系数的标准差

ddencmp函数用于获取降噪或压缩的默认值

wthresh函数用于进行软阈值或硬阈值处理

wdencmp用于一维或二维小波降噪或压缩

wbmpen函数为一维或二维小波降噪的阈值函数

wdcbm为使用Birgé-Massart策略的一维小波阈值函数

wdcbm2为使用Birgé-Massart策略的二维小波阈值函数

thselect函数用于选择降噪阈值

wthcoef2函数是二维小波降噪和压缩的导向函数

wthrmngr函数用于阈值设置管理

图像压缩(保留低频系数法)

对图像小波分解后,可得到一系列不同分辨率的子图像,表征图像最主要的部分是低频部分,高频部分大部分数据均接近于0。

因此,利用小波分解去掉图像的高频部分而仅保留图像的低频部分,是一种最简单的图像数据压缩方法。

例:

对D:

\matlab\girl.jpg用小波变换进行压缩:

代码:

clearall

REG=imread('D:

\matlab\girl.jpg')。

X=rgb2gray(REG)。

subplot(2,2,1)。

image(X)。

colormap(gray(256))。

axissquare。

title('原始图像')。

disp('原始图像大小')。

whos('X')。

%对图像小波分解

[c,l]=wavedec2(X,2,'bior3.7')。

%提取第一层的低频和高频系数

cA1=appcoef2(c,l,'bior3.7',1)。

cH1=detcoef2('h',c,l,1)。

cD1=detcoef2('d',c,l,1)。

cV1=detcoef2('v',c,l,1)。

%重构第一层系数

A1=wrcoef2('a',c,l,'bior3.7',1)。

H1=wrcoef2('h',c,l,'bior3.7',1)。

D1=wrcoef2('d',c,l,'bior3.7',1)。

V1=wrcoef2('v',c,l,'bior3.7',1)。

c1=[A1H1。

V1D1]。

%显示第一层频率信息

subplot(2,2,2)。

image(c1)。

colormap(gray(256))。

axissquare。

title('图像分解信息')。

%图像压缩,保留第一层低频信息并对其量化编码

ca1=wcodemat(cA1,192,'mat',0)。

subplot(2,2,3)。

image(ca1)。

colormap(gray(256))。

axissquare。

title('第1次压缩图像')。

disp('第1次压缩图像的大小为:

')。

whos('ca1')。

%图像压缩,保留第二层低频信息并对其量化编码

ca2=appcoef2(c,l,'bior3.7',2)。

ca2=wcodemat(ca2,192,'mat',0)。

subplot(2,2,4)。

image(ca2)。

colormap(gray(256))。

colormap(gray(256))。

axissquare。

title('第2次压缩图像')。

disp('第2次压缩图像的大小为:

')。

whos('ca2')。

实验结果:

图3-1a)

图3-1b)

结果分析:

从结果可以看出,第一次压缩式提取原始图像中小波分解第一层的低频信息,此时压缩效果较好,压缩比较小(约0.28)。

第二次压缩式提取第一层分解低频部分的低频信息,即第二层的的低频部分,其压缩比较大(约0.07),压缩效果从视觉上看还可以。

例:

用wdencmp函数对图像D:

\matlab\girl.jpg进行压缩:

代码:

clearall

clc

%装载图像

REG=imread('D:

\matlab\girl.jpg')。

X=rgb2gray(REG)。

%对图像小波分解

n=2。

w='sym2'。

[c,l]=wavedec2(X,n,w)。

%全局阈值

[thr,sorh,keepapp]=ddencmp('cmp','wv',X)。

%压缩处理对所有高频系数进行阈值化处理

[Xcomp,cxc,lxc,perf0,perfl2]=wdencmp('gbl',c,l,w,n,thr,sorh,keepapp)。

%图像显示

subplot(1,2,1)。

image(X)。

colormap(gray(256))。

title('原始图像')。

subplot(1,2,2)。

image(Xcomp)。

colormap(gray(256))。

title('压缩后的图像')。

%显示有关参数

disp('小波分解系数中值为0的系数个数百分比:

')。

disp(perf0)。

disp('压缩后剩余能量百分比:

')。

disp(perfl2)。

实验结果:

图3-2a)

图3-2b)

结果分析:

图像经压缩后,压缩效果较好,压缩也比较小约(0.48),能量保留约100%。

第4章结束语

本文主要描述了各种变换在图像压缩中的处理。

由实验结果可以看出:

二维傅里叶、离散余弦变换、小波变换均可实现对图像的压缩处理。

其中,傅里叶变换对图像压缩表现最直接,但是只能对二进制图像进行压缩,且对于小值系数的过滤的临界值不好判断。

离散余弦变换结果可以看出图像的能量都集中在左上角,所以既可以和傅里叶变换一样对小值系数进行过滤,也可以进行乘矩阵的方式,保留变换结果左上角的系数,所以避免了衡量临界值大小的麻烦。

而小波变换保留低频信息是压缩办法中最简单的一种,他不需要经过其他处理即可获得较好的压缩效果。

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2