版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上小波模极大值原理在图像边缘提取和信号奇异点检测中的应用转2007-05-26 10:18不做小波很久,陆续接到网友的很多询问,不少信件关于这个话题。本不想花功夫写程序,因为毕竟研究方向是计算电磁学,然对小波的好奇仍是一种抗拒不了的力量。再加上网友的一遍遍不厌其烦的请教,我也就利用半天时间,将这一话题做了一个程序,拿出来分享。1。什么是模极大值?一般信号的主要信息,由拐点(二阶导数为零的点)确定,而由于噪声的影响,直接求拐点显然困难。于是,我们求一阶导数的模的极大值。2。什么是小波模极大值?就是先将小波函数和原信号卷积(连续小波变换),然后对结果取模,最后找到极大值。上
2、述步骤,也就等价于:先把某一光滑函数求导(求导后满足积分为零的条件成为小波函数),然后卷积源信号,接着取模,最后发现极大值。3。图像处理的操作。a、给定某一尺度,求出二维高斯函数沿x和沿y方向的导数Phi_x,Phi_y。这两个函数就等价于小波函数。b、用Phi_x,Phi_y分别与图像卷积得到Gx,Gy。c、求出每一个像素点的梯度大小G=(Gx*Gx+Gy*Gy).(1/2),用反正切求梯度方向或者称幅角atan(Gy/Gx)。这里,注意的是反正切只能求出一、四象限的角度,其它象限要分别处理。且Gx为一个很小的数值时,也要处理。d、把求得幅角,分成四种方向。第一种0或180方向(水平),第二
3、种90或270方向(垂直),第三种45或225方向(正对角线),第四种135或315方向(负对角线)。也就是说,看看你求出幅角的大小与上面的哪个方向最接近。e、依次检测每一个像素点,看看在它对应“幅角最接近的方向上”是否是极大值。如果是,纪录该梯度值。若不是,把梯度值置零。f、找到记录梯度值中的最大值,然后以该值做归一化。比较每一个像素归一化的梯度值,当该梯度值大于某个阈值的时候,就是真正边缘,否则认为是伪边缘。4。实际上这个算法和canny算子本质上等价的。让我们再来回顾canny本人经典的原话,来体会边缘提取的目标到底是什么。a、好的检测性能。不漏检真实边缘,也不把非边缘点作为边缘点检出,
4、使输出的信噪比最大。b、好的定位性能。检测到的边缘点与实际边缘点位置最近。c、唯一性。对于单个边缘点仅有一个响应。沙威(gjsdgjsd)安徽大学2007年4月22日 % 小波模极大值用于边缘提取% 沙威(gjsdgjsd)安徽大学% 2007年4月22日 clc;clear % 下载图像load woman% X=double(imread(1.bmp);SIZE=length(X); % 图像尺寸% 多尺度m=1.0;delta=2m; % 构造高斯函数的偏导N=20; % 滤波器长度(需要调整,必须是偶数)for index_x=1:N; for index_y=1:N; x=index
5、_x-(N+1)/2; y=index_y-(N+1)/2; phi_x(index_x,index_y)=(x/delta2).*exp(-(x.*x+y.*y)/(2*delta2); phi_y(index_x,index_y)=(y/delta2).*exp(-(x.*x+y.*y)/(2*delta2); endend; % 对图象做行列卷积Gx=conv2(X,phi_x,same);Gy=conv2(X,phi_y,same); % 求梯度Grads=sqrt(Gx.*Gx)+(Gy.*Gy); % 求幅角(梯度方向)angle_array=zeros(SIZE,SIZE); %
6、 角度 % 遍历for i=1:SIZE; for j=1:SIZE if (abs(Gx(i,j)eps*100) % x的绝对值足够大 p=atan(Gy(i,j)/Gx(i,j)*180/pi; % 反正切求角度值(1,4象限) if (p0) % 负的幅角(4象限) p=p+360; end; if (Gx(i,j)180) % 2象限的特殊处理 p=p-180; elseif (Gx(i,j)0 & p=(-22.5) & angle_array(i,j)=(180-22.5) & angle_array(i,j)Grads(i+1,j) & Grads(i,j)Grads(i-1,
7、j) edge_array(i,j)=Grads(i,j); end elseif (angle_array(i,j)=(90-22.5) & angle_array(i,j)=(270-22.5) & angle_array(i,j)Grads(i,j+1) & Grads(i,j)Grads(i,j-1) edge_array(i,j)=Grads(i,j); end elseif (angle_array(i,j)=(45-22.5) & angle_array(i,j)=(225-22.5) & angle_array(i,j)Grads(i+1,j+1) & Grads(i,j)Gr
8、ads(i-1,j-1) edge_array(i,j)=Grads(i,j); end else % 135/215 if (Grads(i,j)Grads(i+1,j-1) & Grads(i,j)Grads(i-1,j+1) edge_array(i,j)=Grads(i,j); end end endend % 去除伪边缘MAX_E=max(max(edge_array).); % 最大幅度值edge_array=edge_array/MAX_E; % 最大幅度值threshold=0.2; % 阈值(需要调整) % 遍历for m=1:SIZE for n=1:SIZE if (ed
9、ge_array(m,n)threshold) edge_array(m,n)=1; else edge_array(m,n)=0; end endend % 显示图像和边缘figure(1)subplot(1,2,1)imshow(X,map)title(图像)subplot(1,2,2)imshow(edge_array)title(边缘) % 进一步的工作,连线. 对于信号的奇异性检测,也是一个道理。% 小波变换用于奇异检测% 安徽大学 沙威% 2007年4月27日clc;clear% 下载信号load freqbrk;s=freqbrk;n=length(s); % 长度% 多尺度m=
10、-2.0;delta=2m;% 构造高斯函数的偏导N=20; % 滤波器长度(需要调整,必须是偶数)A=-1/sqrt(2*pi); % 幅度% 构造高斯函数for index_x=1:N;x=index_x-(N+1)/2;phi_x(index_x)=A*(x/delta2).*exp(-(x.*x)/(2*delta2);end;phi_x=phi_x/norm(phi_x); % 能量归一化% 对信号做卷积g=conv(s,phi_x); % 卷积g=wkeep(g,n); % 保持信号长度% 模极大值m=abs(g); % 取模V,P=max(m); % 最大值位置% 显示结果figure(1);subplot(2,1,1);plot(0:n-1,s); % 原始信号xlabel(离散时间);ylabel(信号幅值);t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 邢台劳务合同范例
- 义乌装修合同范例
- 饭店配货合同范例
- pvc管供货合同范例
- 项目备案合同范例
- 购房合同模板ps
- 香猪采购合同范例
- 餐厅合资入股合同模板
- 水厂机电安装合同范例
- 建立兄妹关系合同范例
- 人教版英语八年级上册《Unit 10 If you go to the party,you'll have a great time!》大单元整体教学设计2022课标
- 胸痛的诊断及护理
- 2023年温州市公用事业发展集团有限公司招聘考试真题
- 列管式(正丁醇)换热器设计
- 《联合国的成立》课件
- 职场礼仪概述与常见的礼仪
- 客户减肥合同范例
- 个人创业计划书模板15篇
- 【初中生物】脊椎动物-鱼课件-2024-2025学年人教版生物七年级上册
- 中学语文《锦瑟》课件2024年版
- 公司章程模板五篇
评论
0/150
提交评论