欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種平面點(diǎn)集凸殼的高效構(gòu)建方法

文檔序號:8431532閱讀:705來源:國知局
一種平面點(diǎn)集凸殼的高效構(gòu)建方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明可應(yīng)用于地圖學(xué)與地理信息科學(xué)、GIS空間數(shù)據(jù)分析、模式識別、圖像處理、CAD/CAM、計(jì)算機(jī)圖形學(xué)和人工智能等技術(shù)領(lǐng)域,涉及一種針對海量平面點(diǎn)集數(shù)據(jù),求取其凸殼的算法。
【背景技術(shù)】
[0002]凸殼作為計(jì)算幾何中最基本、最普遍的數(shù)據(jù)結(jié)構(gòu)之一。凸殼算法,尤其是平面凸殼算法,備受國內(nèi)外學(xué)者關(guān)注,為此不少學(xué)者做了諸多研宄工作來改進(jìn)凸殼生成算法,目的是為了提高平面點(diǎn)集的凸殼生成效率。
[0003]目前,關(guān)于求解平面點(diǎn)集凸殼的方法,總體來看,可以分為兩類:直接法和間接法。直接法典型的有格雷厄姆算法、最大基線傾角智能逼近法[10]等;間接法典型的有增量法,卷包裹算法和分治法等。這些算法大都需要對點(diǎn)集進(jìn)行排序,且部分算法用到的角度計(jì)算過于復(fù)雜;因此,在處理海量數(shù)據(jù)時(shí),算法運(yùn)行效率會(huì)明顯降低。

【發(fā)明內(nèi)容】

[0004]本發(fā)明針對現(xiàn)有算法處理平面點(diǎn)集凸殼效率不高,尤其是在處理海量平面點(diǎn)集數(shù)據(jù),算法效率明顯下降的問題,提出來一種新的算法。本發(fā)明提出了一種通過最大限度清除無關(guān)內(nèi)點(diǎn)以減少運(yùn)算量的凸殼求取算法,很好解決了海量數(shù)據(jù)求取凸殼時(shí)效率明顯下降的冋題。
[0005]本發(fā)明方法包括針對平面海量點(diǎn)集,快速高效構(gòu)建其凸殼的算法。
[0006]平面點(diǎn)集求取凸殼,是指對于給定的平面數(shù)據(jù)點(diǎn),求出由這些點(diǎn)集數(shù)據(jù)所組成的組大凸多邊形。本發(fā)明的算法步驟如下:首先,查找X坐標(biāo)值最小和最大的兩點(diǎn),并計(jì)算距離此兩點(diǎn)所構(gòu)成線段最遠(yuǎn)的點(diǎn),連接該點(diǎn)形成初始凸殼;然后,在剩余的點(diǎn)集中,依次計(jì)算初始凸殼每條邊外側(cè)點(diǎn)集中距離該邊最遠(yuǎn)的點(diǎn),連接該點(diǎn)并刪除位于內(nèi)部的點(diǎn),更新初始凸殼;重復(fù)此步驟直到初始凸殼外部沒有其他離散點(diǎn),則該凸殼為最終所求凸殼。
[0007]本文通過最大限度地?cái)U(kuò)展初始凸殼,使盡可能多的點(diǎn)包裹于其中,從而轉(zhuǎn)化為內(nèi)點(diǎn)并隨即清除,使得參加運(yùn)算的數(shù)據(jù)點(diǎn)的數(shù)量呈明顯的下降趨勢,故可以有效的提高算法效率。并且在數(shù)據(jù)量較大時(shí),運(yùn)行效率無明顯增大,對于海量點(diǎn)集數(shù)據(jù)求取凸殼具有很大意義。
[0008]此外本文算法對于各種異常情況,均能較好的處理,算法健壯性良好。
【附圖說明】
[0009]圖(I)算法流程圖圖(2)確定左、右極值點(diǎn)圖(3)計(jì)算極距點(diǎn)Pm
圖(4) 一個(gè)極距點(diǎn)圖(5)連接極距點(diǎn)C 圖(6)清除內(nèi)部點(diǎn)D、E、F 圖(7)連接極距點(diǎn)B 圖(8)清除內(nèi)部點(diǎn)A 圖(9)最終所求凸殼CH(S)
圖(10) X坐標(biāo)極值點(diǎn)存在多個(gè)圖(11)極距點(diǎn)存在多個(gè)
【具體實(shí)施方式】
[0010]為了詳細(xì)說明本發(fā)明的技術(shù)內(nèi)容、算法特征、所實(shí)現(xiàn)的目的及所達(dá)到的效果,以下結(jié)合【具體實(shí)施方式】詳細(xì)說明。
[0011]本文算法首先尋找給定的平面點(diǎn)集的左右極值點(diǎn),然后計(jì)算距離此兩點(diǎn)所組成線段的極距點(diǎn),連接此極距點(diǎn)形成初始凸殼。然后針對此初始凸殼,不斷計(jì)算其每條邊外側(cè)的極距點(diǎn),連接更新初始凸殼直到初始凸殼外側(cè)沒有離散點(diǎn),即求得最終凸殼。算法的的主要過程如圖(I)所示。
[0012]算法的詳細(xì)描述
步驟1:對于任意給定的平面點(diǎn)集S,首先求出左極值點(diǎn)P jp右極值點(diǎn)P E,可知,直線X=Xmin與x=Xmax之間的區(qū)域即為所研宄區(qū)域,所有平面點(diǎn)均包含在研宄區(qū)域內(nèi),如圖(2)所示:
步驟2:連接得到線段P JV計(jì)算點(diǎn)集S中線段極距點(diǎn)P M,依次連接ΡΛ、PkPm形成初始凸殼BCH (S),如圖(3 )所示,三角形PJ3kPm即為初始凸殼BCH⑶:
步驟3:清除初始凸殼BCH(S)的內(nèi)點(diǎn)。依次檢測BCH(S)每條邊外側(cè)是否有外點(diǎn): Step.1若該邊外側(cè)沒有點(diǎn),則直接結(jié)束該邊外點(diǎn)檢測運(yùn)算。
[0013]如圖(3)所示,首先檢測邊ΡΛ,該邊外側(cè)沒有外點(diǎn),則直接結(jié)束該邊外點(diǎn)檢測運(yùn)笪并ο
[0014]若該邊外側(cè)只有一個(gè)點(diǎn),則連接該點(diǎn)并結(jié)束該邊外點(diǎn)檢測運(yùn)算。
[0015]如圖(4)所示;依次檢測邊PMPK,該邊外側(cè)只有一個(gè)外點(diǎn),則連接該極距點(diǎn)和線段兩端點(diǎn),然后結(jié)束該邊外點(diǎn)檢測運(yùn)算。
[0016]若該邊外側(cè)外點(diǎn)的數(shù)目多于一個(gè),則重復(fù)計(jì)算該邊外側(cè)的極距點(diǎn),依次連接該極距點(diǎn)形成新的初始凸殼,并清除內(nèi)部的點(diǎn),返回步驟3。
[0017]如圖(5)所示,依次檢測邊ΡΛ,該邊外側(cè)的外點(diǎn)多于兩個(gè),則首先計(jì)算邊PkP^極距點(diǎn)C,依次連接該極距點(diǎn)和線段兩端點(diǎn)。
[0018]清除內(nèi)點(diǎn)D、E、F,如圖(6)所示。
[0019]對于新得到的兩條邊I\C、PKC,重復(fù)執(zhí)行步驟3,首先檢測邊Pf,該邊外側(cè)多于一個(gè)外點(diǎn),則計(jì)算其極距點(diǎn)B,連接該極距點(diǎn)和線段兩端點(diǎn),如圖(7)所示。
[0020]清除內(nèi)點(diǎn)A,如圖(8)所示。
[0021]依次繼續(xù)檢測新得到的兩邊兩邊外則均無外點(diǎn),由步驟3的Step.1可知,直接結(jié)束該邊外點(diǎn)檢測運(yùn)算。然后檢測另外一邊PKC,該邊外側(cè)只有一個(gè)外點(diǎn),由步驟3的Step.2可知,連接該點(diǎn)并結(jié)束外點(diǎn)檢測運(yùn)算,如圖(9)所示??芍噙呅蜳J3mHPkGCBPJP為最終所求凸殼CH(S)。
[0022]異常處理
對于文章所提算法,在尋求極值點(diǎn)的時(shí)候,可能存在多個(gè),具體有如下幾種特殊情況:
I首先計(jì)算X坐標(biāo)的極值點(diǎn),可能存在極值點(diǎn)不止兩個(gè)的情況,如果落在左右邊界的極值點(diǎn)存在多個(gè)時(shí),則分別取I坐標(biāo)值最小的點(diǎn),如圖(10)所示,左極值點(diǎn)存在多個(gè),則選取y坐標(biāo)值最小的點(diǎn)Pu。
[0023]2在計(jì)算極距點(diǎn)的時(shí)候,同樣會(huì)出現(xiàn)存在多個(gè)極距點(diǎn)的情況,如果對于一條線段所求極距點(diǎn)存在多個(gè)時(shí),則取X坐標(biāo)值最大和最小的兩點(diǎn),如圖(11)所示,則選取PmiPm^點(diǎn),如此Pm2將會(huì)落在邊P M1PM3上而成為內(nèi)點(diǎn)刪除。
【主權(quán)項(xiàng)】
1.基于平面點(diǎn)集求取凸殼的特征步驟如下: 連接得到線段PJV計(jì)算點(diǎn)集S中線段極距點(diǎn)P M,依次連接ρλ、ρκρμ形成初始凸殼BCH (S),如圖(3 )所示,三角形PJ3kPm即為初始凸殼BCH⑶。
2.清除初始凸殼BCH(S)的內(nèi)點(diǎn),依次檢測BCH(S)每條邊外側(cè)是否有外點(diǎn): 若該邊外側(cè)沒有點(diǎn),則直接結(jié)束該邊外點(diǎn)檢測運(yùn)算; 若該邊外側(cè)只有一個(gè)點(diǎn),則連接該點(diǎn)并結(jié)束該邊外點(diǎn)檢測運(yùn)算; 若該邊外側(cè)外點(diǎn)的數(shù)目多于一個(gè),則重復(fù)計(jì)算該邊外側(cè)的極距點(diǎn),依次連接該極距點(diǎn)形成新的初始凸殼,并清除內(nèi)部的點(diǎn),返回步驟3。
3.異常處理 對于文章所提算法,在尋求極值點(diǎn)的時(shí)候,可能存在多個(gè),具體有如下幾種特殊情況: I首先計(jì)算X坐標(biāo)的極值點(diǎn),可能存在極值點(diǎn)不止兩個(gè)的情況,如果落在左右邊界的極值點(diǎn)存在多個(gè)時(shí),則分別取I坐標(biāo)值最小的點(diǎn),如圖(10)所示,左極值點(diǎn)存在多個(gè),則選取y坐標(biāo)值最小的點(diǎn)Pu; 2在計(jì)算極距點(diǎn)的時(shí)候,同樣會(huì)出現(xiàn)存在多個(gè)極距點(diǎn)的情況,如果對于一條線段所求極距點(diǎn)存在多個(gè)時(shí),則取X坐標(biāo)值最大和最小的兩點(diǎn),如圖(11)所示,則選取PmiPm3兩點(diǎn),如此P12將會(huì)落在邊P M1PM3上而成為內(nèi)點(diǎn)刪除。
【專利摘要】本文發(fā)明一種高效的凸殼構(gòu)建方法。首先,查找x坐標(biāo)值最小和最大的兩點(diǎn),并計(jì)算距離此兩點(diǎn)所構(gòu)成線段最遠(yuǎn)的點(diǎn),連接該點(diǎn)形成初始凸殼;然后,在剩余的點(diǎn)集中,依次計(jì)算初始凸殼每條邊外側(cè)點(diǎn)集中距離該邊最遠(yuǎn)的點(diǎn),連接該點(diǎn)并刪除位于內(nèi)部的點(diǎn),更新初始凸殼;重復(fù)此步驟直到初始凸殼外部沒有其他離散點(diǎn),則該凸殼為最終所求凸殼。結(jié)合實(shí)驗(yàn)進(jìn)行分析,結(jié)果表明本文方法具有較高的凸殼生成效率。
【IPC分類】G06T17-10
【公開號】CN104751519
【申請?zhí)枴緾N201510159967
【發(fā)明人】張立峰, 田金志, 王中輝
【申請人】蘭州交通大學(xué)
【公開日】2015年7月1日
【申請日】2015年4月7日
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
都昌县| 大安市| 开阳县| 西藏| 刚察县| 黔江区| 板桥市| 两当县| 柳林县| 定安县| 凤阳县| 都江堰市| 确山县| 巴马| 常山县| 茌平县| 托克逊县| 哈尔滨市| 博乐市| 离岛区| 华蓥市| 英吉沙县| 安乡县| 资中县| 广丰县| 瓦房店市| 古交市| 江津市| 巴中市| 东丽区| 长垣县| 康乐县| 秭归县| 武鸣县| 祁东县| 黄浦区| 红原县| 红原县| 皮山县| 灵丘县| 乌恰县|