?? 第4章 圖象的半影調(diào)和抖動(dòng)技術(shù).htm
字號(hào):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0045)http://www-scf.usc.edu/~flv/ipbook/chap04.htm -->
<HTML><HEAD><TITLE>第4章 圖象的半影調(diào)和抖動(dòng)技術(shù)</TITLE>
<META http-equiv=Content-Type content="text/html; charset=GB2312"><LINK
href="./chap04.files/editdata.mso" rel=Edit-Time-Data><LINK
href="./chap04.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=_Toc486331877></A><A name=_Toc486332877></A><A
name=_Toc486338986></A><A name=_Toc454810851></A><A
name=_Toc454856625><SPAN><SPAN>第<SPAN
lang=EN-US>4</SPAN></SPAN></SPAN></A><SPAN><SPAN><SPAN
style="FONT-FAMILY: 黑體">章</SPAN> </SPAN></SPAN><SPAN><SPAN><SPAN
style="FONT-FAMILY: 黑體">圖象的半影調(diào)和抖動(dòng)技術(shù)</SPAN></SPAN></SPAN></H1>
<P style="LINE-HEIGHT: 18pt"><SPAN
style="FONT-FAMILY: 宋體">在介紹本章內(nèi)容之前,先提出一個(gè)問(wèn)題?普通的黑白針式打印機(jī)能打出灰度圖來(lái)嗎?如果說(shuō)能,從針式打印機(jī)的打印原理來(lái)分析,似乎是不可能的。因?yàn)獒槾蚴强孔册槗舸蛏珟г诩埳闲纬珊邳c(diǎn)的,不可能打出灰色的點(diǎn)來(lái);如果說(shuō)不能,可是我們的確見(jiàn)過(guò)用針式打印機(jī)打印出來(lái)的灰色圖象。到底是怎么回事呢?</SPAN></P>
<P style="LINE-HEIGHT: 18pt"><SPAN
style="FONT-FAMILY: 宋體">你再仔細(xì)看看那些打印出來(lái)的所謂的灰色圖象,最好用放大鏡看。你會(huì)發(fā)現(xiàn),原來(lái)這些灰色圖象都是由一些黑點(diǎn)組成的,黑點(diǎn)多一些,圖象就暗一些;黑點(diǎn)少一些,圖案就亮一些。下面這幾張圖就很能說(shuō)明這一點(diǎn)。</SPAN></P>
<P style="LINE-HEIGHT: 18pt; TEXT-ALIGN: center" align=center><SPAN
lang=EN-US><IMG height=56 src="第4章 圖象的半影調(diào)和抖動(dòng)技術(shù).files/image001.gif" width=259
v:shapes="_x0000_i1025"> </SPAN></P>
<P style="LINE-HEIGHT: 18pt; TEXT-ALIGN: center" align=center><B><SPAN
style="FONT-FAMILY: 宋體">圖</SPAN><SPAN lang=EN-US>4.1 </SPAN></B><B><SPAN
style="FONT-FAMILY: 宋體">用黑白兩種顏色打印出灰度效果</SPAN><SPAN lang=EN-US></SPAN></B></P>
<P style="LINE-HEIGHT: 18pt"><SPAN style="FONT-FAMILY: 宋體">圖</SPAN><SPAN
lang=EN-US>4.1</SPAN><SPAN
style="FONT-FAMILY: 宋體">中最左邊的是原圖,是一幅真正的灰度圖,另外三張圖都是黑白二值圖。容易看出,最左的那幅和原圖最接近。</SPAN></P>
<P style="LINE-HEIGHT: 18pt"><SPAN
style="FONT-FAMILY: 宋體">由二值圖象顯示出灰度效果的方法,就是我們今天要講的半影調(diào)</SPAN><SPAN
lang=EN-US>(halftone)</SPAN><SPAN
style="FONT-FAMILY: 宋體">技術(shù),它的一個(gè)主要用途就是在只有二值輸出的打印機(jī)上打印圖象。我們介紹兩種方法:圖案法和抖動(dòng)法。</SPAN></P>
<H2><SPAN lang=EN-US>4.1</SPAN> <SPAN lang=EN-US></SPAN><A
name=_Toc486331878></A><A name=_Toc486332878></A><A name=_Toc486338987></A><A
name=_Toc454810852></A><A
name=_Toc454856626><SPAN><SPAN>圖案法</SPAN></SPAN></A></H2>
<P style="LINE-HEIGHT: 18pt"><SPAN style="FONT-FAMILY: 宋體">圖案法</SPAN><SPAN
lang=EN-US>(patterning)</SPAN><SPAN
style="FONT-FAMILY: 宋體">是指灰度可以用一定比例的黑白點(diǎn)組成的區(qū)域表示,從而達(dá)到整體圖象的灰度感。黑白點(diǎn)的位置選擇稱為圖案化。</SPAN></P>
<P style="LINE-HEIGHT: 18pt"><SPAN
style="FONT-FAMILY: 宋體">在具體介紹圖案法之前,先介紹一下分辨率的概念。計(jì)算機(jī)顯示器,打印機(jī),掃描儀等設(shè)備的一個(gè)重要指標(biāo)就是分辨率,單位是</SPAN><SPAN
lang=EN-US>dpi(dot per inch)</SPAN><SPAN
style="FONT-FAMILY: 宋體">,即每英寸點(diǎn)數(shù),點(diǎn)數(shù)越多,分辨率就越高,圖象就越清晰。讓我們來(lái)計(jì)算一下,計(jì)算機(jī)顯示器的分辨率有多高。設(shè)顯示器為</SPAN><SPAN
lang=EN-US>15</SPAN><SPAN style="FONT-FAMILY: 宋體">英寸</SPAN><SPAN
lang=EN-US>(</SPAN><SPAN style="FONT-FAMILY: 宋體">指對(duì)角線長(zhǎng)度</SPAN><SPAN
lang=EN-US>)</SPAN><SPAN style="FONT-FAMILY: 宋體">,最多顯示</SPAN><SPAN
lang=EN-US>1280</SPAN><SPAN style="FONT-FAMILY: 宋體">×</SPAN><SPAN
lang=EN-US>1024</SPAN><SPAN style="FONT-FAMILY: 宋體">個(gè)點(diǎn)。因?yàn)閷捀弑葹?lt;/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>12</SPAN><SPAN style="FONT-FAMILY: 宋體">英寸,高有</SPAN><SPAN
lang=EN-US>9</SPAN><SPAN style="FONT-FAMILY: 宋體">英寸,則該顯示器的水平分辨率為</SPAN><SPAN
lang=EN-US>106dpi</SPAN><SPAN style="FONT-FAMILY: 宋體">,垂直分辨率為</SPAN><SPAN
lang=EN-US>113.8dpi</SPAN><SPAN
style="FONT-FAMILY: 宋體">。一般的激光打印機(jī)的分辨率有</SPAN><SPAN lang=EN-US>300dpi</SPAN><SPAN
style="FONT-FAMILY: 宋體">×</SPAN><SPAN lang=EN-US>300dpi</SPAN><SPAN
style="FONT-FAMILY: 宋體">,</SPAN><SPAN lang=EN-US>600dpi</SPAN><SPAN
style="FONT-FAMILY: 宋體">×</SPAN><SPAN lang=EN-US>600dpi</SPAN><SPAN
style="FONT-FAMILY: 宋體">,</SPAN><SPAN lang=EN-US>720dpi</SPAN><SPAN
style="FONT-FAMILY: 宋體">×</SPAN><SPAN lang=EN-US>720dpi</SPAN><SPAN
style="FONT-FAMILY: 宋體">。所以打出來(lái)的圖象要比計(jì)算機(jī)顯示出來(lái)的清晰的多。掃描儀的分辨率要高一些,數(shù)碼相機(jī)的分辨率更高。</SPAN></P>
<P style="LINE-HEIGHT: 18pt"><SPAN
style="FONT-FAMILY: 宋體">言歸正傳,前面講了,圖案化使用圖案來(lái)表示象素的灰度,那么我們來(lái)做一道計(jì)算題。假設(shè)有一幅</SPAN><SPAN
lang=EN-US>240</SPAN><SPAN style="FONT-FAMILY: 宋體">×</SPAN><SPAN
lang=EN-US>180</SPAN><SPAN style="FONT-FAMILY: 宋體">×</SPAN><SPAN
lang=EN-US>8bit</SPAN><SPAN style="FONT-FAMILY: 宋體">的灰度圖,當(dāng)用分辨率為</SPAN><SPAN
lang=EN-US>300dpi</SPAN><SPAN style="FONT-FAMILY: 宋體">×</SPAN><SPAN
lang=EN-US>300dpi</SPAN><SPAN style="FONT-FAMILY: 宋體">的激光打印機(jī)將其打印到</SPAN><SPAN
lang=EN-US>12.8</SPAN><SPAN style="FONT-FAMILY: 宋體">×</SPAN><SPAN
lang=EN-US>9.6</SPAN><SPAN style="FONT-FAMILY: 宋體">英寸的紙上時(shí),每個(gè)象素的圖案有多大?</SPAN></P>
<P style="LINE-HEIGHT: 18pt"><SPAN
style="FONT-FAMILY: 宋體">這道題很簡(jiǎn)單,這張紙最多可以打</SPAN><SPAN lang=EN-US>(300</SPAN><SPAN
style="FONT-FAMILY: 宋體">×</SPAN><SPAN lang=EN-US>12.8) </SPAN><SPAN
style="FONT-FAMILY: 宋體">×</SPAN><SPAN lang=EN-US>(300</SPAN><SPAN
style="FONT-FAMILY: 宋體">×</SPAN><SPAN lang=EN-US>9.6)=3840</SPAN><SPAN
style="FONT-FAMILY: 宋體">×</SPAN><SPAN lang=EN-US>2880</SPAN><SPAN
style="FONT-FAMILY: 宋體">個(gè)點(diǎn),所以每個(gè)象素可以用</SPAN><SPAN
lang=EN-US>(3840/240)</SPAN><SPAN style="FONT-FAMILY: 宋體">×</SPAN><SPAN
lang=EN-US>(2880/180)=16</SPAN><SPAN style="FONT-FAMILY: 宋體">×</SPAN><SPAN
lang=EN-US>16</SPAN><SPAN style="FONT-FAMILY: 宋體">個(gè)點(diǎn)大小的圖案來(lái)表示,即一個(gè)象素</SPAN><SPAN
lang=EN-US>256</SPAN><SPAN style="FONT-FAMILY: 宋體">個(gè)點(diǎn)。如果這</SPAN><SPAN
lang=EN-US>16</SPAN><SPAN style="FONT-FAMILY: 宋體">×</SPAN><SPAN
lang=EN-US>16</SPAN><SPAN
style="FONT-FAMILY: 宋體">的方塊中一個(gè)黑點(diǎn)也沒(méi)有,就可以表示灰度</SPAN><SPAN
lang=EN-US>256</SPAN><SPAN style="FONT-FAMILY: 宋體">;有一個(gè)黑點(diǎn),就表示灰度</SPAN><SPAN
lang=EN-US>255</SPAN><SPAN style="FONT-FAMILY: 宋體">;依次類推,當(dāng)都是黑點(diǎn)時(shí),表示灰度</SPAN><SPAN
lang=EN-US>0</SPAN><SPAN style="FONT-FAMILY: 宋體">。這樣,</SPAN><SPAN
lang=EN-US>16</SPAN><SPAN style="FONT-FAMILY: 宋體">×</SPAN><SPAN
lang=EN-US>16</SPAN><SPAN style="FONT-FAMILY: 宋體">的方塊可以表示</SPAN><SPAN
lang=EN-US>257</SPAN><SPAN style="FONT-FAMILY: 宋體">級(jí)灰度,比要求的</SPAN><SPAN
lang=EN-US>8bit</SPAN><SPAN style="FONT-FAMILY: 宋體">共</SPAN><SPAN
lang=EN-US>256</SPAN><SPAN
style="FONT-FAMILY: 宋體">級(jí)灰度還多了一個(gè)。所以上面的那幅圖的灰度級(jí)別完全能夠打印出來(lái)。</SPAN></P>
<P style="LINE-HEIGHT: 18pt"><SPAN
style="FONT-FAMILY: 宋體">這里有一個(gè)圖案構(gòu)成的問(wèn)題,即黑點(diǎn)打在哪里?比如說(shuō),只有一個(gè)黑點(diǎn)時(shí),我們可以打在正中央,也可以打</SPAN><SPAN
lang=EN-US>16</SPAN><SPAN style="FONT-FAMILY: 宋體">×</SPAN><SPAN
lang=EN-US>16</SPAN><SPAN
style="FONT-FAMILY: 宋體">的左上角。圖案可以是規(guī)則的,也可以是不規(guī)則的。一般情況下,有規(guī)則的圖案比隨即圖案能夠避免點(diǎn)的叢集,但有時(shí)會(huì)導(dǎo)致圖象中有明顯的線條。</SPAN></P>
<P style="LINE-HEIGHT: 18pt"><SPAN style="FONT-FAMILY: 宋體">如圖</SPAN><SPAN
lang=EN-US>4.1</SPAN><SPAN style="FONT-FAMILY: 宋體">中,</SPAN><SPAN
lang=EN-US>2</SPAN><SPAN style="FONT-FAMILY: 宋體">×</SPAN><SPAN
lang=EN-US>2</SPAN><SPAN style="FONT-FAMILY: 宋體">的圖案可以表示</SPAN><SPAN
lang=EN-US>5</SPAN><SPAN style="FONT-FAMILY: 宋體">級(jí)灰度,當(dāng)圖象中有一片灰度為的</SPAN><SPAN
lang=EN-US>1</SPAN><SPAN style="FONT-FAMILY: 宋體">的區(qū)域時(shí),如圖</SPAN><SPAN
lang=EN-US>4.2</SPAN><SPAN style="FONT-FAMILY: 宋體">所示,有明顯的水平和垂直線條。</SPAN></P>
<DIV align=center>
<TABLE cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD class=Normal vAlign=bottom width=276>
<P style="LINE-HEIGHT: 18pt; TEXT-ALIGN: center" align=center><B><SPAN
lang=EN-US><IMG height=89 src="第4章 圖象的半影調(diào)和抖動(dòng)技術(shù).files/image002.gif"
width=316 v:shapes="_x0000_i1027"> </SPAN></B></P>
<P style="LINE-HEIGHT: 18pt; TEXT-ALIGN: center" align=center><B><SPAN
style="FONT-FAMILY: 宋體">圖</SPAN>4.2 2</B><B><SPAN
style="FONT-FAMILY: 宋體">×</SPAN><SPAN lang=EN-US>2</SPAN></B><B><SPAN
style="FONT-FAMILY: 宋體">的圖案</SPAN><SPAN lang=EN-US></SPAN></B></P></TD>
<TD class=Normal vAlign=bottom width=276>
<P style="LINE-HEIGHT: 18pt; TEXT-ALIGN: center" align=center><B><SPAN
lang=EN-US><IMG height=98 src="第4章 圖象的半影調(diào)和抖動(dòng)技術(shù).files/image003.gif"
width=162 v:shapes="_x0000_i1028"> </SPAN></B></P>
<P style="LINE-HEIGHT: 18pt; TEXT-ALIGN: center" align=center><B><SPAN
style="FONT-FAMILY: 宋體">圖</SPAN>4.3 </B><B><SPAN
style="FONT-FAMILY: 宋體">規(guī)則圖案導(dǎo)致線條</SPAN><SPAN
lang=EN-US></SPAN></B></P></TD></TR></TBODY></TABLE></DIV>
<P style="LINE-HEIGHT: 18pt"><SPAN style="FONT-FAMILY: 宋體">如果想存儲(chǔ)</SPAN><SPAN
lang=EN-US>256</SPAN><SPAN style="FONT-FAMILY: 宋體">級(jí)灰度的圖案,就需要</SPAN><SPAN
lang=EN-US>256</SPAN><SPAN style="FONT-FAMILY: 宋體">×</SPAN><SPAN
lang=EN-US>16</SPAN><SPAN style="FONT-FAMILY: 宋體">×</SPAN><SPAN
lang=EN-US>16</SPAN><SPAN
style="FONT-FAMILY: 宋體">的二值點(diǎn)陣,占用的空間還是相當(dāng)可觀的。有一個(gè)更好的辦法是:只存儲(chǔ)一個(gè)整數(shù)矩陣,稱為標(biāo)準(zhǔn)圖案,其中的每個(gè)值從</SPAN><SPAN
lang=EN-US>0</SPAN><SPAN style="FONT-FAMILY: 宋體">到</SPAN><SPAN
lang=EN-US>255</SPAN><SPAN
style="FONT-FAMILY: 宋體">。圖象的實(shí)際灰度和陣列中的每個(gè)值比較,當(dāng)該值大于等于灰度時(shí),對(duì)應(yīng)點(diǎn)打一黑點(diǎn)。下面舉一個(gè)</SPAN><SPAN
lang=EN-US>25</SPAN><SPAN style="FONT-FAMILY: 宋體">級(jí)灰度的例子加以說(shuō)明。</SPAN></P>
<P class=a style="LINE-HEIGHT: 18pt"><SPAN lang=EN-US><IMG height=124
src="第4章 圖象的半影調(diào)和抖動(dòng)技術(shù).files/image005.jpg" width=285 v:shapes="_x0000_i1029">
</SPAN></P>
<P style="LINE-HEIGHT: 18pt; TEXT-ALIGN: center" align=center><B><SPAN
style="FONT-FAMILY: 宋體">圖</SPAN>4.4 </B><B><SPAN
style="FONT-FAMILY: 宋體">標(biāo)準(zhǔn)圖案舉例</SPAN><SPAN lang=EN-US></SPAN></B></P>
<P style="LINE-HEIGHT: 18pt"><SPAN style="FONT-FAMILY: 宋體">圖</SPAN><SPAN
lang=EN-US>4.4</SPAN><SPAN style="FONT-FAMILY: 宋體">中,左邊為標(biāo)準(zhǔn)圖案,右邊為灰度為</SPAN><SPAN
lang=EN-US>15</SPAN><SPAN style="FONT-FAMILY: 宋體">的圖案,共有</SPAN><SPAN
lang=EN-US>10</SPAN><SPAN style="FONT-FAMILY: 宋體">個(gè)黑點(diǎn),</SPAN><SPAN
lang=EN-US>15</SPAN><SPAN style="FONT-FAMILY: 宋體">個(gè)白點(diǎn)。其實(shí)道理很簡(jiǎn)單,灰度為</SPAN><SPAN
lang=EN-US>0</SPAN><SPAN style="FONT-FAMILY: 宋體">時(shí)全是黑點(diǎn),灰度每增加</SPAN><SPAN
lang=EN-US>1</SPAN><SPAN style="FONT-FAMILY: 宋體">,減少一個(gè)黑點(diǎn)。要注意的是,</SPAN><SPAN
lang=EN-US>5</SPAN><SPAN style="FONT-FAMILY: 宋體">×</SPAN><SPAN
lang=EN-US>5</SPAN><SPAN style="FONT-FAMILY: 宋體">的圖案可以表示</SPAN><SPAN
lang=EN-US>26</SPAN><SPAN style="FONT-FAMILY: 宋體">種灰度,當(dāng)灰度是</SPAN><SPAN
lang=EN-US>25</SPAN><SPAN style="FONT-FAMILY: 宋體">才是全白點(diǎn),而不是灰度為</SPAN><SPAN
lang=EN-US>24</SPAN><SPAN style="FONT-FAMILY: 宋體">時(shí)。</SPAN></P>
<P style="LINE-HEIGHT: 18pt"><SPAN
style="FONT-FAMILY: 宋體">下面介紹一種設(shè)計(jì)標(biāo)準(zhǔn)圖案的算法,是由</SPAN><SPAN
lang=EN-US>Limb</SPAN><SPAN style="FONT-FAMILY: 宋體">在</SPAN><SPAN
lang=EN-US>1969</SPAN><SPAN style="FONT-FAMILY: 宋體">年提出的。</SPAN></P>
<P style="LINE-HEIGHT: 18pt"><SPAN style="FONT-FAMILY: 宋體">先以一個(gè)</SPAN><SPAN
lang=EN-US>2</SPAN><SPAN style="FONT-FAMILY: 宋體">×</SPAN><SPAN
lang=EN-US>2</SPAN><SPAN style="FONT-FAMILY: 宋體">的矩陣開始:設(shè)</SPAN><SPAN
lang=EN-US>M<SUB>1</SUB>=<SUB> <IMG height=48
src="第4章 圖象的半影調(diào)和抖動(dòng)技術(shù).files/image007.gif" width=49 v:shapes="_x0000_i1030">
</SUB></SPAN><SPAN style="FONT-FAMILY: 宋體">,通過(guò)遞歸關(guān)系有</SPAN><SPAN
lang=EN-US>M<SUB>n+1</SUB>=<SUB> <IMG height=51
src="第4章 圖象的半影調(diào)和抖動(dòng)技術(shù).files/image009.gif" width=181 v:shapes="_x0000_i1031">
</SUB></SPAN><SPAN style="FONT-FAMILY: 宋體">,其中</SPAN><SPAN
lang=EN-US>M<SUB>n</SUB></SPAN><SPAN style="FONT-FAMILY: 宋體">和</SPAN><SPAN
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -