⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 第3章 图象的平滑(去噪声)、锐化.htm

📁 介绍了图像的一些基本处理,如平滑,锐化
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0045)http://www-scf.usc.edu/~flv/ipbook/chap03.htm -->
<HTML><HEAD><TITLE>第3章 图象的平滑(去噪声)、锐化</TITLE>
<META http-equiv=Content-Type content="text/html; charset=GB2312"><LINK 
href="./chap03.files/editdata.mso" rel=Edit-Time-Data><LINK 
href="./chap03.files/oledata.mso" rel=OLE-Object-Data>
<STYLE>.Normal {
	TEXT-JUSTIFY: inter-ideograph; FONT-SIZE: 10.5pt; TEXT-INDENT: 0pt; LINE-HEIGHT: normal; FONT-FAMILY: "Times New Roman"; TEXT-ALIGN: justify
}
.a {
	FONT-SIZE: 12pt; TEXT-INDENT: 0pt; LINE-HEIGHT: 20pt; FONT-FAMILY: "Times New Roman"; TEXT-ALIGN: center
}
</STYLE>

<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
<BODY class=Normal lang=ZH-CN vLink=purple link=blue bgColor=#ffffff>
<DIV style="LAYOUT-GRID:  15.6pt none">
<H1><A name=_Toc486331873></A><A name=_Toc486332873></A><A 
name=_Toc486338982></A><A name=_Toc454810847></A><A 
name=_Toc454856621><SPAN><SPAN>第<SPAN 
lang=EN-US>3</SPAN></SPAN></SPAN></A><SPAN><SPAN><SPAN 
style="FONT-FAMILY: 黑体">章</SPAN> </SPAN></SPAN><SPAN><SPAN><SPAN 
style="FONT-FAMILY: 黑体">图象的平滑</SPAN><SPAN 
lang=EN-US>(</SPAN></SPAN></SPAN><SPAN><SPAN><SPAN 
style="FONT-FAMILY: 黑体">去噪声</SPAN><SPAN 
lang=EN-US>)</SPAN></SPAN></SPAN><SPAN><SPAN><SPAN 
style="FONT-FAMILY: 黑体">、锐化</SPAN></SPAN></SPAN></H1>
<H2><SPAN lang=EN-US>3.1</SPAN> <SPAN lang=EN-US></SPAN><A 
name=_Toc486331874></A><A name=_Toc486332874></A><A name=_Toc486338983></A><A 
name=_Toc454810848></A><A 
name=_Toc454856622><SPAN><SPAN>平滑</SPAN></SPAN></A></H2>
<P style="LINE-HEIGHT: 18pt"><SPAN 
style="FONT-FAMILY: 宋体">先举个例子说明一下什么是平滑</SPAN><SPAN 
lang=EN-US>(smoothing)</SPAN><SPAN 
style="FONT-FAMILY: 宋体">,如下面两幅图所示:可以看到,图</SPAN><SPAN lang=EN-US>3.2</SPAN><SPAN 
style="FONT-FAMILY: 宋体">比图</SPAN><SPAN lang=EN-US>3.1</SPAN><SPAN 
style="FONT-FAMILY: 宋体">柔和一些</SPAN><SPAN lang=EN-US>(</SPAN><SPAN 
style="FONT-FAMILY: 宋体">也模糊一些</SPAN><SPAN lang=EN-US>)</SPAN><SPAN 
style="FONT-FAMILY: 宋体">。是不是觉得很神奇?其实实现起来很简单。我们将原图中的每一点的灰度和它周围八个点的灰度相加,然后除以</SPAN><SPAN 
lang=EN-US>9</SPAN><SPAN 
style="FONT-FAMILY: 宋体">,作为新图中对应点的灰度,就能实现上面的效果。</SPAN></P>
<TABLE cellSpacing=0 cellPadding=0 border=0>
  <TBODY>
  <TR>
    <TD class=Normal vAlign=top width=276>
      <P class=a style="LINE-HEIGHT: 18pt"><SPAN lang=EN-US><IMG height=189 
      src="第3章 图象的平滑(去噪声)、锐化.files/image001.gif" width=170 
      v:shapes="_x0000_i1043"> </SPAN></P>
      <P class=a style="LINE-HEIGHT: 18pt"><B><SPAN 
      style="FONT-FAMILY: 宋体">图</SPAN>3.1&nbsp;&nbsp;&nbsp; </B><B><SPAN 
      style="FONT-FAMILY: 宋体">原图</SPAN><SPAN lang=EN-US></SPAN></B></P></TD>
    <TD class=Normal vAlign=top width=276>
      <P style="LINE-HEIGHT: 18pt; TEXT-ALIGN: center" align=center><SPAN 
      lang=EN-US><IMG height=188 src="第3章 图象的平滑(去噪声)、锐化.files/image003.gif" 
      width=168 v:shapes="_x0000_i1042"> </SPAN></P>
      <P style="LINE-HEIGHT: 18pt; TEXT-ALIGN: center" align=center><B><SPAN 
      style="FONT-FAMILY: 宋体">图</SPAN>3.2&nbsp;&nbsp;&nbsp;&nbsp; </B><B><SPAN 
      style="FONT-FAMILY: 宋体">经过平滑处理后的图</SPAN><SPAN 
  lang=EN-US></SPAN></B></P></TD></TR></TBODY></TABLE>
<P style="LINE-HEIGHT: 18pt"><SPAN 
style="FONT-FAMILY: 宋体">这么做并非瞎蒙,而是有其道理的。大概想一想,也很容易明白。举个例子,就象和面一样,先在中间加点水,然后不断把周围的面和进来,搅拌几次,面就均匀了。</SPAN></P>
<P style="LINE-HEIGHT: 18pt"><SPAN 
style="FONT-FAMILY: 宋体">用信号处理的理论来解释,这种做法实现的是一种简单的低通滤波器</SPAN><SPAN 
lang=EN-US>(low pass filter)</SPAN><SPAN 
style="FONT-FAMILY: 宋体">。哇,好深奥呀!不要紧,这些理论的内容并不多,而且知道一些理论也是很有好处的。在灰度连续变化的图象中,如果出现了与相邻象素的灰度相差很大的点,比如说一片暗区中突然出现了一个亮点,人眼能很容易觉察到。就象看老电影时,由于胶片太旧,屏幕上经常会出现一些亮斑。这种情况被认为是一种噪声。灰度突变在频域中代表了一种高频分量,低通滤波器的作用就是滤掉高频分量,从而达到减少图象噪声的目的。</SPAN></P>
<P style="LINE-HEIGHT: 18pt"><SPAN 
style="FONT-FAMILY: 宋体">为了方便地叙述上面所说的“将原图中的每一点的灰度和它周围八个点的灰度相加,然后除以</SPAN><SPAN 
lang=EN-US>9</SPAN><SPAN 
style="FONT-FAMILY: 宋体">,作为新图中对应点的灰度”这一操作,我们采用如下的表示方法:</SPAN></P>
<P style="LINE-HEIGHT: 18pt; TEXT-ALIGN: center" align=center><B><SPAN 
lang=EN-US><SUB><IMG height=75 src="第3章 图象的平滑(去噪声)、锐化.files/image005.gif" 
width=92 v:shapes="_x0000_i1044"> </SUB></SPAN></B></P>
<P style="LINE-HEIGHT: 18pt; TEXT-ALIGN: right" align=right><SPAN 
lang=EN-US>(3.1)<B></B></SPAN></P>
<P style="LINE-HEIGHT: 18pt"><SPAN 
style="FONT-FAMILY: 宋体">这种表示方法有点象矩阵,我们称其为模板</SPAN><SPAN 
lang=EN-US>(template)</SPAN><SPAN 
style="FONT-FAMILY: 宋体">。中间的黑点表示中心元素,即,用哪个元素做为处理后的元素。例如</SPAN><SPAN 
lang=EN-US>[2. 1]</SPAN><SPAN style="FONT-FAMILY: 宋体">表示将自身的</SPAN><SPAN 
lang=EN-US>2</SPAN><SPAN style="FONT-FAMILY: 宋体">倍加上右边的元素作为新值,而</SPAN><SPAN 
lang=EN-US>[2 1.]</SPAN><SPAN style="FONT-FAMILY: 宋体">表示将自身加上左边元素的</SPAN><SPAN 
lang=EN-US>2</SPAN><SPAN style="FONT-FAMILY: 宋体">倍作为新值。</SPAN></P>
<P style="LINE-HEIGHT: 18pt"><SPAN 
style="FONT-FAMILY: 宋体">通常,模板不允许移出边界,所以结果图象会比原图小,例如模板是</SPAN><SPAN 
lang=EN-US><SUB> <IMG height=48 src="第3章 图象的平滑(去噪声)、锐化.files/image007.gif" 
width=51 v:shapes="_x0000_i1045"> </SUB></SPAN><SPAN 
style="FONT-FAMILY: 宋体">,原图是</SPAN><SPAN lang=EN-US><SUB> <IMG height=96 
src="第3章 图象的平滑(去噪声)、锐化.files/image009.gif" width=119 v:shapes="_x0000_i1046"> 
</SUB></SPAN><SPAN style="FONT-FAMILY: 宋体">,经过模板操作后的图象为</SPAN><SPAN 
lang=EN-US><SUB> <IMG height=96 src="第3章 图象的平滑(去噪声)、锐化.files/image011.gif" 
width=120 v:shapes="_x0000_i1047"> </SUB></SPAN><SPAN 
style="FONT-FAMILY: 宋体">;其中数字代表灰度,</SPAN><SPAN lang=EN-US>x</SPAN><SPAN 
style="FONT-FAMILY: 宋体">表示边界上无法进行模板操作的点,通常的做法是复制原图的灰度,不进行任何处理。</SPAN></P>
<P style="LINE-HEIGHT: 18pt"><SPAN 
style="FONT-FAMILY: 宋体">模板操作实现了一种邻域运算</SPAN><SPAN lang=EN-US>(Neighborhood 
Operation)</SPAN><SPAN 
style="FONT-FAMILY: 宋体">,即某个象素点的结果灰度不仅和该象素灰度有关,而且和其邻域点的值有关。在以后介绍的细化算法中,我们还将接触到邻域运算。模板运算的数学涵义是一种卷积</SPAN><SPAN 
lang=EN-US>(</SPAN><SPAN style="FONT-FAMILY: 宋体">或互相关</SPAN><SPAN 
lang=EN-US>)</SPAN><SPAN 
style="FONT-FAMILY: 宋体">运算,你不需要知道卷积的确切含义,只要有这么一个概念就可以了。</SPAN></P>
<P style="LINE-HEIGHT: 18pt"><SPAN 
style="FONT-FAMILY: 宋体">模板运算在图象处理中经常要用到,可以看出,它是一项非常耗时的运算。以</SPAN></P>
<P style="LINE-HEIGHT: 18pt; TEXT-ALIGN: center" align=center><SPAN 
lang=EN-US><SUB><IMG height=75 src="第3章 图象的平滑(去噪声)、锐化.files/image013.gif" 
width=107 v:shapes="_x0000_i1069"> </SUB></SPAN></P>
<P style="LINE-HEIGHT: 18pt; TEXT-ALIGN: right" align=right><SPAN 
lang=EN-US>(3.2)</SPAN></P>
<P style="LINE-HEIGHT: 18pt"><SPAN 
style="FONT-FAMILY: 宋体">为例,每个象素完成一次模板操作要用</SPAN><SPAN lang=EN-US>9</SPAN><SPAN 
style="FONT-FAMILY: 宋体">个乘法、</SPAN><SPAN lang=EN-US>8</SPAN><SPAN 
style="FONT-FAMILY: 宋体">个加法、</SPAN><SPAN lang=EN-US>1</SPAN><SPAN 
style="FONT-FAMILY: 宋体">个除法。对于一幅</SPAN><SPAN lang=EN-US>n</SPAN><SPAN 
style="FONT-FAMILY: 宋体">×</SPAN><SPAN lang=EN-US>n(</SPAN><SPAN 
style="FONT-FAMILY: 宋体">宽度×高度</SPAN><SPAN lang=EN-US>)</SPAN><SPAN 
style="FONT-FAMILY: 宋体">的图象,就是</SPAN><SPAN lang=EN-US>9n<SUP>2</SUP></SPAN><SPAN 
style="FONT-FAMILY: 宋体">个乘法,</SPAN><SPAN lang=EN-US>8n<SUP>2</SUP></SPAN><SPAN 
style="FONT-FAMILY: 宋体">个加法和</SPAN><SPAN lang=EN-US>n<SUP>2</SUP></SPAN><SPAN 
style="FONT-FAMILY: 宋体">个除法,算法复杂度为</SPAN><SPAN 
lang=EN-US>O(n<SUP>2</SUP>)</SPAN><SPAN 
style="FONT-FAMILY: 宋体">,这对于大图象来说,是非常可怕的。所以,一般常用的模板并不大,如</SPAN><SPAN 
lang=EN-US>3</SPAN><SPAN style="FONT-FAMILY: 宋体">×</SPAN><SPAN 
lang=EN-US>3</SPAN><SPAN style="FONT-FAMILY: 宋体">,</SPAN><SPAN 
lang=EN-US>4</SPAN><SPAN style="FONT-FAMILY: 宋体">×</SPAN><SPAN 
lang=EN-US>4</SPAN><SPAN 
style="FONT-FAMILY: 宋体">。有很多专用的图象处理系统,用硬件来完成模板运算,大大提高了速度。另外,可以设法将二维模板运算转换成一维模板运算,对速度的提高也是非常可观的。例如,</SPAN><SPAN 
lang=EN-US>(3.2)</SPAN><SPAN 
style="FONT-FAMILY: 宋体">式可以分解成一个水平模板和一个垂直模板,即,</SPAN></P>
<P style="LINE-HEIGHT: 18pt; TEXT-ALIGN: center" align=center><SPAN 
lang=EN-US><SUB><IMG height=75 src="第3章 图象的平滑(去噪声)、锐化.files/image014.gif" 
width=107 v:shapes="_x0000_i1070"> </SUB>=<SUB> <IMG height=41 
src="第3章 图象的平滑(去噪声)、锐化.files/image016.gif" width=88 v:shapes="_x0000_i1071"> 
</SUB></SPAN><SPAN style="FONT-FAMILY: 宋体">×</SPAN> <SPAN lang=EN-US><SUB><IMG 
height=75 src="第3章 图象的平滑(去噪声)、锐化.files/image018.gif" width=55 
v:shapes="_x0000_i1072"> </SUB>=<SUB> <IMG height=75 
src="第3章 图象的平滑(去噪声)、锐化.files/image020.gif" width=133 v:shapes="_x0000_i1073"> 
</SUB></SPAN></P>
<P style="LINE-HEIGHT: 18pt; TEXT-ALIGN: right" align=right><SPAN 
lang=EN-US>(3.3)</SPAN></P>
<P style="LINE-HEIGHT: 18pt"><SPAN style="FONT-FAMILY: 宋体">我们来验证一下。</SPAN></P>
<P style="LINE-HEIGHT: 18pt"><SPAN style="FONT-FAMILY: 宋体">设图象为</SPAN><SPAN 
lang=EN-US><SUB> <IMG height=96 src="第3章 图象的平滑(去噪声)、锐化.files/image022.gif" 
width=96 v:shapes="_x0000_i1074"> </SUB></SPAN><SPAN 
style="FONT-FAMILY: 宋体">,经过</SPAN><SPAN lang=EN-US>(3.2)</SPAN><SPAN 
style="FONT-FAMILY: 宋体">式处理后变为</SPAN><SPAN lang=EN-US><SUB> <IMG height=96 
src="第3章 图象的平滑(去噪声)、锐化.files/image024.gif" width=136 v:shapes="_x0000_i1075"> 
</SUB></SPAN><SPAN style="FONT-FAMILY: 宋体">,经过</SPAN><SPAN 
lang=EN-US>(3.3)</SPAN><SPAN style="FONT-FAMILY: 宋体">式处理后变为</SPAN><SPAN 
lang=EN-US><SUB> <IMG height=96 src="第3章 图象的平滑(去噪声)、锐化.files/image026.gif" 
width=136 v:shapes="_x0000_i1076"> </SUB></SPAN><SPAN 
style="FONT-FAMILY: 宋体">,两者完全一样。如果计算时不考虑周围一圈的象素,前者做了</SPAN><SPAN 
lang=EN-US>4</SPAN><SPAN style="FONT-FAMILY: 宋体">×</SPAN><SPAN 
lang=EN-US>(9</SPAN><SPAN style="FONT-FAMILY: 宋体">个乘法,</SPAN><SPAN 
lang=EN-US>8</SPAN><SPAN style="FONT-FAMILY: 宋体">个加法,</SPAN><SPAN 
lang=EN-US>1</SPAN><SPAN style="FONT-FAMILY: 宋体">个除法</SPAN><SPAN 
lang=EN-US>)</SPAN><SPAN style="FONT-FAMILY: 宋体">,共</SPAN><SPAN 
lang=EN-US>36</SPAN><SPAN style="FONT-FAMILY: 宋体">个乘法,</SPAN><SPAN 
lang=EN-US>32</SPAN><SPAN style="FONT-FAMILY: 宋体">个加法,</SPAN><SPAN 
lang=EN-US>4</SPAN><SPAN style="FONT-FAMILY: 宋体">个除法;后者做了</SPAN><SPAN 
lang=EN-US>4</SPAN><SPAN style="FONT-FAMILY: 宋体">×</SPAN><SPAN 
lang=EN-US>(3</SPAN><SPAN style="FONT-FAMILY: 宋体">个乘法,</SPAN><SPAN 
lang=EN-US>2</SPAN><SPAN style="FONT-FAMILY: 宋体">个加法</SPAN><SPAN 
lang=EN-US>)+4</SPAN><SPAN style="FONT-FAMILY: 宋体">×</SPAN><SPAN 
lang=EN-US>(3</SPAN><SPAN style="FONT-FAMILY: 宋体">个乘法,</SPAN><SPAN 
lang=EN-US>2</SPAN><SPAN style="FONT-FAMILY: 宋体">个加法</SPAN><SPAN 
lang=EN-US>)+4</SPAN><SPAN style="FONT-FAMILY: 宋体">个除法,共</SPAN><SPAN 
lang=EN-US>24</SPAN><SPAN style="FONT-FAMILY: 宋体">个乘法,</SPAN><SPAN 
lang=EN-US>16</SPAN><SPAN style="FONT-FAMILY: 宋体">个加法,</SPAN><SPAN 
lang=EN-US>4</SPAN><SPAN 
style="FONT-FAMILY: 宋体">个除法,运算简化了不少,如果是大图,效率的提高将是非常客观的。</SPAN></P>
<P style="LINE-HEIGHT: 18pt"><SPAN 
style="FONT-FAMILY: 宋体">平滑模板的思想是通过将一点和周围</SPAN><SPAN lang=EN-US>8</SPAN><SPAN 
style="FONT-FAMILY: 宋体">个点作平均,从而去除突然变化的点,滤掉噪声,其代价是图象有一定程度的模糊。上面提到的模板</SPAN><SPAN 
lang=EN-US>(3.1)</SPAN><SPAN style="FONT-FAMILY: 宋体">,就是一种平滑模板,称之为</SPAN><SPAN 
lang=EN-US>Box</SPAN><SPAN style="FONT-FAMILY: 宋体">模板。</SPAN><SPAN 
lang=EN-US>Box</SPAN><SPAN 
style="FONT-FAMILY: 宋体">模板虽然考虑了邻域点的作用,但并没有考虑各点位置的影响,对于所有的</SPAN><SPAN 
lang=EN-US>9</SPAN><SPAN 
style="FONT-FAMILY: 宋体">个点都一视同仁,所以平滑的效果并不理想。实际上我们可以想象,离某点越近的点对该点的影响应该越大,为此,我们引入了加权系数,将原来的模板改造成</SPAN><SPAN 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -