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

📄 chap02.htm

📁 数字图像处理入门. 一位图像处理高手写的书. 从图像处理的最基础开始,然后慢慢以一些例子做说明,进入图像处理的更高阶段.学习图像处理不可多得的比较朴实的书
💻 HTM
📖 第 1 页 / 共 5 页
字号:
&quot;Times New Roman&quot;'>色图来表示了。为什么会这样呢?难道是一种巧合?其实并不是。</span></p>
  <p style='line-height:18.0pt'><span
style='font-family:宋体;"Times New Roman"'>在表示颜色的方法中,除了</span><span lang=EN-US>RGB</span><span
style='font-family:宋体;"Times New Roman"'>外,还有一种叫</span><span lang=EN-US>YUV</span><span
style='font-family:宋体;"Times New Roman"'>的表示方法,应用也很多。电视信号中用的就是一种类似于</span><span lang=EN-US>YUV</span><span
style='font-family:宋体;"Times New Roman"'>的颜色表示方法。</span></p>
  <p style='line-height:18.0pt'><span
style='font-family:宋体;"Times New Roman"'>在这种表示方法中,</span><span lang=EN-US>Y</span><span
style='font-family:宋体;"Times New Roman"'>分量的物理含义就是亮度,</span><span lang=EN-US>U</span><span
style='font-family:宋体;"Times New Roman"'>和</span><span lang=EN-US>V</span><span style='font-family:
宋体;&quot;Times New Roman&quot;'>分量代表了色差信号</span><span
lang=EN-US>(</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>你不必了解什么是色差,只要知道有这么一个概念就可以了</span><span
lang=EN-US>)</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>。使用这种表示方法有很多好处,最主要的有两点:</span></p>
  <p style='line-height:18.0pt;
'> <span
lang=EN-US>(1)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></span>   
    <span
style='font-family:宋体;"Times New Roman"'>因为</span><span lang=EN-US>Y</span><span style='font-family:
宋体;&quot;Times New Roman&quot;'>代表了亮度,所以</span><span
lang=EN-US>Y</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>分量包含了灰度图的所有信息,只用</span><span
lang=EN-US>Y</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>分量就能完全能够表示出一幅灰度图来。当同时考虑</span><span
lang=EN-US>U</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>,</span><span lang=EN-US>V</span><span
style='font-family:宋体;"Times New Roman"'>分量时,就能够表示出彩色信息来。这样,用同一种表示方法可以很方便的在灰度和彩色图之间切换,而</span><span
lang=EN-US>RGB</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>表示方法就做不到这一点了。</span></p>
  <p style='line-height:18.0pt;
'> <span
lang=EN-US>(2)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></span>   
    <span
style='font-family:宋体;"Times New Roman"'>人眼对于亮度信号非常敏感,而对色差信号的敏感程度相对较弱。也就是说,图象的主要信息包含在</span><span
lang=EN-US>Y</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>分量中。这就提示我们:如果在对</span><span
lang=EN-US>YUV</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>信号进行量化时,可以“偏心”一点,让</span><span
lang=EN-US>Y</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>的量化级别多一些</span><span lang=EN-US>(</span><span
style='font-family:宋体;"Times New Roman"'>谁让它重要呢?</span><span lang=EN-US>)</span><span
style='font-family:宋体;"Times New Roman"'>而让</span><span lang=EN-US>UV</span><span style='font-family:
宋体;&quot;Times New Roman&quot;'>的量化级别少一些,就可以实现图象信息的压缩。这一点将在第</span><span
lang=EN-US>9</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>章介绍图象压缩时仔细研究,这里就不深入讨论了。而</span><span
lang=EN-US>RGB</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>的表示方法就做不到这一点,因为</span><span
lang=EN-US>RGB</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>三个分量同等重要,缺了谁也不行。</span><span
lang=EN-US>YUV</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>和</span><span lang=EN-US>RGB</span><span
style='font-family:宋体;"Times New Roman"'>之间有着如下的对应关系</span></p>
  <p align=center style='text-align:center;line-height:18.0pt'><span
lang=EN-US><sub> <img width=352 height=77
src="chap02.files/image014.gif"  v:shapes="_x0000_i1071"> </sub> </span></p>
  <p align=right style='text-align:right;line-height:18.0pt'><span
lang=EN-US>(2.3)</span></p>
  <p align=center style='text-align:center;line-height:18.0pt'><span
lang=EN-US><sub> <img width=324 height=75
src="chap02.files/image016.gif"  v:shapes="_x0000_i1072"> </sub> </span></p>
  <p align=right style='text-align:right;line-height:18.0pt'><span
lang=EN-US>(2.4)</span></p>
  <p style='line-height:18.0pt'><span
style='font-family:宋体;"Times New Roman"'>当</span><span lang=EN-US>RGB</span><span style='font-family:
宋体;&quot;Times New Roman&quot;'>三个分量的大小一样时,假设都是</span><span
lang=EN-US>a</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>,代入公式</span><span lang=EN-US>(2.3)</span><span
style='font-family:宋体;"Times New Roman"'>,得到</span><span lang=EN-US>Y=a</span><span style='font-family:
宋体;&quot;Times New Roman&quot;'>,</span><span
lang=EN-US>U=0</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>,</span><span lang=EN-US>V=0 </span><span  
style='font-family:宋体;"Times New Roman"'>。你现在该明白我前面所说不是巧合的原因了吧。</span></p>
  <p style='line-height:18.0pt'><span
style='font-family:宋体;"Times New Roman"'>使用灰度图有一个好处,那就是方便。首先</span><span lang=EN-US>RGB</span><span
style='font-family:宋体;"Times New Roman"'>的值都一样;其次,图象数据即调色板索引值,也就是实际的</span><span lang=EN-US>RGB</span><span
style='font-family:宋体;"Times New Roman"'>值,也就是亮度值;另外,因为是</span><span lang=EN-US>256</span><span
style='font-family:宋体;"Times New Roman"'>色调色板,所以图象数据中一个字节代表一个象素,很整齐。如果是</span><span lang=EN-US>2</span><span
style='font-family:宋体;"Times New Roman"'>色图或</span><span lang=EN-US>16</span><span style='font-family:
宋体;&quot;Times New Roman&quot;'>色图,还要拼凑字节,很麻烦。如果是彩色的</span><span
lang=EN-US>256</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>色图,由于图象处理后有可能会产生不属于这</span><span
lang=EN-US>256</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>种颜色的新颜色,就更麻烦了;这一点,今后你就会有深刻体会的。所以,做图象处理时,一般采用灰度图。为了将重点放在算法本身上,</span><b><span
style='font-family:黑体'>今后给出的程序如不做特殊说明,都是针对<span lang=EN-US>256级灰度图的。</span></span></b><span
style='font-family:宋体;"Times New Roman"'>其它颜色的情况,你可以自己想一想,把算法补全。</span></p>
  <p style='line-height:18.0pt'><span
style='font-family:宋体;"Times New Roman"'>如果想得到一幅灰度图,可以使用</span><span lang=EN-US>Sea</span><span
style='font-family:宋体;"Times New Roman"'>或者</span><span lang=EN-US>PhotoShop</span><span
style='font-family:宋体;"Times New Roman"'>等软件提供的颜色转换功能将彩色图转换成灰度图。</span></p>
  <p style='line-height:18.0pt'><span
style='font-family:宋体;"Times New Roman"'>好了,言归正传,下面给出</span><span lang=EN-US>Translation</span><span
style='font-family:宋体;"Times New Roman"'>的源代码。算法的思想是先将所有区域填成白色,然后找平移后显示区域的左上角点</span><span
lang=EN-US>(x<sub>0</sub>,y<sub>0</sub>) </span><span style='font-family:宋体;  
&quot;Times New Roman&quot;'>和右下角点</span><span
lang=EN-US>(x<sub>1</sub>,y<sub>1</sub>) </span><span style='font-family:宋体;  
&quot;Times New Roman&quot;'>,分几种情况进行处理。</span></p>
  <p style='line-height:18.0pt'><span
style='font-family:宋体;"Times New Roman"'>先看</span><span lang=EN-US>x</span><span style='font-family:
宋体;&quot;Times New Roman&quot;'>方向</span><span
lang=EN-US>(width</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>指图象的宽度</span><span lang=EN-US>)</span></p>
  <p style='line-height:
18.0pt;'> <span
lang=EN-US>(1)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></span>   
    <span
lang=EN-US>t<sub>x</sub></span><span style='font-family:宋体;"Times New Roman";"Times New Roman"'>≤</span><span
lang=EN-US>-width</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>:很显然,图象完全移出了屏幕,不用做任何处理;</span></p>
  <p style='line-height:
18.0pt;'> <span
lang=EN-US>(2)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></span>   
    <span
lang=EN-US>-width&lt;tx</span><span style='font-family:宋体;"Times New Roman";"Times New Roman"'>≤</span><span
lang=EN-US>0</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>:如图</span><span lang=EN-US>2.5</span><span
style='font-family:宋体;"Times New Roman"'>所示。容易看出,图象区域的</span><span lang=EN-US>x</span><span
style='font-family:宋体;"Times New Roman"'>范围从</span><span lang=EN-US>0</span><span style='font-family:
宋体;&quot;Times New Roman&quot;'>到</span><span
lang=EN-US>width-|tx|,</span><span style='font-family:宋体;"Times New Roman";"Times New Roman"'>对应原图的范围从</span><span
lang=EN-US>|tx|</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>到</span><span lang=EN-US>width</span><span
style='font-family:宋体;"Times New Roman"'>;</span></p>
  <p class=a style='line-height:18.0pt'><span lang=EN-US> <img width=397 height=364
src="chap02.files/image018.jpg"  v:shapes="_x0000_i1026"> </span></p>
  <p align=center style='text-align:center;line-height:18.0pt'><b><span
style='font-family:宋体;"Times New Roman"'>图</span>2.5&nbsp;&nbsp;&nbsp;&nbsp; tx</b><b><span  
style='font-family:宋体;"Times New Roman"'>≤</span><span lang=EN-US>0</span></b><b><span
style='font-family:宋体;"Times New Roman"'>,</span><span lang=EN-US>ty</span></b><b><span
style='font-family:宋体;"Times New Roman"'>≤</span><span lang=EN-US>0</span></b><b><span
style='font-family:宋体;"Times New Roman"'>的情况</span><span lang=EN-US></span></b></p>
  <p style='line-height:18.0pt;
'> <span
lang=EN-US>(3)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></span>   
    <span
lang=EN-US>0&lt; t<sub>x</sub> &lt;width</span><span style='font-family:宋体;  
&quot;Times New Roman&quot;'>:如图</span><span
lang=EN-US>2.6</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>所示。容易看出,图象区域的</span><span lang=EN-US>x</span><span
style='font-family:宋体;"Times New Roman"'>范围从</span><span lang=EN-US>t<sub>x</sub> 
    </span><span  
style='font-family:宋体;"Times New Roman"'>到</span><span lang=EN-US>width</span><span style='font-family:
宋体;&quot;Times New Roman&quot;'>,对应原图的范围从</span><span
lang=EN-US>0</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>到</span><span lang=EN-US>width - t<sub>x </sub></span><span style='font-family:宋体;  
&quot;Times New Roman&quot;'>;</span></p>
  <p class=a style='line-height:18.0pt'><span lang=EN-US> <img width=417 height=342
src="chap02.files/image020.jpg"  v:shapes="_x0000_i1039"> </span></p>
  <p align=center style='text-align:center;line-height:18.0pt'><b><span
style='font-family:宋体;"Times New Roman"'>图</span>2.6&nbsp;&nbsp;&nbsp;&nbsp; 0&lt;   
    tx&lt;width</b><b><span style='font-family:宋体;"Times New Roman";"Times New Roman"'>,</span><span
lang=EN-US>0&lt;ty&lt;height</span></b><b><span style='font-family:宋体;
&quot;Times New Roman&quot;'>的情况</span><span
lang=EN-US></span></b></p>
  <p style='line-height:18.0pt;
'> <span
lang=EN-US>(4)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></span>   
    <span
lang=EN-US>t<sub>x</sub> </span><span style='font-family:宋体;"Times New Roman";"Times New Roman"'>≥</span><span  
lang=EN-US>width</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>:很显然,图象完全移出了屏幕,不用做任何处理。</span></p>
  <p style='line-height:18.0pt'><span
lang=EN-US>y</span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>方向是对应的</span><span lang=EN-US>(height</span><span
style='font-family:宋体;"Times New Roman"'>表示图象的高度</span><span lang=EN-US>)</span><span
style='font-family:宋体;"Times New Roman"'>:</span></p>
  <p style='line-height:18.0pt;
'> <span
lang=EN-US>(1)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></span>   
    <span
lang=EN-US>t<sub>y</sub></span><span style='font-family:宋体;"Times New Roman";"Times New Roman"'>≤</span><span
lang=EN-US>-height</span><span style='font-family:宋体;"Times New Roman";"Times New Roman"'>,图象完全移出了屏幕,不用做任何处理;</span></p>
  <p style='line-height:18.0pt;
'> <span
lang=EN-US>(2)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></span>   
    <span
lang=EN-US>-height&lt;t<sub>y</sub></span><span style='font-family:宋体;
&quot;Times New Roman&quot;'>≤</span><span
lang=EN-US>0</span><span style='font-family:宋体;

⌨️ 快捷键说明

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