本發(fā)明涉及一種密度控制的平面區(qū)域自適應(yīng)采樣方法,屬于計算機(jī)圖形學(xué)領(lǐng)域。
背景技術(shù):
關(guān)于采樣方法主要有兩種:
(1)自由曲面的采樣方法:用離散采樣點(diǎn)來提取曲面原始形狀信息即為曲面數(shù)字化。目前,已有多種曲面數(shù)字化方法,如基于形狀的自由曲面數(shù)字化采樣方法(參見:來新民等,數(shù)學(xué)模型已知的自由曲面數(shù)字化自適應(yīng)采樣,計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,1999,11(4):359-362),該類方法依據(jù)質(zhì)心概念提出基于形狀的采樣方法,能夠在給定采樣精度的條件下確定合理的采樣點(diǎn)數(shù)。該技術(shù)主要針對曲面進(jìn)行采樣,采樣過程依賴曲面曲率的變化來決定采樣的疏密。
(2)圖像的采樣方法:隨著技術(shù)的發(fā)展,高質(zhì)量的集成圖像越來越被人們所需要,高質(zhì)量集成成像系統(tǒng)則需要采集和存儲大量圖像數(shù)據(jù),因此需要通過采樣方法來減少所需存儲的圖像數(shù)據(jù)?,F(xiàn)已有多種圖像采樣方法,如CII方法(參見:Piao Yan等,Non-periodic reconstruction technique of computational integral imaging,Journal of Information and Computational Science,2008,5(3):1259-1264),該類方法從某一觀察點(diǎn)出發(fā),在每個元素中提取觀察點(diǎn)對應(yīng)的像素點(diǎn),并進(jìn)行周期性采樣。該技術(shù)主要針對圖象進(jìn)行采樣,且采樣點(diǎn)的疏密隨圖像顏色的變化而變化。
以上方法均不能自適應(yīng)地增刪采樣點(diǎn),且采樣點(diǎn)的疏密程度是由曲面或圖像本身的性質(zhì)所決定,不適應(yīng)于任意的密度函數(shù)。
目前,尚未見到由密度函數(shù)控制的平面區(qū)域自適應(yīng)采樣的文獻(xiàn)及相關(guān)技術(shù)記載。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明給出一種密度控制的平面區(qū)域自適應(yīng)采樣方法,該方法依據(jù)給定的密度函數(shù),可以在平面上確定區(qū)域內(nèi)生成相應(yīng)密度的采樣點(diǎn)集。
本發(fā)明采用的技術(shù)方案為:
一種密度控制的平面區(qū)域自適應(yīng)采樣方法,包括如下步驟:
a.輸入平面區(qū)域Ω的邊界以及采樣密度函數(shù)f(x,y):輸入平面區(qū)域Ω的邊界,該邊界用曲線或曲線集表示,或者使用平面多邊形表示,或由曲線與線段的組合來表示;確定采樣密度函數(shù)f(x,y),該函數(shù)對于平面區(qū)域Ω內(nèi)的任意一點(diǎn)(x,y),均能給出大于0的值;
b.確定覆蓋平面區(qū)域Ω的凸多邊形Γ,產(chǎn)生初始采樣點(diǎn)集:在平面上確定一個覆蓋平面區(qū)域Ω的凸多邊形Γ,并在多邊形Γ內(nèi)生成初始采樣點(diǎn)集P,其中凸多邊形Γ是平面上覆蓋平面區(qū)域Ω的任意凸多邊形;
c.在凸多邊形Γ內(nèi)構(gòu)建點(diǎn)集P的Voronoi圖V,并求出圖V中各頂點(diǎn)的密度:在平面上構(gòu)建點(diǎn)集P的Voronoi圖U;再將圖U位于凸多邊形Γ內(nèi)部的部分連同凸多邊形Γ的邊界,記為圖V,由圖V得到相應(yīng)的對偶三角網(wǎng)格,并記三角網(wǎng)格內(nèi)的三角形所構(gòu)成的集合為T;用密度函數(shù)f(x,y)計算圖V中各頂點(diǎn)的密度;
d.計算三角形集合T的平均分辨率及平均密度:根據(jù)密度函數(shù)f(x,y),確定三角形集合T中每個三角形的平均密度及平均分辨率,其中:三角形平均密度為三角形頂點(diǎn)密度的平均值,三角形平均分辨率為三角形平均密度與三角形面積的積;然后確定三角形集合T的平均密度及平均分辨率,其中:三角形集合T的平均密度為三角形集合T中所有三角形平均密度的平均值,三角形集合T的平均分辨率為三角形集合T中所有三角形平均分辨率的平均值;
e.對點(diǎn)集P進(jìn)行自適應(yīng)增點(diǎn)和刪點(diǎn)操作:根據(jù)三角形集合T中各三角形平均分辨率與三角形集合T平均分辨率的大小關(guān)系,對點(diǎn)集P進(jìn)行增刪采樣點(diǎn)操作;
f.對Voronoi圖V進(jìn)行重心化處理:依據(jù)密度函數(shù)f(x,y),計算圖V中各Voronoi子區(qū)域的加權(quán)平均點(diǎn),其中加權(quán)平均點(diǎn)由子區(qū)域頂點(diǎn)及頂點(diǎn)密度共同確定;將圖V中所有子區(qū)域的采樣點(diǎn)的位置移動到加權(quán)平均點(diǎn)處;
g.生成平面區(qū)域Ω內(nèi)符合密度函數(shù)f(x,y)分布規(guī)律的采樣點(diǎn)集:重復(fù)執(zhí)行步驟c-f,直至點(diǎn)集P中的點(diǎn)的位置趨于穩(wěn)定;刪除點(diǎn)集P中位于平面區(qū)域Ω以外的點(diǎn),得到平面區(qū)域Ω內(nèi)符合密度函數(shù)f(x,y)分布規(guī)律的采樣點(diǎn)集。
所述步驟e的具體步驟為:
設(shè)定兩個采樣控制參數(shù)μ1與μ2,且μ1<μ2,對三角形集合T做如下處理:
1)若三角形集合T中存在三角形t的平均分辨率小于三角形集T的平均分辨率的μ1倍,且三角形t的平均密度小于三角形集合T的平均密度,則從采樣點(diǎn)集P中刪除三角形t的各頂點(diǎn),并向采樣點(diǎn)集P中添加三角形t的加權(quán)平均點(diǎn)作為新采樣點(diǎn);
2)若三角形集合T中存在三角形t的平均分辨率大于三角形集T的平均分辨率的μ2倍,且三角形t的平均密度大于三角形集合T的平均密度,則直接向采樣點(diǎn)集P中添加三角形t的加權(quán)平均點(diǎn)作為新采樣點(diǎn)。
與現(xiàn)有技術(shù)相比,本發(fā)明能夠在平面區(qū)域內(nèi)生成由密度控制的自適應(yīng)采樣點(diǎn)集,具有如下優(yōu)點(diǎn):
(1)通過動態(tài)地增刪采樣點(diǎn),可控制采樣點(diǎn)集的疏密,能實(shí)現(xiàn)加密或簡化采樣集操作;
(2)得到的采樣點(diǎn)集的分布始終與密度函數(shù)的分布規(guī)律一致,且采樣點(diǎn)位置具有隨機(jī)性;
(3)原理簡單,易于實(shí)現(xiàn),適應(yīng)性廣,能夠生成符合任意密度函數(shù)分布規(guī)律的采樣點(diǎn)集。
附圖說明
圖1為本發(fā)明方法的流程圖;
圖2為平面區(qū)域Ω的邊界示意圖,其中:(a)為用曲線集表示的邊界;(b)為平面多邊形表示的邊界;(c)為由曲線與線段組合表示的邊界;
圖3為在包含平面區(qū)域Ω的凸多邊形Γ內(nèi)產(chǎn)生初始采樣點(diǎn)集的示意圖,其中虛線所示的多邊形表示平面區(qū)域Ω,封閉實(shí)線界定的區(qū)域表示覆蓋平面區(qū)域Ω的凸多邊形Γ,黑點(diǎn)表示凸多邊形Γ內(nèi)的采樣點(diǎn);
圖4為Voronoi圖及其對偶三角網(wǎng)格示意圖,其中:(a)為平面點(diǎn)集的Voronoi圖U;(b)凸多邊形內(nèi)的Voronoi圖V;(c)圖中的空心點(diǎn)為Vononoi圖的頂點(diǎn),采樣點(diǎn)p1和p2的Voronoi子區(qū)域D1、D2分別為凸多邊形v1v2v3v4v5和v3v4v6v7;(d)粗線所示的三角網(wǎng)格為Voronoi圖的對偶三角網(wǎng)格;
圖5為實(shí)施例1中的平面區(qū)域Ω的邊界;
圖6為實(shí)施例1中的包含平面區(qū)域Ω的凸多邊形Γ以及凸多邊形Γ內(nèi)產(chǎn)生的初始采樣點(diǎn)集,其中凸多邊形Γ與平面區(qū)域Ω的區(qū)域重合;
圖7為實(shí)施例1中的Voronoi圖及其對偶三角網(wǎng)格,其中:(a)為平面點(diǎn)集的Voronoi圖U;(b)為凸多邊形內(nèi)的Voronoi圖V;(c)粗線所示的三角網(wǎng)格為Voronoi圖的對偶三角網(wǎng)格;
圖8為實(shí)施例1增刪采樣點(diǎn)操作前后的Voronoi圖,其中:(a)為增加采樣點(diǎn)前的Voronoi圖;(b)為增加采樣點(diǎn)后重建Voronoi圖,其中空心點(diǎn)表示新添加的采樣點(diǎn);(c)為刪除采樣點(diǎn)前的Voronoi圖;(d)為刪除采樣點(diǎn)后重建Voronoi圖。
圖9為實(shí)施例1中密度函數(shù)為解析函數(shù)的采樣點(diǎn)集;
圖10為實(shí)施例2中平面區(qū)域Ω的邊界;
圖11為實(shí)施例2中包含平面區(qū)域Ω的凸多邊形Γ以及凸多邊形Γ內(nèi)產(chǎn)生的初始采樣點(diǎn)集,其中平面區(qū)域Ω的邊界為袋鼠形狀的多邊形,凸多邊形Γ為矩形;
圖12為密度函數(shù)為過程函數(shù)的采樣點(diǎn)生成,其中:(a)為凸多邊形Γ內(nèi)符合密度函數(shù)分布規(guī)律的采樣點(diǎn)集;(b)為平面區(qū)域Ω內(nèi)符合密度函數(shù)分布規(guī)律的采樣點(diǎn)集。
具體實(shí)施方式
為了更清楚地闡明本發(fā)明的技術(shù)方案,下面結(jié)合具體的實(shí)施例和相關(guān)附圖,對本發(fā)明的技術(shù)細(xì)節(jié)進(jìn)行詳細(xì)說明。
如圖1所示,本發(fā)明方法的流程如下:
1.輸入平面區(qū)域Ω的邊界以及采樣密度函數(shù)f(x,y):輸入平面區(qū)域Ω的邊界,該邊界用曲線或曲線集表示,或者用平面多邊形表示,亦或由曲線與線段的組合來表示(參見附圖2);確定采樣密度函數(shù)f(x,y),對于平面區(qū)域Ω內(nèi)的任意一點(diǎn)(x,y),函數(shù)f(x,y)均能給出大于0的密度值。
2.確定包含平面區(qū)域Ω的凸多邊形Γ,產(chǎn)生初始采樣點(diǎn)集:在平面上確定一個覆蓋了區(qū)域Ω的凸多邊形Γ;在凸多邊形Γ內(nèi)產(chǎn)生一組點(diǎn),定義這些點(diǎn)為初始采樣點(diǎn),并由它們構(gòu)成初始采樣點(diǎn)集P(參見附圖3)。
3.在凸多邊形Γ內(nèi)構(gòu)建點(diǎn)集P的Voronoi圖V,并求出圖V中各頂點(diǎn)的密度:參見附圖4,首先在平面上構(gòu)建點(diǎn)集P的Voronoi圖,并記為U(附圖4(a));再將圖U位于多邊形Γ內(nèi)部的部分連同多邊形Γ的邊界,記為圖V(附圖4(b)),將圖V中包含各個采樣點(diǎn)的多邊形區(qū)域定義為圖V的子區(qū)域(參見附圖4(c));由圖V得到相應(yīng)的對偶三角網(wǎng)格,并將三角網(wǎng)格中的所有三角形構(gòu)成的集合記為T(附圖4(d));對于圖V中的每個頂點(diǎn),用函數(shù)f(x,y)計算出其密度值。
4.計算三角形集合T的平均分辨率及平均密度:設(shè)t為三角形集合T內(nèi)的任意一個三角形,計算出三角形t的面積st;再由函數(shù)f(x,y)計算出三角形t的三個頂點(diǎn)的密度,分別記為再計算三角形t的平均密度ρt和平均分辨率rt,其中rt=st·ρt;進(jìn)而計算出三角形集合T的平均密度ρ和平均分辨率r:
其中,|T|為集合T中三角形的個數(shù);計算平均密度ρ和平均分辨率r式子中,求和計算取遍集合T中的所有三角形。
5.對點(diǎn)集P進(jìn)行自適應(yīng)增、刪點(diǎn)操作:設(shè)定兩個正的采樣控制參數(shù)μ1與μ2,且μ1<μ2;對三角形集T中的任一三角形t,做如下處理:
1)若rt<r·μ1且三角形t的平均密度ρt小于三角形集T的平均密度ρ,將三角形t的三個頂點(diǎn)從點(diǎn)集P中刪除,并添加三角形t的加權(quán)平均點(diǎn)作為采樣點(diǎn),并加入到點(diǎn)集P中,其中
2)若rt>r·μ2且三角形t的平均密度ρt大于三角形集T的平均密度ρ,將三角形t的加權(quán)平均點(diǎn)添加到點(diǎn)集P中,其中
6.對Voronoi圖V進(jìn)行重心化處理:對于點(diǎn)集P中的每個采樣點(diǎn)pi,得到它在圖V中的子區(qū)域Di的頂點(diǎn)為其中ni是子區(qū)域Di的邊界多邊形的頂點(diǎn)數(shù);由函數(shù)f(x,y)計算出的密度值進(jìn)而得到子區(qū)域Di的加權(quán)平均點(diǎn)
然后將頂點(diǎn)pi移至的位置,實(shí)現(xiàn)圖V的重心化。
7.生成平面區(qū)域Ω內(nèi)符合密度函數(shù)f(x,y)分布規(guī)律的采樣點(diǎn)集:反復(fù)執(zhí)行步驟3-6,直至采樣點(diǎn)集在凸多邊形Γ內(nèi)的位置趨于穩(wěn)定為止;刪除點(diǎn)集P中位于平面區(qū)域Ω以外的點(diǎn),所得點(diǎn)集即為平面區(qū)域Ω內(nèi)符合密度函數(shù)f(x,y)分布規(guī)律的采樣點(diǎn)集。
實(shí)施例1:
本實(shí)施例的具體步驟如下:
1.輸入平面區(qū)域Ω的邊界以及采樣密度函數(shù)f(x,y)
輸入平面區(qū)域Ω的邊界,在本實(shí)施例中,輸入的平面區(qū)域Ω的邊界用六邊形表示(參見附圖5),該六邊形的頂點(diǎn)分別為(-2,0),(-1,2),(1,2),(2,0),(1,-2),(-1,-2);定義平面區(qū)域Ω上的采樣密度函數(shù)f(x,y)為:
其中||·||為絕對值符號,對于平面區(qū)域Ω內(nèi)的任意一點(diǎn)(x,y),函數(shù)f(x,y)均能給出大于0的密度值。
2.確定包含平面區(qū)域Ω的凸多邊形Γ,產(chǎn)生初始采樣點(diǎn)集
在平面上確定一個覆蓋平面區(qū)域Ω的凸多邊形Γ,本實(shí)施例中,取凸多邊形Γ與平面區(qū)域Ω重合,即凸多邊形Γ也為六邊形,頂點(diǎn)分別為(-2,0),(-1,2),(1,2),(2,0),(1,-2),(-1,-2);在凸多邊形Γ內(nèi)產(chǎn)生一組點(diǎn),定義這些點(diǎn)為初始采樣點(diǎn),并用它們構(gòu)成初始采樣點(diǎn)集P。本實(shí)施例中,初始采樣點(diǎn)集P由隨機(jī)產(chǎn)生的100個點(diǎn)構(gòu)成(參見附圖6)。
3.在凸多邊形Γ內(nèi)構(gòu)建點(diǎn)集P的Voronoi圖V,并求出V圖中各頂點(diǎn)的密度
首先在平面上構(gòu)建點(diǎn)集P的Voronoi圖(附圖7(a)),本實(shí)施例中,運(yùn)用“分治法”來構(gòu)建平面上點(diǎn)集P的Voronoi圖,并將Voronoi圖記為圖U;裁剪掉圖U中位于凸多邊形Γ外部的Voronoi邊,得到圖U′,并將圖U′連同多邊形Γ的邊界記為圖V(附圖7(b)),將圖V中包含各個采樣點(diǎn)的多邊形區(qū)域定義為圖V的子區(qū)域,其中圖V的頂點(diǎn)包括圖U′的頂點(diǎn)、凸多邊形Γ的頂點(diǎn)以及圖U′與凸多邊形Γ邊界的交點(diǎn);由圖V得到相應(yīng)的對偶三角網(wǎng)格(附圖7(c)),并將三角網(wǎng)格中所有三角形構(gòu)成的集合記為T,該三角網(wǎng)格的頂點(diǎn)集即為采樣點(diǎn)集P;對于圖V中的每個頂點(diǎn),用函數(shù)f(x,y)計算出其密度值。
4.計算三角形集合T的平均分辨率及平均密度
設(shè)t為三角形集合T內(nèi)的任意一個三角形,利用海倫公式計算三角形t的面積st,即其中:a,b,c分別為三角形t三條邊的長度,p=(a+b+c)/2;再由函數(shù)f(x,y)計算出三角形t的三個頂點(diǎn)的密度,并分別記為計算三角形t的平均密度ρt和平均分辨率rt,其中rt=st·ρt;進(jìn)而計算出三角形集合T的平均密度ρ和平均分辨率r:
其中,|T|為集合T中三角形的個數(shù);上述兩式中的求和取遍T中的所有三角形。
5.對點(diǎn)集P進(jìn)行自適應(yīng)增、刪點(diǎn)操作
設(shè)定兩個正的采樣控制參數(shù)μ1與μ2,本實(shí)施例中,μ1與μ2分別為0.875和1.125;對三角形集T中的任一三角形t,做如下處理(參見附圖8):
1)若rt<r·μ1且三角形t的平均密度ρt小于三角形集T的平均密度ρ,將三角形t的三個頂點(diǎn)從點(diǎn)集P中刪除,并添加三角形t的加權(quán)平均點(diǎn)作為采樣點(diǎn),并加入到點(diǎn)集P中,其中
2)若rt>r·μ2且三角形t的平均密度ρt大于三角形集T的平均密度ρ,將三角形t的加權(quán)平均點(diǎn)添加到點(diǎn)集P中,其中
6.對Voronoi圖V進(jìn)行重心化處理
對于點(diǎn)集P中的任意采樣點(diǎn)pi,取得它在圖V中的子區(qū)域Di的頂點(diǎn)為其中ni是子區(qū)域Di的邊界多邊形的頂點(diǎn)數(shù);由函數(shù)f(x,y)計算出的密度值進(jìn)而得到子區(qū)域Di的加權(quán)平均點(diǎn)
然后將頂點(diǎn)pi移至的位置,實(shí)現(xiàn)圖V的重心化。
7.生成平面區(qū)域Ω內(nèi)符合密度函數(shù)f(x,y)分布規(guī)律的采樣點(diǎn)集
反復(fù)執(zhí)行步驟3-6,直至采樣點(diǎn)集在凸多邊形Γ內(nèi)的位置趨于穩(wěn)定為止,本實(shí)施例中,設(shè)定反復(fù)執(zhí)行步驟3-6的次數(shù)為20次;從點(diǎn)集P中刪除位于平面區(qū)域Ω以外的點(diǎn),在本實(shí)施例中,凸多邊形Γ與平面區(qū)域Ω的區(qū)域重合,因此凸多邊形Γ內(nèi)的采樣點(diǎn)集即為平面區(qū)域Ω內(nèi)符合密度函數(shù)f(x,y)分布規(guī)律的采樣點(diǎn)集(參見附圖9)。
實(shí)施例2:
本實(shí)施例的具體步驟為:
1.輸入平面區(qū)域Ω的邊界以及采樣密度函數(shù)f(x,y)
輸入平面區(qū)域Ω的邊界,在本實(shí)施例中,平面區(qū)域Ω的邊界用非凸多邊形表示,該多邊形的頂點(diǎn)均在平面區(qū)域[-1.5,1.5]×[-1.5,1.5]內(nèi)(參見附圖10);定義平面區(qū)域Ω上的采樣密度函數(shù)f(x,y)為:
f(x,y)=1.0/(10·dΩ(x,y)+1.0)
其中dΩ(x,y)為平面上任一點(diǎn)到平面區(qū)域Ω邊界的最近距離,對于平面區(qū)域Ω內(nèi)的任意一點(diǎn)(x,y),函數(shù)f(x,y)均能給出大于0的密度值。
2.確定包含平面區(qū)域Ω的凸多邊形Γ,產(chǎn)生初始采樣點(diǎn)集
在平面上確定一個覆蓋平面區(qū)域Ω的凸多邊形Γ,本實(shí)施例中,取凸多邊形Γ為矩形,頂點(diǎn)分別為(-2,-2),(-2,2),(2,2),(2,-2);在凸多邊形Γ內(nèi)產(chǎn)生一組點(diǎn),定義這些點(diǎn)為初始采樣點(diǎn),并由它們構(gòu)成采樣點(diǎn)集P,在本實(shí)施例中,點(diǎn)集P是由隨機(jī)生成的100個點(diǎn)構(gòu)成(附圖11)。
步驟3-6與實(shí)施例1中的步驟3-6相同。
7.生成平面區(qū)域Ω內(nèi)符合密度函數(shù)f(x,y)分布規(guī)律的采樣點(diǎn)集
反復(fù)執(zhí)行步驟3-6,直至采樣點(diǎn)集在凸多邊形Γ內(nèi)的位置趨于穩(wěn)定為止,本實(shí)施例中,設(shè)定反復(fù)執(zhí)行次數(shù)為20次(附圖12(a));從點(diǎn)集P中刪除位于平面區(qū)域Ω以外的點(diǎn),所得點(diǎn)集即為平面區(qū)域Ω內(nèi)符合密度函數(shù)f(x,y)分布規(guī)律的采樣點(diǎn)集(附圖12(b))。