資源描述:
《第4章 圖象的半影調(diào)和抖動(dòng)技術(shù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、第4章圖象的半影調(diào)和抖動(dòng)技術(shù)在介紹本章內(nèi)容之前,先提出一個(gè)問題?普通的黑白針式打印機(jī)能打出灰度圖來嗎?如果說能,從針式打印機(jī)的打印原理來分析,似乎是不可能的。因?yàn)獒槾蚴强孔册槗舸蛏珟г诩埳闲纬珊邳c(diǎn)的,不可能打出灰色的點(diǎn)來;如果說不能,可是我們的確見過用針式打印機(jī)打印出來的灰色圖象。到底是怎么回事呢?你再仔細(xì)看看那些打印出來的所謂的灰色圖象,最好用放大鏡看。你會(huì)發(fā)現(xiàn),原來這些灰色圖象都是由一些黑點(diǎn)組成的,黑點(diǎn)多一些,圖象就暗一些;黑點(diǎn)少一些,圖案就亮一些。下面這幾張圖就很能說明這一點(diǎn)。圖4.1用黑白兩種顏色打印出灰度效果圖4.1中最左邊的是原圖,是一幅真正的灰度圖,另外三張圖都
2、是黑白二值圖。容易看出,最左的那幅和原圖最接近。由二值圖象顯示出灰度效果的方法,就是我們今天要講的半影調(diào)(halftone)技術(shù),它的一個(gè)主要用途就是在只有二值輸出的打印機(jī)上打印圖象。我們介紹兩種方法:圖案法和抖動(dòng)法。4.1圖案法圖案法(patterning)是指灰度可以用一定比例的黑白點(diǎn)組成的區(qū)域表示,從而達(dá)到整體圖象的灰度感。黑白點(diǎn)的位置選擇稱為圖案化。在具體介紹圖案法之前,先介紹一下分辨率的概念。計(jì)算機(jī)顯示器,打印機(jī),掃描儀等設(shè)備的一個(gè)重要指標(biāo)就是分辨率,單位是dpi(dotperinch),即每英寸點(diǎn)數(shù),點(diǎn)數(shù)越多,分辨率就越高,圖象就越清晰。讓我們來計(jì)算一下,計(jì)算機(jī)顯
3、示器的分辨率有多高。設(shè)顯示器為15英寸(指對(duì)角線長(zhǎng)度),最多顯示1280×1024個(gè)點(diǎn)。因?yàn)閷捀弑葹?:3,所以寬有12英寸,高有9英寸,則該顯示器的水平分辨率為106dpi,垂直分辨率為113.8dpi。一般的激光打印機(jī)的分辨率有300dpi×300dpi,600dpi×600dpi,720dpi×720dpi。所以打出來的圖象要比計(jì)算機(jī)顯示出來的清晰的多。掃描儀的分辨率要高一些,數(shù)碼相機(jī)的分辨率更高。言歸正傳,前面講了,圖案化使用圖案來表示象素的灰度,那么我們來做一道計(jì)算題。假設(shè)有一幅240×180×8bit的灰度圖,當(dāng)用分辨率為300dpi×300dpi的激光打印機(jī)將其
4、打印到12.8×9.6英寸的紙上時(shí),每個(gè)象素的圖案有多大?這道題很簡(jiǎn)單,這張紙最多可以打(300×12.8)×(300×9.6)=3840×2880個(gè)點(diǎn),所以每個(gè)象素可以用(3840/240)×(2880/180)=16×16個(gè)點(diǎn)大小的圖案來表示,即一個(gè)象素256個(gè)點(diǎn)。如果這16×16的方塊中一個(gè)黑點(diǎn)也沒有,就可以表示灰度256;有一個(gè)黑點(diǎn),就表示灰度255;依次類推,當(dāng)都是黑點(diǎn)時(shí),表示灰度0。這樣,16×16的方塊可以表示257級(jí)灰度,比要求的8bit共256級(jí)灰度還多了一個(gè)。所以上面的那幅圖的灰度級(jí)別完全能夠打印出來。這里有一個(gè)圖案構(gòu)成的問題,即黑點(diǎn)打在哪里?比如說,只有
5、一個(gè)黑點(diǎn)時(shí),我們可以打在正中央,也可以打16×16的左上角。圖案可以是規(guī)則的,也可以是不規(guī)則的。一般情況下,有規(guī)則的圖案比隨即圖案能夠避免點(diǎn)的叢集,但有時(shí)會(huì)導(dǎo)致圖象中有明顯的線條。如圖4.1中,2×2的圖案可以表示5級(jí)灰度,當(dāng)圖象中有一片灰度為的1的區(qū)域時(shí),如圖4.2所示,有明顯的水平和垂直線條。圖4.2????2×2的圖案圖4.3????規(guī)則圖案導(dǎo)致線條如果想存儲(chǔ)256級(jí)灰度的圖案,就需要256×16×16的二值點(diǎn)陣,占用的空間還是相當(dāng)可觀的。有一個(gè)更好的辦法是:只存儲(chǔ)一個(gè)整數(shù)矩陣,稱為標(biāo)準(zhǔn)圖案,其中的每個(gè)值從0到255。圖象的實(shí)際灰度和陣列中的每個(gè)值比較,當(dāng)該值大于等于灰
6、度時(shí),對(duì)應(yīng)點(diǎn)打一黑點(diǎn)。下面舉一個(gè)25級(jí)灰度的例子加以說明。圖4.4????標(biāo)準(zhǔn)圖案舉例圖4.4中,左邊為標(biāo)準(zhǔn)圖案,右邊為灰度為15的圖案,共有10個(gè)黑點(diǎn),15個(gè)白點(diǎn)。其實(shí)道理很簡(jiǎn)單,灰度為0時(shí)全是黑點(diǎn),灰度每增加1,減少一個(gè)黑點(diǎn)。要注意的是,5×5的圖案可以表示26種灰度,當(dāng)灰度是25才是全白點(diǎn),而不是灰度為24時(shí)。下面介紹一種設(shè)計(jì)標(biāo)準(zhǔn)圖案的算法,是由Limb在1969年提出的。先以一個(gè)2×2的矩陣開始:設(shè)M1=,通過遞歸關(guān)系有Mn+1=,其中Mn和Un均為2n×2n的方陣,Un的所有元素都是1。根據(jù)這個(gè)算法,可以得到M2=,為16級(jí)灰度的標(biāo)準(zhǔn)圖案。M3(8×8陣)比較特殊,
7、稱為Bayer抖動(dòng)表。M4是一個(gè)16×16的矩陣。根據(jù)上面的算法,如果利用M3一個(gè)象素要用8×8的圖案表示,則一幅N×N的圖將變成8N×8N大小。如果利用M4,就更不得了,變成16N×16N了。能不能在保持原圖大小的情況下利用圖案化技術(shù)呢?一種很自然的想法是:如果用M2陣,則將原圖中每8×8個(gè)點(diǎn)中取一點(diǎn),即重新采樣,然后再應(yīng)用圖案化技術(shù),就能夠保持原圖大小。實(shí)際上,這種方法并不可行。首先,你不知道這8×8個(gè)點(diǎn)中找哪一點(diǎn)比較合適,另外,8×8的間隔實(shí)在太大了,生成的圖象和原圖肯定相差很大,就象圖4.1最右