一種圓反走樣顯示方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及一種圓反走樣顯示方法,屬于圖形顯示技術(shù)。
【背景技術(shù)】
[0002] 在數(shù)學(xué)上,各種理想的圖形,如直線、圓等,都是連續(xù)的圖形,其寬度為零。在屏幕 上顯示某個圖形時,只能用離散的像素來組成,且寬度至少為1個像素,運會導(dǎo)致圖形的邊 緣呈現(xiàn)出難看的銀齒形的邊。銀齒是走樣現(xiàn)象的典型情況,減輕或消除走樣的技術(shù)稱為反 走樣。
[0003]反走樣技術(shù)應(yīng)用在各種顯示系統(tǒng)中。衡量反走樣技術(shù)好壞的標(biāo)準(zhǔn)是顯示效果和計 算效率。比如在機(jī)載圖形綜合顯示系統(tǒng)中,所顯示的圖形必須實時反映飛行狀況,對反走樣 算法的效率要求較高。隨著智能手機(jī)、平板電腦等設(shè)備的普及,運一類計算能力相對一般并 希望能耗盡可能小的設(shè)備也需要高效率的圖形反走樣算法。
[0004] 作為一種典型圖形,圓也存在走樣現(xiàn)象,必須進(jìn)行反走樣處理。與直線不同,圓方 程是二次的,其反走樣算法比較復(fù)雜,雖然其算法得到了深入的研究,但是現(xiàn)有圓反走樣算 法都有不足,有的灰度級太少,反走樣效果不好;有的雖然有一定效果,但算法復(fù)雜,計算開 銷很大。
[0005]區(qū)域采樣是圓反走樣的常見技術(shù),如方形區(qū)域采樣等WW,運些算法將理想圓弧 看成有寬度的圓弧,根據(jù)其與像素的重疊程度來計算灰度,雖然反走樣效果較好,但計算比 較繁瑣,算法執(zhí)行效率較低。
[0006]為了簡化計算,文獻(xiàn)W提出了一種整數(shù)算法,雖然其計算非常簡單,但像素只有3 個不同的灰度,反走樣效果較差。文獻(xiàn)W?在盡可能不增加計算量的前提下,提高了文獻(xiàn) W的反走樣效果,但像素也只有7個不同的灰度,反走樣效果一般。
[0007]為了避免浮點計算W簡化算法,可W使用查表或檢索的方法mW,但查表或檢索 本身也很復(fù)雜,效率并不高;也可W將像素網(wǎng)格細(xì)化后進(jìn)行計算?,運種方法類似于過采樣 技術(shù),W增大計算量的代價來提高反走樣效果。運些算法最大的缺點是隨著灰度級的增加 其計算量也會迅速增加,限制了算法的反走樣效果。
[0008]為了簡化計算,文獻(xiàn)M3省略了計算過程中的二次項,并建立只用整數(shù)移位、加法、 比較來實現(xiàn)反走樣的算法。由于省略了二次項,雖然簡化了計算,但增加了灰度計算的誤 差,而且在遞推公式的分母有像素的縱坐標(biāo)y,使得隨著y的變化,遞推公式的值也需要不 斷變化,再加上不使用浮點和乘除,使得該算法過于繁瑣。
[0009]總之,目前圓反走樣算法都存在缺陷。
[0010][IjFieldD.Algorithmsfordrawingantialiasedcirclesandellipses[J]. ComputerVision,Graphics,andImageProcessing, 1986,33 (1) : 1-15.
[0011] [2]Fu,Bowen.Niu,Lianqiang.Integralalgorithmforgenerating anti-aliasingcirclebasedonBresenhamalgorithm[C].China:TransTech Publications, 2012:490-495.
[0012] [3]Niu,Lianqiang,Feng,Haiwen;Wu,Peng.Fastalgorithmsforgenerating 曰nd曰nti-曰li曰seddrawingcirclescontrolledbyresidu曰Is[C].Chin曰:Instituteof ComputingTechnology,2011:232-239.
[0013] [4]WuXL,RokneJG.Doublestepincrementalgenerationoflinesand circles[J].ComputerVision,Graphics,andImageProcessing, 1987, 37 (3):331-344.
[0014] [5]Niu,Lian-Qiang;Shao,Zhong;Wu,Peng.Integeranti-aliasedellipse gener曰ting曰Igorithmb曰sedonBresenham曰lgorithm[C].Chin曰:Sheny曰ngUniversity ofTechnology, 2010:316-320.
[0015] [6]NiuYu-jing,TangDi.Double-stepanti-aliasingdrawingalgorithmof circle[J].ComputerEngineeringandApplications, 2010, 46(23):175-178.
[0016] [7]LiuJing.ImplementationforImprovedAlgorithmofCircleAnti-alias ing[C],Chin曰:Mech曰tronics曰ndControlEngineering, 2012:1327-1333.
[0017][引牛連強(qiáng),馮海文,吳轅.利用殘差控制的快速圓弧生成與反走樣算法[J].計算 機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2011,23 (2) :232-239,
[0018] [9]牛連強(qiáng),邵中.直線與典型曲線的統(tǒng)一反走樣整數(shù)生成算法[J].計算機(jī)輔助 設(shè)計與圖形學(xué)學(xué)報,2010, 22 (8) : 1293-1299.
[0019] [10]賈銀亮,張煥春,經(jīng)亞枝.圓的整數(shù)反走樣生成算法[J].中國圖象圖形學(xué)報, 2012,17(1) :130-136,
【發(fā)明內(nèi)容】
[0020] 發(fā)明目的:為了提高圓在顯示器上的顯示效果,設(shè)計了一種新的圓反走樣顯示方 法,通過省略二次項W簡化計算,并通過比較來減少省略二次項引起的誤差,同時建立了像 素灰度的遞推關(guān)系,反走樣效果較好,且計算簡單。
[0021] 技術(shù)方案:為實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為:
[0022] 一種圓反走樣顯示方法,對于位于某一像素列上的一段理想圓弧,從該像素列中 選擇出最靠近該理想圓弧的兩個像素對該理想圓弧進(jìn)行顯示,像素灰度值g的計算方法 為:將理想圓弧圓屯、到像素中屯、的連線與理想圓弧的交點記為點B,像素中屯、與點B之間的 距離記為1,如圖1所示。像素灰度值g與1成反比,1越小的像素灰度值g越大,1越大的像 素灰度值g越??;Wn位二進(jìn)制數(shù)表示像素灰度值g,gmgx= 2 "且gmm= 0,由于1G[0, 1], 因此有g(shù)= 本發(fā)明方法中,圓弧通過一系列不同灰度值的像素進(jìn)行顯示,能夠減少 相鄰像素的灰度值跳躍,提高了顯示的視覺效果。
[0023] 本發(fā)明的圓反走樣顯示方法,首先計算出用于顯示45°理想圓弧的像素及對應(yīng)的 像素灰度值,然后利用圓的八方向?qū)ΨQ性(對于圓方程為(x-a)2+(y-b)2=R2的理想圓,理 想圓上任意點相對于X=a、y=b、y=x-a+b和y= -x+a+b運四條對稱軸有7個對稱點, 稱為圓的八方向?qū)ΨQ性),通過坐標(biāo)變換得到顯示整個理想圓的像素及對應(yīng)的像素灰度值。
[0024] 本發(fā)明的一種算法較為簡潔的實現(xiàn)方法為:對于圓方程為(x-a)2+(y-b)2=R2的 理想圓,首先計算直線X=a和y=x-a+b之間的45。理想圓弧的像素及對應(yīng)的像素灰度 值,計算過程為:
[002引 (1)設(shè)變量X和y的初值分別為[a]和+ ;從x= [a]像素列開始,在X像素列 選取最靠近理想圓弧的兩個像素坐標(biāo)分別為(W')=(M,「6 +巧1)和(.T,.v-1) = (林「6 +Wl-1),灰度為各(y,.v) =客皿、.(1 + 6 +巧一「占+巧1)和各(義-,>'一1)=容祖-(「占+巧1-6-巧),進(jìn)入步驟 (2);其中,[?]表示對?四舍五入取整,「?]表示對?上取整;
[002引似判斷y〉x-a+b是否成立:若成立,則進(jìn)入步驟(3);否則結(jié)束;
[0027] (3)X=X+1,進(jìn)入步驟(4);
[002引(4)判斷x2+(y-l)2<R2是否成立:若成立,則進(jìn)入步驟(6);否則進(jìn)入步驟妨;
[0029] 巧)y=廠1,進(jìn)入步驟化);
[0030] (6)計算坐標(biāo)為(X,y)和(X,廠1)的像素點的灰度值為:
[0033] 返回步驟似。
[0034] 本發(fā)明反走樣效果較好的一種實現(xiàn)方法為:對于圓方程為(x-a)2+(y-b)2=R2的 理想圓,首先計算直線X=a和y=x-a+b之間的45。理想圓弧的像素及對應(yīng)的像素灰度 值,計算過程為: