




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
图像锐化处理图像锐化的概念补偿图像轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰。n 图像锐化的目的是加强图像中景物的细节边缘和轮廓。n 锐化的作用是使灰度反差增强。n 因为边缘和轮廓都位于灰度突变的地方。所以锐化算法的实现是基于微分作用。图像锐化方法n 图像的景物细节特征;n 一阶微分锐化方法;n 二阶锐化微分方法;n 一阶、二阶微分锐化方法效果比较。图像细节的灰度变化特性扫描线平坦段灰度渐变孤立点细线灰度跃变1、一阶微分锐化 基本原理n 一阶微分的计算公式非常简单:n 离散化之后的差分方程: 考虑到图像边界的拓扑结构性,根据这个原理派生出许多相关的方法。 n 单方向一阶微分锐化 n 无方向一阶微分锐化 交叉微分锐化 Sobel锐化 Priwitt锐化(1)单方向的一阶锐化 基本原理n 单方向的一阶锐化是指对某个特定方向上的边缘信息进行增强。n 因为图像为水平、垂直两个方向组成,所以,所谓的单方向锐化实际上是包括水平方向与垂直方向上的锐化。 水平方向的一阶锐化-基本方法n 水平方向的锐化非常简单,通过一个可以检测出水平方向上的像素值的变化模板来实现。 问题:计算结果中出现了小于零的像素值?(2)垂直方向的一阶锐化 基本方法n 垂直锐化算法的设计思想与水平锐化算法相同,通过一个可以检测出垂直方向上的像素值的变化模板来实现。 单方向锐化的后处理n 这种锐化算法需要进行后处理,以解决像素值为负的问题。n 后处理的方法不同,则所得到的效果也就不同。方法1:整体加一个正整数,以保证所有的像 n 素值均为正。(比如+128,还有255的则视为255处理)n 这样做的结果是:可以获得类似浮雕的效果。下例是+20后的效果void CDynSplitView:OnHsharpen()/ TODO: 在此添加命令处理程序代码 int i,j,buf;int w33=1,2,1,0,0,0,-1,-2,-1;clearmem();int ysize=m_imagey,xsize=m_imagex;for(j=1;jysize-1;j+)for (i=1;ixsize-1;i+)buf=(int)(*(image_in+(j-1)*xsize+i-1)*w00+*(image_in+(j-1)*xsize+i)*w01+*(image_in+(j-1)*xsize+i+1)*w02+*(image_in+j*xsize+i-1)*w10+*(image_in+j*xsize+i)*w11+*(image_in+j*xsize+i+1)*w12+*(image_in+(j+1)*xsize+i-1)*w20+*(image_in+(j+1)*xsize+i)*w21+*(image_in+(j+1)*xsize+i+1)*w22);if (buf255) buf=255;buf+=128;if (buf255) buf=255;*(image_out+j*xsize+i)=buf;Invalidate();添加菜单,设置其ID属性:ID_HSHARPEN, ID_VSHARPEN为菜单添加事件处理程序。方法2:将所有的像素值取绝对值。n 这样做的结果是,可以获得对边缘的有方向提取。垂直方向锐化处理浮雕:(3)无方向一阶锐化 问题的提出n 前面的锐化处理结果对于人工设计制造的具有矩形特征物体(例如:楼房、汉字等)的边缘的提取很有效。但是,对于不规则形状(如:人物)的边缘提取,则存在信息的缺损。n 为了解决上面的问题,就希望提出对任何方向上的边缘信息均敏感的锐化算法。n 因为这类锐化方法要求对边缘的方向没有选择,所有称为无方向的锐化算法。一阶微分双方向一次微分运算,直接以梯度值代替理论基础:对灰度图像f在纵方向和横方向两个方向进行微分。该算法是同时增强水平和垂直方向的边缘。利用双方向一次微分运算,算出梯度后让梯度值等于该点的灰度值。 该算法的数学表达式为: G(i,j)=sqrtf(i,j)-f(i,j-1)*f(i,j)-f(i,j-1)+f(i,j)-f(i-1,j)* f(i,j)-f(i-1,j)或Gf(i,j)=| f(i,j)- f(i-1,j)|+| f(i,j)- f(i,j-1)| 添加菜单,设置其ID属性:ID_HVSHARPEN, ID_HNSHARPEN为菜单添加事件处理程序。直接梯度 门限梯度void CDynSplitView:OnHvsharpen()clearmem();int i,j,fx,fy, ysize=m_imagey,xsize=m_imagex;int v33=0,0,0,0,1,0,0,-1,0,h33=0,0,0,0,1,-1,0,0,0;for(j=1;jysize-1;j+)for (i=1;i18)*(image_out+j*xsize+i)=255;else*(image_out+j*xsize+i)=0; Invalidate();辅以门限判断理论基础 Gf(i,j)= f(i,j) - f(i-1,j)2+ f(i,j) - f(i,j-1)2 1/2 或Gf(i,j)=| f(i,j)- f(i-1,j)|+| f(i,j)- f(i,j-1)| Gf(i,j)+100; Gf(i,j)Tg(i,j)= f(i,j); 其它 其中,T为门限值,像素的梯度值大于T,则加上100,加上100像素值后若大于255,取255。if(int)(abs(fx)+abs(fy)30)*(image_out+j*xsize+i)=(int)(abs(fx)+abs(fy)+100;else*(image_out+j*xsize+i)=*(image_in+j*xsize+i);给边缘规定一个特定的灰度级理论基础 Gf(i,j)= f(i,j) - f(i-1,j)2+ f(i,j) - f(i,j-1)2 1/2或Gf(i,j)=| f(i,j)- f(i-1,j)|+| f(i,j)- f(i,j-1)| La; Gf(i,j)T g(i,j)= f(i,j); 其它 La为一指定的灰度值梯度大于30,La=255根据梯度二值化图像理论基础 对阶跃边缘,在边缘点其一阶导数取极值。由此,对每个像素取它的梯度值G(i,j),适当取门限T作如下判断: 若G(i,j)T则(i,j)点为阶跃状边缘点 2、边缘检测边缘检测算子检查每个像素的邻域并对灰度变化率进行量化,通常也包括方向的确定。 大多数是基于方向导数模板求卷积的方法。 将所有的边缘模板逐一作用于图像中的每一个像素,产生最大输出值的边缘模板方向,表示该点边缘的方向,如果所有方向上的边缘模板接近于零,该点处没有边缘;如果所有方向上的边缘模板输出值都近似相等,没有可靠边缘方向。卷积卷积可以简单的看成加权求和的过程。本节介绍的算子有: Roberts边缘检测算子; Sobel边缘检测算子; Prewitt边缘检测算子; LoG_Laplacian高斯-拉普拉斯算子。 (1)无方向一阶锐化 - 交叉微分交叉微分算法(Roberts算法)计算公式如下:特点:算法简单 Roberts边缘检测算子(2)无方向一阶锐化 Sobel锐化Sobel锐化的计算公式如下:特点:锐化的边缘信息较强 Sobel锐化(2) 无方向一阶锐化 Priwitt锐化算法Priwitt锐化算法 的计算公式如下:特点:与Sobel相比,有一定的抗干扰性。图像效果比较干净。几种方法的效果比较n Sobel算法与Priwitt算法的思路相同,属于同一类型,因此处理效果基本相同。n Roberts算法的模板为2*2,提取出的信息较弱。n 单方向锐化经过后处理之后,也可以对边界进行增强。(3)二阶微分锐化问题的提出1)对于突变形的细节,通过一阶微分的极大值点,二阶微分的过0点均可以检测出来。2)对于细线形的细节,通过一阶微分的过0点,二阶微分的极小值点均可以检测出来。 3)对于渐变的细节,一般情况下很难检测,但二阶微分的信息比一阶微分的信息略多。 二阶微分锐化 算法推导n 由前面的推导,写成模板系数形式形式即为Laplacian算子:void CDynSplitView:OnLaplas()/ TODO: 在此添加命令处理程序代码int i,j,df;clearmem();/memcpy(image_out,image_in,m_imagex*m_imagey);int ysize=m_imagey,xsize=m_imagex;int w33=0,-1,0,-1,4,-1,0,-1,0;for(j=1;jysize-1;j+)for (i=1;ixsize-1;i+)df=(int)(*(image_in+(j-1)*xsize+i-1)*w00+*(image_in+(j-1)*xsize+i-1)*w01+*(image_in+(j-1)*xsize+i+1)*w02+*(image_in+j*xsize+i-1)*w10+*(image_in+j*xsize+i)*w11+*(image_in+j*xsize+i+1)*w12+*(image_in+(j+1)*xsize+i-1)*w20+*(image_in+(j+1)*xsize+i)*w21+*(image_in+(j+1)*xsize+i+1)*w22);*(image_out+j*xsize+i)=int(abs(df);Invalidate();二阶微分锐化 Laplacian变形算法为了改善锐化效果,可以脱离微分的计算原理,在原有的算子基础上,对模板系数进行改变,获得Laplacian变形算子如下所示。二阶微分锐化 Wallis算法n 考虑到人的视觉特性中包含一个对数环节,因此在锐化时,加入对数处理的方法来改进。在前面的算法公式中注意以下几点:1)为了防止对0取对数,计算时实际上是用log(f(i,j)+1);2)因为对数值很小log(256)=5.45,所以计算 时用46*log(f(i,j)+1)。(46=255/log(256))n 算法特点: Wallis算法考虑了人眼视觉特性,因此,与Laplacian等其他算法相比,可以对暗区的细节进行比较好的锐化。 一阶与二阶微分的边缘提取效果比较n 以Sobel及Laplacian算法为例进行比较。n Sobel算子获得的边界是比较粗略的边界,反映的边界信息较少,但是所反映的边界比较清晰;n Laplacian算子获得的边界是比较细致的边界。反映的边界信息包括了许多的细节信息,但是所反映的边界不是太清晰。void CDynSplitView:OnSobel()/ TODO: 在此添加命令处理程序代码clearmem();/memcpy(image_out,image_in,m_imagex*m_imagey);int i,j,fx,fy;int ysize=m_imagey,xsize=m_imagex;int v33=-1,0,1,-1,0,1,-1,0,1,h33=-1,-1,-1,0,0,0,1,1,1;for(j=1;jysize-1;j+)for (i=1;ixsize-1;i+)fx=(int)(*(image_in+(j-1)*xsize+i-1)*h00+*(image_in+(j-1)*xsize+i)*h01+*(image_in+(j-1)*xsize+i+1)*h02+*(image_in+j*xsize+i-1)*h10+*(image_in+j*xsize+i)*h11+*(image_in+j*xsize+i+1)*h12+*(image_in+(j+1)*xsize+i-1)*h20+*(image_in+(j+1)*xsize+i)*h21+*(image_in+(j+1)*xsize+i+1)*h22);fy=(int)(*(image_in+(j-1)*xsize+i-1)*v00+*(image_in+(j-1)*xsize+i)*v01+*(image_in+(j-1)*xsize+i+1)*v02+*(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物理装备资料管理制度
- 物资入库检验管理制度
- 物资行业保密管理制度
- 疫情期间员工外出管理制度
- 医疗卫生行业员工出生日期及工作经历证明(8篇)
- 克服困难的议论文作文9篇范文
- 现代服务管理实践与理论知识卷
- 活动安排统计表(适合活动数据记录)
- 汽车销售与服务行业市场调研方法
- 农民合作社与物流企业合作协议
- YS/T 279-201125号钠黑药
- GB/T 6182-20162型非金属嵌件六角锁紧螺母
- 《中国近代史纲要》社会实践作业
- 物理必修一第一章章末检测卷(一)
- 三年级上册第一单元习作课件
- 中医药膳学:中医药膳制作的基本技能课件
- QC的手袋之验货程序
- 如何审议预算及其报告新演示文稿
- 融资并购项目财务顾问协议卖方大股东为个人模版
- 文化差异与跨文化交际课件(完整版)
- ISO2768-1中文版公差表
评论
0/150
提交评论