2015-10-27 18:13:44 robin1987z 阅读数 11507
小波变换原理  

  所谓的小波的小是针对傅里叶波而言,傅里叶波指的是在时域空间无穷震荡的正弦(或余弦波)。

  相对而言,小波指的是一种能量在时域非常集中的波,它的能量有限,都集中在某一点附近,而且积分的值为零,这说明它与傅里叶波一样是正交波。

  举一些小波的例子:


可以看到,能量集中在x轴0值附近,以y轴的0值为基线,上下两个区域的波形面积相等。


  众所周知,图像的傅里叶变换是将图像信号分解为各种不同频率的正弦波。同样,小波变换是将图像信号分解为由原始小波位移和缩放之后的一组小波。

  小波在图像处理里被称为图像显微镜,原因在于它的多分辨率分解能力可以将图片信息一层一层分解剥离开来。剥离的手段就是通过低通和高通滤波器,

这里我们以一个图像的横向一维为例,讲讲小波的分解与还原,采用的是Haar小波做分解:

图像原始像素矩阵:[6 4 8 7 5 9 3 2]

分解低通滤波器:[ 1  1]/sqrt(2)

分解高通滤波器:[-1 1]/sqrt(2)

1.用低通滤波器与原始像素矩阵做卷积得:[8 10 12 15 12 14 12 5]/sqrt(2)

下采样得:[10 15 14 5]/sqrt(2)    ----->L

2.用高通滤波器与原始像素矩阵做卷积得:[-4 2 -4 1 2 -4 6 1]/sqrt(2)

下采样得:[2 1 -4 1]/sqrt(2)    ----->H

上例为一维情况,二维情况在做完横向滤波之后再进行纵向滤波即可。


逆变换过程:

重构低通滤波器:[1  1]/sqrt(2)

重构高通滤波器:[1 -1]/sqrt(2)

1.对L数组插值得:[0 10 0 15 0 14 0 5]/sqrt(2)

再用低通滤波器做卷积得:[10 10 15 15 14 14 5 5]/2

2.对H数组插值得:[0 2 0 1 0 -4 0 1]/sqrt(2)

再用高通滤波器做卷积得:[2 -2 1 -1 -4 4 1 -1]/2

两个数组求和得:[6 4 8 7 5 9 3 2] ,矩阵被还原了。


基于小波变换的图像压缩

我们知道,图像的低频部分保存的是图像的轮廓信息,而高频保存的是图像的边缘和细节信息,大量的研究表明,幅值低的高频信息对于图像共享较小,

丢弃对图像质量的影响不大,所以小波变换的特性给了图像压缩一个很好的工具,将原图进行小波分解以后,为高频信息设置一个阈值a,假如该点的值小于a则置零这样就抛弃掉了图像中影响不大的低幅值高频信息,还原出来的图像没有明显的质量下降,但是占用空间却变小了。

给一个别人论文里的示例和统计:


效果:


2005-09-01 15:47:00 byxdaz 阅读数 4885
二维小波分析对图像处理的应用(1)
[ 作者:佚名    转贴自:南京大学      更新时间:2004-5-27    文章录入:johnchen]

            

      一:引言 本文从二维小波理论出发,对其在图像处理的应用上进行了一些分析和处理,力图反映出小波分析在图像处理方面有着其独特的特点。本文就以下几点进行阐述:

①小波基本概念

②图像压缩

③图像消噪

④图象增强

⑤图象平滑处理

 

    二:小波基本概念

                                        

小波定义:设 ,其傅立叶变换为 ,当 满足允许条件,即完全重构条件或恒等分辨条件. 时,我们称 为一个基本小波或母小波,将母函数 经伸缩和平移后,得 。 我们称其为一个小波序列。其中a为伸缩因子,b为平移因子。

小波变换是一种信号的时间——尺度分析方法,他具有多分辨率分析的特点,而且在时频两域都具有表征信号局部特征的能力,是一种窗口大小固定不变但其形状可变,时间窗和频率窗都可变的时频局部化分析方法。即再低频部分具有较高的频率分辨率和时间分辨率,在高频部分具有较高的时间分辨率和较低的频率分辨率,很适合探测正常信号中夹带的瞬态反常现象并展示其成分,所以被誉为分析信号的显微镜。

波分析是把信号分解成低频al和高频dl两部分,在分解中,低频al中失去的信息由高频dl捕获。在下一层的分解中,又将al分解成低频a2和高频d2两部分,低频a2中失去的信息由高频d2捕获,如此类推下去,可以进行更深层次的分解。

二维小波函数是通过一维小波函数经过张量积变换得到的,二维小波函数分解是把尺度j的低频部分分解成四部分:尺度j+1的低频部分和三个方向(水平、垂直、斜线)的高频部分。

三:图像压缩

对于图像来说,如果需要进行快速或实时传输以及大量存储,就需要对图像数据进行压缩。在同样的通信容量下,如果图像数据压缩后在传输,就可以传输更多的图像信息。例如,用普通的电话线传输图像信息。图像压缩研究的就是寻找高压缩比的方法且压缩后的图像要有合适的信噪比,在压缩传输后还要恢复原信号,斌且在压缩、传输、恢复的过程中,还要求图像的失真度小。这就是图像压缩的研究问题。

       图像数据往往存在各种信息的冗余、如空间冗余、信息熵冗余 、视觉冗余 和结构冗余等等。所谓压缩就是去掉各种冗余,保留对我们有用的信息。图像压缩的过程常称为编码。相对的,图像的恢复当然就是解码了。

       图像压缩的方法通常可分为有失真编码和无失真编码两大类:

       无失真编码方法如改进的霍夫曼编码。

       有失真编码方法的还原图像较之原始图像存在着一些误差,但视觉效果是可以接受的。常见的方法有预测编码、变换编码、量化编码、信息熵编码、分频带编码和结构编码等等。

       而将小波分析引入图像压缩的范畴也是一个重要的手段,并且有着它自己的特点。它的特点在于压缩比高、压缩速度快,压缩后能保持信号与图像的特征基本不变,且在传递过程中可以抗干扰等等。

       下面我们就举一个粒子来说明怎样用小波分析进行图像压缩。

       例如现在有一个二维图像(文件名为),我们利用二维小波分析来进行图像压缩。

由原理可知,一个图像作小波分解后,可得到一系列不同分辨率的子图像,不同分辨率的子图像对应的频率是不相同的。高分辨率(高频)子图像上大部分点的数值都接近于0,越是高就越是明显。而对于一个图像来说,表现一个图像的最主要的部分是低频部分,所以最简单的压缩方法是利用小波分解去掉图像的高频部分而只保留低频部分。

 

程序大致如下:

clear

%装入图像

load wbarb;

 

%显示图像

 syms X;

subplot(221);

image(coast);

colormap(map)

title('原始图像');

axis square

disp('压缩前图像X的大小');

whos('coast')

 

%对图像用小波进行层小波分解

[c,s]=wavedec2(X,2,'bior3.7');

%提取小波分解结构中的一层的低频系数和高频系数

cal=appcoef2(c,s,'bior3.7',1);

%水平方向

ch1=detcoef2('h',c,s,1);

%垂直方向

cv1=detcoef2('v',c,s,1);

%斜线方向

cd1=detcoef2('d',c,s,1);

 

%各频率成份重构

a1=wrcoef2('a',c,s,'bior3.7',1);

h1=wrcoef2('h',c,s,'bior3.7',1);

v1=wrcoef2('v',c,s,'bior3.7',1);

d1=wrcoef2('d',c,s,'bior3.7',1);

c1=[a1,h1;v1,d1];

 

%显示分频信息

subplot(222);

image(c1);

axis square;

title ('分解后低频和高频信息');

 

%进行图像压缩

%保留小波分解第一层低频信息

%首先对第一层信息进行量化编码

ca1=appcoef(c,s,'bior3.7',1);

ca1=wcodemat(ca1,440,'mat',0);

 

%改变图像高度并显示

ca1=0.5*ca1;

subplot(223);

image(ca1);

colormap(map);

axis square;

title('第一次压缩图像');

disp('第一次压缩图像的大小为:');

whos('ca1')

 

%保留小波分解第二层低频信息进行压缩

ca2=appcoef2(c,s,'bior3.7',2);

 

%首先对第二层信息进行量化编码

ca2=wcodemat(ca2,440,'mat',0);

 

%改变图像高度并显示

ca2=0.25*ca2;

subplot(224);

image(ca2);

colormap(map);

axis square;

title('第二次压缩图像');

disp('第二次压缩图像的大小为:');

whos('ca2')

 

输出结果如图:


 

 
 Name
 Size
 Bytes
 class
 
压缩前图像
 X
 256×256
 524288
 Double array
 
第一次压缩图像
 Ca1
 135×135
 145800
 Double array
 
第二次压缩图像
 Ca2
 75×75
 45000
 Double array
 

 

在这里可以看出,第一次压缩我们是提取原始图像中小波分解第一层的低频信息,此时压缩效果较好,压缩比较小(约为1/3大小)。第二次压缩实提取第一层分解低频部分的低频部分(即第二层的低频部分),其压缩比较大(约为1/12),压缩效果在视觉上也基本过得去。

       上面的保留原始图像中低频信息的压缩办法只是一种最简单的压缩办法。它不需经过其他处理即可获得较好的压缩效果。当然,对于上面的例子我们还可以只提取小波分解的第三、第四层的低频信息。从理论上说,我们可以获得任意压缩比的压缩图像。只不过在对压缩比和图像质量都有较高要求时,它就不如其他编码方法了。

下面我们在举一个例子,这一次用 中函数来对上图进行压缩。

Clear;

%装入图形信号

load wbarb;

%显示图像

subplot(221);

image(X);

colormap(map);

title('原始图像');

disp('压缩前图像的大小');

whos('X');

axis square;

%对图像进行压缩

%对图像用db3小波进行二层小波分解

[c,s]=wavedec2(X,5,'db3');

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

[Xcomp,cxc,lxc,perf0,perfl2]=wdencmp('gbl',c,s,'db3',5,thr,sorh,keepapp);

%将压缩后的图像于原始图像相比较

subplot(222);

image(Xcomp);

colormap(map);

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

disp('压缩后图像的大小');

whos('Xcomp')

%显示有关参数

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

disp(perf0);

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

disp(perfl2);

 

输出结果如下:

小波分解系数中值为0的系数个数百分比:49.8088

压缩后剩余能量百分比:99.9754


       总之,是事无绝对。一种压缩图像的方法不可能尽善尽美。要想很好的进行图像的压缩,就需要综合的利用多种其他技术,特别是数据编码和解码算法。

2016-02-22 16:01:31 zizi7 阅读数 9768

本文旨在对图像处理中的小波分析做一个概要性的记录和介绍

1. 背景

傅里叶变换可以将信号表示为无限三角函数的累加形式,从而实现将信号从空间域到频率域的转换。然而这种转换丢失了信号时空域的信息(只知道频率及其幅值,但不知道该频率发生的空间位置,可以类比直方图),因此无法做局部分析。

短时傅里叶变换通过引入一个时间窗函数试图改进傅里叶的局部缺陷,但由于窗函数的尺寸是固定的,不能同时对信号高频和低频做精确分析。

小波变换基于可自动调节尺寸的窗函数(图像金字塔),在时域和频域均具有良好的局部化性能,被誉为“数学显微镜”。

小波变换在图像处理上可用于去噪、边缘提取(实质就是突出低频或高频),但最主要的应用在于图像压缩


2. 小波变换基本原理

傅里叶变换将信号分解为不同频率的三角函数之和的形式,小波变换则以尺度函数小波函数为基,将信号分解。

在这里,尺度是通过不断对图像做下2采样以建立图像金字塔得到的

尺度函数由低通滤波器构造,小波函数由高通滤波器实现。一次分解有一组小波函数组成(类似傅里叶变换中不同频率的三角函数),这组小波函数由一个母小波函数通过缩放和平移生成。


图2-1. 二维离散快速小波变换

如图2-1所示,h0为尺度函数,h1为小波函数,相应的操作为卷积。结果的f0为上一级的低频近似,f1为上一级水平方向的高频近似,f2为上一级垂直方向的高频近似,f3为上一级对角线方向的高频近似。


图2-2. 二维离散小波变换结果

这里每次的分解都是从上级的低频近似开始,因为图像的大部分信息在低频区域;而小波包分解则对低频和高频都做分解。


3. 小波变换应用

去噪和边缘增强:通过对小波变换后的高频、低频做相应抑制或提升来实现。在这里其实空间域或傅里叶频域也可处理,优势不大。

图像压缩:由于图像主要信息在低频,因此可以对高频做稀疏化处理(甚至全设为0)实现压缩。傅里叶变换虽然也可提取不同频率,但因为丢失了空间信息因此无法做复原。


4. 代码

Matlab的可以参考晨宇思远博客的小波系列博文

C的可以参考http://eeweb.poly.edu/~onur/source.html,里面包含了小波及小波包分解重构的实现


图4-1. 二级小波分解


5. 参考

[1] 晨宇思远博客小波变换系列

[2] 清华小波变换课件

[3] 小波分析,小波函数与尺度函数

2018-05-05 17:22:19 Qwilfish 阅读数 959

小波分析是多尺度实现图像时频转换的一种方式,在图像处理学习中有相当多的应用,具体介绍可见如下博客:

https://blog.csdn.net/qq_20823641/article/details/51829981

或者冈萨雷斯的数字图像处理中小波分析的一章,需要良好的离散数学功底,不太容易理解,适合研究生学习。

如下是在opencv3.0环境下的一个哈尔小波变换级反变换程序,有不足之处欢迎大家指出。

#include"stdafx.h"
#include<opencv2\opencv.hpp>
#include<iostream>
using namespace cv;
int thundershock() {
	Mat src = imread("lena.jpg", 0);
	Mat dst;
	int Width = src.cols;
	int Height= src.rows;
	//小波分解次数
	int depth = 1;//
	int depthcount = 1;
	//改变数据格式防止溢出
	Mat tmp = Mat::zeros(src.size(), CV_32FC1);
	Mat  wavelet = Mat::zeros(src.size(), CV_32FC1);
	Mat  imgtmp = src.clone();
	imgtmp.convertTo(imgtmp, CV_32FC1);
	//执行小波变换
	while (depthcount <= depth) {
		Width = src.cols / pow(2,depthcount-1);
		Height = src.rows/pow(2,depthcount-1);
		for (int i = 0; i < Height; i++) {
			for (int j = 0; j < Width / 2; j++) {
				tmp.at<float>(i, j) = (imgtmp.at<float>(i, 2 * j) + imgtmp.at<float>(i, 2 * j + 1)) / 2;
				tmp.at<float>(i, j + Width / 2) = (imgtmp.at<float>(i, 2 * j) - imgtmp.at<float>(i, 2 * j + 1)) / 2;
			}






		}
		for (int i = 0; i < Height / 2; i++) {
			for (int j = 0; j < Width; j++) {
				wavelet.at<float>(i, j) = (tmp.at<float>(2 * i, j) + tmp.at<float>(2 * i + 1, j)) / 2;
				wavelet.at<float>(i + Height / 2, j) = (tmp.at<float>(2 * i, j) - tmp.at<float>(2 * i + 1, j)) / 2;
			}
		}
		imgtmp = wavelet;
		depthcount++;
	}
	namedWindow("DST", WINDOW_AUTOSIZE);
	convertScaleAbs(wavelet, dst);
	
	
	imshow("DST", dst);
	//反变换
	while (depthcount > 1) {
	
		for (int i = 0; i < Height / 2; i++) {
			for (int j = 0; j < Width; j++) {
				tmp.at<float>(2*i, j) = wavelet.at<float>( i, j) + wavelet.at<float>(i+Height/2,j);
				tmp.at<float>(2*i+1, j) = wavelet.at<float>( i, j) - wavelet.at<float>(i + Height/2, j);
			}
		}
		for (int i = 0; i < Height; i++) {
			for (int j = 0; j < Width / 2; j++) {
				imgtmp.at<float>(i, 2*j) = tmp.at<float>(i,  j) + tmp.at<float>(i,  j + Width/2);
				imgtmp.at<float>(i, 2*j+1) = tmp.at<float>(i,  j) - tmp.at<float>(i,  j + Width/2);
			}
		}
		depthcount--;
		wavelet = imgtmp;
		Height *= 2;
		Width *= 2;


	}
	namedWindow("restruct", WINDOW_AUTOSIZE);
	convertScaleAbs(imgtmp, imgtmp);


	
	imshow("restruct", imgtmp);
	waitKey();
	imwrite("haar.jpg", dst);
	return 0;
}

附执行结果:


2005-09-01 15:49:00 byxdaz 阅读数 5318
二维小波分析对图像处理的应用(2)
[ 作者:佚名    转贴自:南京大学       更新时间:2004-5-27    文章录入:johnchen ]

 四:图像消噪

   图像消噪方法的一般说明

对二维图像信号的消噪方法同样适用于一维信号,尤其是对于几何图像更适合。二维模型可以表述为

其中, e 是标准偏差不变得高斯白噪声。二维信号的消噪步骤与一维信号的消噪步骤完全相同,也有三步,只是用二维小波分析工具代替了一维小波分析工具。如果用固定的阀值形式,测选择的阀值用 m^2 代替了一维信号中的n 。着三步是:

(1)       二维信号的小波分解 。选择一个小波和小波分解的层次N, 然后计算信号s到第N层的分解。

(2)       对高频系数进行阀值量化。对于从一到N的每一层,选择一个阀值,斌对着一层的高频系数进行软阀值化处理。

(3)       二维小波的重构。根据小波分解的第N层的低频系数和经过修改的从第1层到第N层的各层高频系数,来计算二维信号的小波重构。

在这三个步骤中,重点内容就是如何选取阀值和如何进行阀值的量化。请注意,

了一维信号自动消噪的情况,对于其他的情况,一维信号的消噪和压缩用的是wdencmp, 这对于二维信号也是一样的。

 编程

给定一个有较大白噪声的图象,利用二维小波分析进行信号消噪处理。

分析:由于图象所含的噪声主要是白噪声,且集中于高部分,故用第通实现消去噪声。程

序如下。

load tire;

subplot(221); 

image(X);

colormap(map);        

title('原图 ');

axis square;                      %画出原图象

init=2055615866;

randn('seed',init)

x=X+38*randn(size(X));

subplot(222);

image(x);

colormap(map);

title('含噪声图象 ');          

axis square;          %画出含噪声图象

[c,s]=wavedec2(x,2,'sym4'); 

a1=wrcoef2('a',c,s,'sym4',1); %第一次低通滤波消噪 

subplot(223);

image(a1);

title('第一次消噪后图象 ');

axis square;                        %画出第一次低通滤波消噪后图象

a2=wrcoef2('a',c,s,'sym4',2); %第二次低通滤波消噪

subplot(224);

image(a2);

 

title('第二次消噪后图象 ');

axis square;           %画出第二次低通滤波消噪后图象

 


 

 

 

 

 

 

 

 

 

 

 

分析: 第一次消噪滤去了大部分高频噪声,但与原图比较,依然有不少高频噪声,第二次消噪在第一次消噪基础上,再次滤去高频噪声,消噪效果较好,但图像质量比原图稍差。

 五:图象增强

   说明

小波变换将一幅图象分解为大小、位置和方向都不同的分量。在做逆变换之前可以改变小波变换域中某些系数的大小,这样就能够洋选择的放大所感兴趣的分量而减小不需要的分量。

编程:

给定一个图象信号,用二维小波分析对图象进行增强处理。

                [分析]由于图象经二维小波分解后,图象的轮廓主要体现在低频部分,而细节部分则体现子高频部分,因此,可以通过对低频分解系数进行增强处理,对高频分解系数进行衰减处理,即可以达到图象增强的作用。

                具体处理过程如下程序:

         load woman;

subplot(121);

image(X);

colormap(map);

title(‘原始图象‘);

axis square;          %画出原图象

 

[c,s]=wavedec2(X,2,’sym4’);    %进行二层小波分解

sizec=size(c);         %处理分解系数,突出轮廓,弱化细节

for I =1:sizec(2)

if(c( I )>350)

  c( I )=2*c( I );

else

  c( I )=0.5*c( I );

end

end

xx=waverec2(c,s,’sym4’);    %分解系数重构

subplot(122);

image(xx);

title(‘增强图象‘)

axis square;          %画出增强图像


结果分析:

打到了图像增强的效果,试图像对比更加明显,但由于细节上的弱化,却使得图像产生模糊的感觉。就那妇女托着下腮的手来说,增强后的图像几乎就不能辨认。手指更是消失了。

六:图象融合

   说明

图象融合是将同一对象的两个或更多的图象合成在一幅图象中,以便他比原来的任何一幅更能容易的为人们所理解。真一技术可应用于多频谱图象理解以及医学图象处理等领域,再这些场合,同一物体部件的图象往往是采用不同的成象机理得到的。

编程:

用二维小波分析将两幅图象融合在一起。

处理过程如下:

load woman;                %装入原图像

X1=X;map1=map;

subplot(221);

image(X1);

colormap(map1);

title(‘woman’);                      

axis square                                 %画出woman图像

load wbarb;                                                                    %装入原图像

X2=X;map2=map;

for I =1:256

for j=1:256

     if(X2(I, j)>100)

        X2(I, j)=1.2*X2(I, j);

      else

        X2(I, j)=0.5*X2(I, j);

      end

end

end

subplot(222);

image(X2);

colormap(map2);

title(‘wbarb’);

axis square                 %画出wbarb图像

[cl,sl]=wavedec2(X1,2,’sym4’);

sizec1=size(c1);

for I=1:sizec1(2)

     c1( I )=1.2*c1( I );

end

[c2,s2]=wavedec2(X2,2,’sym4’);

c=c1+c2;

c=0.5*c;

xx=waverec2(c,s,’sym4’);

subplot(223);image(xx);

title(‘融合图象‘);

axis square                                   %画出融合后的图像


 

 

 

 

 

 

 

 

 

 

 

结果分析:

一幅图像和他某一部分放大后的图像融合,融合后的图像给人一种朦朦胧胧梦幻般的感觉,对较深的背景部分则做了淡化处理。

七:图象平滑处理

   说明

图像平滑的主要目的是为了减少噪声,一般情况下,在空间域内可以用于平均来减少噪声。在频率域,因为噪声浦多在高频段,因此可以曹用各种形式的低通滤波的办法来减少噪声。

    编程

给定一个含噪声的图象,用二维小波分析和图象的中值滤波进行图象的平滑。

[分析]这是一个图象平滑处理问题。首先,对图象在频域内进行增强,然后在空域内加入较大的白噪声。通过对含噪图象进行平滑处理,即可以使含噪图象具有较好的平滑效果。具体处理过程如下:

load woman;                          %装入原图

X1=X;

map1=map;

subplot(221);

image(X1);

colormap(map1);

title('woman');

axis square                               %画出原图

             

[c,s]=wavedec2(X,2,’sym4’);                               %二层分解小波信号

sizec=size( c );            

for I= 1:sizec(2)            %频域里增强图像

     if(c( I )>350)

       c( I )=1.3*c( I );

     else

       d( I )=0.5*c( I );

     end

end

xx=waverec(c,s,’sym4’);        %系数重构

init=2788605826;           %加入噪声

rand(‘seed’,init);

xx=xx+68*(rand(size(xx)));

subplot(221);image(xx);

title(‘增强的含噪图象‘);

axis square;

for I=2:1:255              %中值滤波

   for j=2:1:255

      temp=0;

for m=1:3

  for n=1:3

       temp=temp+xx(I+m-2,j+n-2);

  end

end

temp=temp/9;

xx(I, j)=temp;

end

end

colormap(map);

subplot(222);

image(xx);

axis square;

title(‘平滑后的图象‘);

axis square                               %画出平滑后图像


结果分析:

平滑后的图像没有原图清晰,但边缘轮廓过渡更自然,消噪的效果还是比较明显的,噪声图像中的一些粒状颗粒在平滑后基本消失。                                        

附录

函数名
 功能
 
dwt2
 单层二维小波分解
 
dwtper2
 单层二为离散小波变换
 
wavedec2
 多层二维小波分解
 
idwt2
 单层二微小波重构
 
idwper2
 单层二维小波分解
 
waverec2
 多层二维小波重构
 
upwiev2
 二维小波分解的单层重构
 
wrcoef2
 二维小波分解系数单支重构
 
upcoef2
 二维小波分解的直接重构
 
detcoef2
 提取二微小波分解高频系数
 
appcoef2
 提取二维小波分解低频系数
 
wthresh
 进行软阈值或硬阈值处理
 
wthcoef2
 二维信号的小波系数阈值处理
 
ddencmp
 获取在消噪或压缩过程中的默认值阈值
 
wdencmp
 用小波进行信号的消噪和压缩

小波分析与去噪

阅读数 18203

小波分析

博文 来自: u012526003
没有更多推荐了,返回首页