文档详情

第五章 图像锐化处理.doc

发布:2015-09-17约字共24页下载文档
文本预览下载声明
图像锐化处理 图像锐化的概念 补偿图像轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰。 图像锐化的目的是加强图像中景物的细节边缘和轮廓。 锐化的作用是使灰度反差增强。 因为边缘和轮廓都位于灰度突变的地方。所以锐化算法的实现是基于微分作用。 图像锐化方法 图像的景物细节特征; 一阶微分锐化方法; 二阶锐化微分方法; 一阶、二阶微分锐化方法效果比较。 图像细节的灰度变化特性 扫描线 1、一阶微分锐化 —— 基本原理 一阶微分的计算公式非常简单: 离散化之后的差分方程: 考虑到图像边界的拓扑结构性,根据这个原理派生出许多相关的方法。 单方向一阶微分锐化 无方向一阶微分锐化 ? 交叉微分锐化 ? Sobel锐化 ? Priwitt锐化 (1)单方向的一阶锐化 —— 基本原理 单方向的一阶锐化是指对某个特定方向上的边缘信息进行增强。 因为图像为水平、垂直两个方向组成,所以,所谓的单方向锐化实际上是包括水平方向与垂直方向上的锐化。 水平方向的一阶锐化---基本方法 水平方向的锐化非常简单,通过一个可以检测出水平方向上的像素值的变化模板来实现。 问题:计算结果中出现了小于零的像素值? (2)垂直方向的一阶锐化 —— 基本方法 垂直锐化算法的设计思想与水平锐化算法相同,通过一个可以检测出垂直方向上的像素值的变化模板来实现。 单方向锐化的后处理 这种锐化算法需要进行后处理,以解决像素值为负的问题。 后处理的方法不同,则所得到的效果也就不同。 方法1:整体加一个正整数,以保证所有的像 素值均为正。(比如+128,还有0的则视为0,若有255的则视为255处理) 这样做的结果是:可以获得类似浮雕的效果。 下例是+20后的效果 void CDynSplitView::OnHsharpen() { // TODO: 在此添加命令处理程序代码 int i,j,buf; int w[3][3]={{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)*w[0][0]+ *(image_in+(j-1)*xsize+i)*w[0][1]+ *(image_in+(j-1)*xsize+i+1)*w[0][2]+ *(image_in+j*xsize+i-1)*w[1][0]+ *(image_in+j*xsize+i)*w[1][1]+ *(image_in+j*xsize+i+1)*w[1][2]+ *(image_in+(j+1)*xsize+i-1)*w[2][0]+ *(image_in+(j+1)*xsize+i)*w[2][1]+ *(image_in+(j+1)*xsize+i+1)*w[2][2] ); buf+=128; if (buf0) buf=0; if (buf255) buf=255; *(image_out+j*xsize+i)=buf; } Invalidate(); } 添加菜单,设置其ID属性: ID_HSHARPEN, ID_VSHARPEN 为菜单添加事件处理程序。 方法2:将所有的像素值取绝对值。 这样做的结果是,可以获得对边缘的有方向提取。 垂直方向锐化处理 浮雕: (3)无方向一阶锐化 —— 问题的提出 前面的锐化处理结果对于人工设计制造的具有矩形特征物体(例如:楼房、汉字等)的边缘的提取很有效。但是,对于不规则形状(如:人物)的边缘提取,则存在信息的缺损。 为了解决上面的问题,就希望提出对任何方向上的边缘信息均敏感的锐化算法。 因为这类锐化方法要求对边缘的方向没有选择,所有称为无方向的锐化算法。 一阶微分 双方向一次微分运算,直接以梯度值代替 理论基础:对灰度图像f在纵方向和横方向两个方向进行微分。该算法是同时增强水平和垂直方向的边缘。利用双方向一次微分运算,算出梯度后让梯度值等于该点的灰度值。 该算法的数学表达式为: G(i,j)=sqrt{[f(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)]} 或G[f(i,j)]=
显示全部
相似文档