最优渗流阈值理论挑选出的数据证明是错的 怎样从理论上证明

二维图像小波阈值去噪的C++实现(matlab验证) - [ 图像处理算法 ] - 看云
本文代码的实现严重依赖前面的两篇文章:
图像在获取或传输过程中会因各种噪声的干扰使质量下降,这将对后续图像的处理产生不利影响.所以必须对图像进行去噪处理,而去噪所要达到的目的就是在较好去除噪声的基础上,良好的保持图像的边缘等重要细节.在图像去噪领域得到广泛的应用.本博文根据小波的分解与重构原理,实现了基于硬阈值和软阈值函数的小波阈值去噪的C++版本,最终结果与matlab库函数运算结果完全一致。
注本文的大部分文字提取于参考论文
一,小波阈值去噪基本理论
小波阈值处理
小波阈值收缩法是Donoho和Johnstone提出的,其主要理论依据是,小波变换具有很强的去数据相关性,它能够使信号的能量在小波域集中在一些大的小波系数中;而噪声的能量却分布于整个小波域内.因此,经小波分解后,信号的小波系数幅值要大于噪声的系数幅值.可以认为,幅值比较大的小波系数一般以信号为主,而幅值比较小的系数在很大程度上是噪声.于是,采用阈值的办法可以把信号系数保留,而使大部分噪声系数减小至零.小波阈值收缩法去噪的具体处理过程为:将含噪信号在各尺度上进行小波分解,设定一个阈值,幅值低于该阈值的小波系数置为0,高于该阈值的小波系数或者完全保留,或者做相应的“收缩(shrinkage)”处理.最后将处理后获得的小波系数用逆小波变换进行重构,得到去噪后的图像.
阈值函数的选取
阈值去噪中,阈值函数体现了对超过和低于阈值的小波系数不同处理策略,是阈值去噪中关键的一步。设w表示小波系数,T为给定阈值,sign(*)为符号函数,常见的阈值函数有:
硬阈值函数:
(小波系数的绝对值低于阈值的置零,高于的保留不变)
软阈值函数:
值得注意的是:
1) 硬阈值函数在阈值点是不连续的,在下图中已经用黑线标出。不连续会带来振铃,伪吉布斯效应等。
2) 软阈值函数,原系数和分解得到的小波系数总存在着恒定的偏差,这将影响重构的精度使得重构图像的边缘模糊等现象.
同时这两种函数不能表达出分解后系数的能量分布。见下图:
于是不少文章出现了折衷方案,一种新的阈值函数(非本文重点):
参考代码:
%Generate signal and set threshold.
y = linspace(-1,1,100);
subplot(311);
plot(y);title('原始线');
thr = 0.5;
% Perform hard thresholding.
ythard = wthresh(y,'h',thr);
subplot(312);
plot(ythard);title('硬阈值线');
% Perform soft thresholding.
ytsoft = wthresh(y,'s',thr);
subplot(313);
plot(ytsoft);title('软阈值线');
阈值的确定
选取的阈值最好刚好大于噪声的最大水平,可以证明的是噪声的最大限度以非常高的概率低于
(此阈值是Donoho提出的),其中根号右边的这个参数(叫做sigma)就是估计出来的噪声标准偏差(第一级分解出的小波细节系数,即整个HH系数的绝对值的中值),本文将用此阈值去处理各尺度上的细节系数。
曾经做的ppt挪用过来的。
二维信号分解与重构
小波的分解
小波的重构
二,Matlab库函数实现
1,核心库函数说明
1)wavedec2
图像的多级小波分解,将返回分解出来的小波系数以及小波系数的各级长度
2)waverec2
多级小波系数的重构,重构出原信号
3)wthresh函数
对系数进行指定类型(全局阈值或者分层阈值)的阈值去噪处理
更具体的函数说明可以在,matlab里键入“doc 函数名”将得到很详细的说明,当然也可以百度
2,软,硬阈值处理效果:
局部放大图像:
四幅图象均放大两倍,便于查看区别
3,完整的代码实现
说明:代码实现对图像一层分解后的细节系数进行全局阈值处理(即LHL,LH,HH均用同一阈值处理),并且阈值是自定义的。
%%%%%%%%%%%%%%%%%%%%%%%%通过matlab的函数来实现阈值去噪%%%%%%%%%%%%%%%%%%%%%%%%%% %
X=imread('sample1.bmp');%有噪声的图像
X=double(X);
figure(1);
imshow(X,[]);title('原始图像');
%注意,原始图像带有噪声
% 获取输入参数
= 'db3';%小波类型
= 1;%分解层数
= 23.91;%自定义阈值
sorh1 = 'h';%硬阈值
sorh2 = 's';%软阈值
% 对图像进行小波分解
[c,l] = wavedec2(X,n,w);
% 对小波系数全局阈值处理
cxch =% 保留近似系数
cxcs =% 保留近似系数
justdet = prod(l(1,:))+1:length(c);%截取细节系数(不处理近似系数)
% 阈值处理细节系数
cxch(justdet) = wthresh(cxch(justdet),sorh1,thr);%硬阈值去噪
cxcs(justdet) = wthresh(cxcs(justdet),sorh2,thr);%软阈值去噪
xch = waverec2(cxch,l,w);
xcs = waverec2(cxcs,l,w);
figure(2);
imshow(uint8(xch));title('硬阈值去噪图像');
figure(3);
imshow(uint8(xcs));title('软阈值去噪图像');
三,C加加实现
说明:如同一维的阈值去噪一样,在执行自己编写的wavedec2函数时必须先初始化,初始化的目的是为了获取信号的长度,选择的是什么小波,以及分解的等级等信息,然后计算出未来的各种信息,比如每个等级的系数的size,其中共有变量m_msgCL2D记录了这些信息。二维小波分解的初始化函数如下:
//初始化二维图像的分解信息,保存未来需要的信息
CWavelet::InitDecInfo2D(
const int height,//预分解的图像的高度
const int width,//预分解的图像的宽度
const int Scale,//分解尺度
const int dbn//db滤波器编号,有默认值
if (dbn != 3)
SetFilter(dbn);
if (height & m_dbFilter.filterLen - 1 || width & m_dbFilter.filterLen - 1)
cerr && "错误信息:滤波器长度大于信号的高度或者宽度!" &&
int srcHeight =
int srcWidth =
m_msgCL2D.dbn =
m_msgCL2D.Scale = S
m_msgCL2D.msgHeight.resize(Scale + 2);
m_msgCL2D.msgWidth.resize(Scale + 2);
//源图像的尺寸
m_msgCL2D.msgHeight[0] =
m_msgCL2D.msgWidth[0] =
//每一尺度上的尺寸
for (int i = 1; i &= S i++)//注意:每个尺度的四个分量的长宽是一样的
int exHeight = (srcHeight + m_dbFilter.filterLen - 1) / 2;//对称拓延后系数的长度的一半
srcHeight = exH
m_msgCL2D.msgHeight[i] = srcH
int exWidth = (srcWidth + m_dbFilter.filterLen - 1) / 2;//对称拓延后系数的长度一半
srcWidth = exW
m_msgCL2D.msgWidth[i] = srcW
m_msgCL2D.msgHeight[Scale + 1] = srcH
m_msgCL2D.msgWidth[Scale + 1] = srcW
//计算总的数据个数
int tmpAllSize = 0;
int curPartSize = 0;
int prePartSize = 0;
for (int i = 1; i &= S i++)
curPartSize = m_msgCL2D.msgHeight[i] * m_msgCL2D.msgWidth[i];
tmpAllSize += curPartSize * 4 - prePartS
prePartSize = curPartS
m_msgCL2D.allSize = tmpAllS
m_bInitFlag2D =
2,核心函数的实现
1)二维信号的单次分解
说明:本函数建立在一维的小波分解函数基础上(DWT)
// 二维数据的小波分解
CWavelet::DWT2(
double *pSrcImage,//源图像数据(存储成一维数据,行优先存储)
int height,//图像的高
int width,//图像的宽
double *pDstCeof//分解出来的图像系数
if (!m_bInitFlag2D)
cerr && "错误信息:未初始化,无法对信号进行分解!" &&
if (pSrcImage == NULL || pDstCeof == NULL)
cerr && "错误信息:dwt2数据无内存" &&
Sleep(3000);
int exwidth = (width + m_dbFilter.filterLen - 1) / 2 * 2;//pImagCeof的宽度
int exheight = (height + m_dbFilter.filterLen - 1) / 2 * 2;//pImagCeof的高度
double *tempImage = new double[exwidth*height];
// 对每一行进行行变换
double *tempAhang = new double[width];
double *tempExhang = new double[exwidth]; // 临时存放每一行的处理数据
for (int i = 0; i & i++)
for (int j = 0; j & j++)
tempAhang[j] = pSrcImage[i*width + j];//提取每一行的数据
DWT(tempAhang, width, tempExhang);
for (int j = 0; j & j++)
tempImage[i*exwidth + j] = tempExhang[j];
// 对每一列进行列变换
double *tempAlie = new double[height]; // 临时存放每一列的转置数据
double *tempexlie = new double[exheight]; // 临时存放每一列的处理数据
for (int i = 0; i & i++)
for (int j = 0; j & j++)
tempAlie[j] = tempImage[j*exwidth + i];//提取每一列数据
//执行变换
DWT(tempAlie, height, tempexlie);
for (int j = 0; j & j++)
pDstCeof[j*exwidth + i] = tempexlie[j];
AdjustData(pDstCeof, exheight, exwidth);//调整数据
delete[] tempA
tempAlie = NULL;
tempexlie = NULL;
delete[] tempA
tempAhang = NULL;
delete[] tempE
tempExhang = NULL;
delete[] tempI
tempImage = NULL;
2)二维信号的单次重构
//二维小波反变换
CWavelet::IDWT2(
double *pSrcCeof, //二维源图像系数数据
int dstHeight,//重构出来后数据的高度
int dstWidth,//重构出来后数据的宽度
double *pDstImage//重构出来的图像
int srcHeight = (dstHeight + m_dbFilter.filterLen - 1) / 2 * 2;
int srcWidth = (dstWidth + m_dbFilter.filterLen - 1) / 2 * 2;//pSrcCeof的高度
IAdjustData(pSrcCeof, srcHeight, srcWidth);//调整成LL,HL,LH,HH
double *tempAline = new double[srcHeight]; // 临时存放每一列的数据
double *tempdstline = new double[dstHeight]; // 临时存放每一列的重构结果
double *pTmpImage = new double[srcWidth*dstHeight];
for (int i = 0; i & srcW i++)//每一列
for (int j = 0; j&srcH j++)
tempAline[j] = pSrcCeof[j*srcWidth + i];//提取每一列
IDWT(tempAline, dstHeight, tempdstline);
for (int j = 0; j & dstH j++)
pTmpImage[j*srcWidth + i] = tempdstline[j];
// 对每一行进行行变换
double *tempAhang = new double[srcWidth];
double *tempdsthang = new double[dstWidth]; // 临时存放每一行的处理数据
for (int i = 0; i & dstH i++)
for (int j = 0; j & srcW j++)
tempAhang[j] = pTmpImage[i*srcWidth + j];//提取每一行的数据
IDWT(tempAhang, dstWidth, tempdsthang);
for (int j = 0; j & dstW j++)
pDstImage[i*dstWidth + j] = tempdsthang[j];
delete[] tempA
tempAline = NULL;
tempdstline = NULL;
delete[] tempA
tempAhang = NULL;
tempdsthang = NULL;
delete[] pTmpI
pTmpImage = NULL;
3)二维信号的多级分解
说明:对于每一级分解都将调用单次二维分解函数来实现,所以本函数是建立在函数IDW2基础上
// 二维小波多级分解,需要先初始化获取未来数据信息
bool CWavelet::WaveDec2(
double *pSrcData,//源图像数据,存储为一维信号
double *pDstCeof//分解后的系数,它的大小必须是m_msgCL2D.allSize
if (!m_bInitFlag2D)
cerr && "错误信息:未初始化,无法对图像进行分解!" &&
if (pSrcData == NULL || pDstCeof == NULL)//错误:无内存
int height = m_msgCL2D.msgHeight[0];
int width = m_msgCL2D.msgWidth[0];
int scale = m_msgCL2D.S
// 临时变量,图像数据
double *tempImage = new double[height*width];
int maxCoefSize =4 * m_msgCL2D.msgHeight[1] * m_msgCL2D.msgWidth[1];
double *tempDst = new double[maxCoefSize];
for (int i = 0; i & height* i++)
tempImage[i] = pSrcData[i];
int gap = m_msgCL2D.allSize - maxCoefS
for (int i = 1; i &= i++)
DWT2(tempImage, height, width, tempDst);
// 低频子图像的高和宽
height = m_msgCL2D.msgHeight[i];
width = m_msgCL2D.msgWidth[i];
for (int j = 0; j & height* j++)
tempImage[j] = tempDst[j];//提取低频系数(近似系数)
for (int j = 0, k = j & 4 * height* j++, k++)
pDstCeof[k] = tempDst[j];//所有系数
gap -= 4 * m_msgCL2D.msgWidth[i + 1] * m_msgCL2D.msgHeight[i + 1] - height*
delete[] tempD
tempDst = NULL;
delete[] tempI
tempImage = NULL;
4)多级分解系数的重构
// 根据多级分解系数重构出二维信号,必须先初始化获取分解信息
bool CWavelet::WaveRec2(
double *pSrcCoef,//多级分解出的源系数
double *pDstData//重构出来的信号
if (!m_bInitFlag2D)
cerr && "错误信息:未初始化,无法对信号进行分解!" &&
if (pSrcCoef == NULL || pDstData == NULL)//错误:无内存
int height = m_msgCL2D.msgHeight[0];
int width = m_msgCL2D.msgWidth[0];
int decLevel = m_msgCL2D.S
int maxCeofSize = 4 * m_msgCL2D.msgHeight[1] * m_msgCL2D.msgWidth[1];
double *pTmpImage = new double[maxCeofSize];
int minCeofSize = 4 * m_msgCL2D.msgHeight[decLevel] * m_msgCL2D.msgWidth[decLevel];
for (int i = 0; i & minCeofS i++)
pTmpImage[i] = pSrcCoef[i];
int gap = minCeofS
for (int i = decL i &= 1; i--)
int nextheight = m_msgCL2D.msgHeight[i - 1];//重构出来的高度
int nextwidth = m_msgCL2D.msgWidth[i - 1];//重构出来的宽度
IDWT2(pTmpImage, nextheight, nextwidth, pDstData);
if (i & 1)//i==1已经重构出来了,不再需要提取系数
for (int j = 0; j & nextheight* j++)
pTmpImage[j] = pDstData[j];
for (int j = 0; j & 3 * nextheight* j++)
pTmpImage[nextheight*nextwidth + j] = pSrcCoef[gap + j];
gap += 3 * nextheight*
delete[] pTmpI
pTmpImage = NULL;
3,函数正确性验证
1)二维单次分解与重构测试
附带本次测试代码:
//小波函数的二维分解与重构
int main()
system("color 0A");
double s[36] = { 1, 12, 30, 4, 5, 61, 2, 3, 41, 5, 6, 27, 3, 4, 15, 6, 72, 8, 41, 5, 6, 7, 8, 9, 5, 64, 7, 8, 9, 14, 6, 27, 8, 9, 40, 31 };
int height = 6;
int width = 6;
for (int j = 0; j & 36; j++)
cout && s[j] && " ";
if ((j + 1) % 6 == 0)
cw.InitDecInfo2D(height, width, 1, 3);
double *dst = new double[cw.m_msgCL2D.allSize];
cw.DWT2(s, height, width, dst);
for (int j = 0; j & cw.m_msgCL2D.allS j++)
cout && dst[j] && " ";
if ((j + 1) % 10 == 0)
double *dsts = new double[36];
cw.IDWT2(dst, height, width, dsts);
for (int j = 0; j & 36; j++)
cout && dsts[j] && " ";
if ((j + 1) % 6 == 0)
dst = NULL;
dsts = NULL;
system("pasue");
2)二维多级分解与重构测试
说明:对二维数据进行了5层分解,选取的是小波族db3
附带本次测试代码:
//小波函数二维多级分解与重构测试
int main()
system("color 0A");
double s[48] = { 1, 12, 30, 4, 5, 61, 2, 3, 41, 5, 6, 27, 3, 4, 15, 6, 72, 8, 41, 5, 6, 7, 8, 9, 5, 64, 7, 8, 9, 14, 6, 27, 8, 9, 40, 31 ,
1, 12, 30, 4, 5, 61, 2, 3, 41, 5, 6, 27
int height = 6;
int width = 8;
for (int j = 0; j & 48; j++)
cout && s[j] && " ";
if ((j + 1) % 8 == 0)
int Scale = 5;
int dbn = 2;
cw.InitDecInfo2D(height, width, Scale, dbn);
double *dstcoef = new double[cw.m_msgCL2D.allSize];
cw.WaveDec2(s,dstcoef);
for (int i = 0; i & cw.m_msgCL2D.allS i++)
cout && dstcoef[i] && " ";
if ((i + 1) % 10 == 0)
double *dst = new double[48];
for (int i = 0; i & 48; i++)
dst[i] = 0.0;
cw.WaveRec2(dstcoef, dst);
cout && cout &&
for (int i = 0; i & 48; i++)
cout && dst[i] && " ";
if ((i + 1) % 8 == 0)
dst = NULL;
dstcoef = NULL;
system("pause");
3,阈值去噪结果:
说明:本测试只是模拟测试,对图像的处理也是一样的(完全一致)
硬阈值去噪结果
软阈值去噪结果
实际的图像处理结果为:
源噪声图像为:
注意以下是采用:db6,3层分解,软阈值去噪,阈值是在前文提及的阈值基础上缩小2.5倍得到的效果:
注意以下是采用:db6,3层分解,硬阈值去噪,阈值是在前文提及的阈值基础上缩小2.5倍得到的效果:
附带上述C++测试验证主函数
//二维阈值去噪测试
int main()
system("color 0A");
double s[48] = { 10, 12, 30, 4, 5, 61, 2, 3, 41, 5, 6, 27, 3, 4, 15, 6, 72, 8, 41, 5, 6, 7, 8, 9, 5, 64, 7, 8, 9, 14, 6, 27, 8, 9, 40, 31,
10, 12, 30, 4, 50, 61, 2, 3, 41, 5, 6, 27};
int height = 6;
int width = 8;
for (int j = 0; j & 48; j++)
cout && s[j] && " ";
if ((j + 1) % 8 == 0)
int Scale = 3;
int dbn = 3;
cw.InitDecInfo2D(height, width, Scale, dbn);
double *dstcoef = new double[48];
if (!cw.thrDenoise2D(s, dstcoef))
cerr && "Error" &&
for (int j = 0; j & 48; j++)
cout && dstcoef[j] && " ";
if ((j + 1) % 8 == 0)
dstcoef = NULL;
system("pause");
附带上述matlab验证程序
% %%%%%%%%%%%%%%%%%%%%%%%%通过matlab的函数来实现阈值去噪%%%%%%%%%%%%%%%%%%%%%%%%%% %
X=[ 10, 12, 30, 4, 5, 61, 2, 3;
41, 5, 6, 27, 3, 4, 15, 6;
72, 8, 41, 5, 6, 7, 8, 9;
5, 64, 7, 8, 9, 14, 6, 27;
8, 9, 40, 31,10, 12, 30, 4;
50, 61, 2, 3, 41, 5, 6, 27];
X=double(X);
% 获取输入参数
= 'db3';%小波类型
= 3;%分解层数
sorh1 = 'h';%硬阈值
sorh2 = 's';%软阈值
% 对图像进行小波分解
[c,l] = wavedec2(X,n,wname);
N = numel(X);
[chd1,cvd1,cdd1] = detcoef2('all',c,l,1);
cvd1=cvd1(:)';
sigma = median(abs(cvd1))/0.6745;%提取细节系数求中值并除以0.6745
thr = sigma*sqrt(2*log(N));
% 对小波系数全局阈值处理
cxch =% 保留近似系数
cxcs =% 保留近似系数
justdet = prod(l(1,:))+1:length(c);%截取细节系数(不处理近似系数)
% 阈值处理细节系数
cxch(justdet) = wthresh(cxch(justdet),sorh1,thr);%硬阈值去噪
cxcs(justdet) = wthresh(cxcs(justdet),sorh2,thr);%软阈值去噪
xch = waverec2(cxch,l,wname);
xcs = waverec2(cxcs,l,wname);
注:本博文为原创,后续可能继续更新本文。如果转载,请务必复制本条信息!
原文地址:
原作者博客:
参考资源:
【1】《数字图像处理》(冈萨雷斯matlab第二版)
【5】《维基百科》
【6】来自中国知网若干论文
【7】小波分析及其应用__孙延奎
【8】杨建国.小波分析及其工程应用[M].北京:机械工业出版社.2005
【9】毛艳辉.小波去噪在语音识别预处理中的应用.上海交通大学硕士学位论文.2010
【10】matlab各种函数说明,及其内部函数实现
页面正在加载中小波分析在电气数据消噪与压缩中的应用_论文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
小波分析在电气数据消噪与压缩中的应用
|0|0|文档简介
中国最大最早的专业内容网站|
总评分0.0|
&&介绍了小波分析的基本概念,小波变换用于信号压缩和消噪的基本理论和算法。分析了电器采集数据的特点。并针对该特点提出了一种基于分解系数最大值的阈值选取方法,确定最佳小波函数的选取,并给出了仿真实例,证明了本方法的实用性。井计算了采用不同小波函数以度不同阈值选取方法时信号的压缩比。比较了压缩和消噪效果的不同。
试读已结束,如果需要继续阅读或下载,敬请购买
定制HR最喜欢的简历
你可能喜欢
您可以上传图片描述问题
联系电话:
请填写真实有效的信息,以便工作人员联系您,我们为您严格保密。OALib Journal期刊
费用:600人民币/ 99美元
查看量下载量
Adaptive Wavelet Multi-thresholding for Image Denoising基于小波变换的自适应多阈值图像去噪
,,,,查宇飞,
Keywords: ,,wavelet transform图像去噪,,,,,,,,,,,,,,,,,,
小波图像去噪是小波应用较成功的一个方面,其中最重要的一个环节是最优阈值的确定,为此,提出了一种新的基于小波变换的自适应多阈值图像去噪方法——Multi—Threshold shrink去噪法,这种方法是在不同子带和不同方向上选择不同的最佳阈值,而最佳阈值的选取是基于Bayes理论,并认为图像的小波系数是服从广义高斯分布的(generalized Gaussian distribution)。通过实验证明,这种方法能很好地对图像去噪,与Donoho等人提出的Visu shrink去噪方法和Chang等人提出的Bayes shrink去噪方法相比,不仅提高了去噪后图像的信噪比(SNR)和最小均方误差(MSE),而且也使图像更加清晰,并能更好地适合人眼的视觉特性,从而可在客观和主观上同时获得更佳的去噪效果。
Please enable JavaScript to view the
&&&OALib Suggest
Live SupportAsk us anything 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
《(毕业论文_两种二维交叉熵阈值法等价性证明及快速实现打印稿)》
下载积分:1600
内容提示:《(毕业论文_两种二维交叉熵阈值法等价性证明及快速实现打印稿)》
文档格式:PDF|
浏览次数:0|
上传日期: 02:12:29|
文档星级:
该用户还上传了这些文档
《(毕业论文_两种二维交叉熵阈值法等价性证明及快速实
官方公共微信您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
少数类数据识别方法及性能评价.pdf52页
本文档一共被下载:
次 ,您可免费全文在线阅读后下载本文档
文档加载中...广告还剩秒
需要金币:200 &&
优秀硕士毕业论文,完美PDF格式,可在线免费浏览全文和下载,支持复制编辑,可为大学生本专业本院系本科专科大专和研究生学士硕士相关类学生提供毕业论文范文范例指导,也可为要代写发表职称论文提供参考!!!
你可能关注的文档:
··········
··········
学号:座机电话号码73
姓名:李明方
电话:1座机电话号码39
所在学院:信息科学与工程学院
200 8 02 1173
硕 士 学 位 论 文
论文题目 少数类数据识别方法及性能评价
学科专业名称:计算机软件与理论
申 请人姓 名:李明方
指 导 教 师:张化祥 教授
论文提交时间:2011 年05 月27 日
独 创 声 明
本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。
据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰
写过的研究成果,也不包含为获得
(注:如没有其他需要特别声明的,
本栏可空)或其他教育机构的学位或证书使用过的材料。与我一同工作的同志对本研究
所做的任何贡献均已在论文中作了明确的说明并表示谢意。
学位论文作者签名:
导师签字:
学位论文版权使用授权书
本学位论文作者完全了解 学校 有关保留、使用学位论文的规定,有权保留并向国
家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权 学校
可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫
描等复制手段保存、汇编学位论文。(保密的学位论文在解密后适用本授权书)
学位论文作者签名:
导师签字:
签字日期:20
正在加载中,请稍后...

我要回帖

更多关于 最优阈值法 的文章

 

随机推荐