專利名稱:一種球面距離快速變換方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種球面距離快速變換方法,屬于圖像處理技術(shù)領(lǐng)域。
技術(shù)背景
在二維空間中,假設(shè)圖像是由邊界像素和非邊界像素構(gòu)成,距離變換(距離場)是 指將每一個(gè)像素映射成以距離函數(shù)定義的從該像素到最近邊界像素的距離值。球面距離變 換是指定義在球面上的球面測地距離變換。球面距離變換在球面網(wǎng)格剖分、氣象建模等領(lǐng) 域有著重要的應(yīng)用。
直接的球面距離變換方法是通過比較球面上任一非邊界點(diǎn)到所有邊界點(diǎn)的距離 進(jìn)行的,這種方法的原理和實(shí)現(xiàn)簡單,但是時(shí)間復(fù)雜度卻非常高,因此幾乎無法實(shí)際應(yīng)用。 采用基于順序向量擴(kuò)散的方法一定程度上緩解了球面距離變換的時(shí)間消耗(相關(guān)技術(shù)可參 考 Michikawa Tj Suzuki H. Spherical Distance Transforms[C], Proceedings of the 2008 International Conference on Computational Sciences and Its Applications, P 405--412),但是由于該方法采用了擴(kuò)散的方法,因此只能單線程執(zhí)行球面距離變換, 效率仍然受限。在二維圖像空間中,有一種獨(dú)立掃描算法(Rosenfeld A, Pfaltz J L. Sequential Operations in Digital Picture Processing[J]. J. ACM. 1966, 13(4): 471-494)充分利用了二維距離變換過程中行、列之間的局部特性,使得距離變換能夠并行 執(zhí)行。然而球面距離是指球面上兩點(diǎn)之間的測地距離,與一般的歐氏距離存在本質(zhì)上的區(qū) 別,因此二維距離變換的算法無法被直接應(yīng)用到球面距離變換。發(fā)明內(nèi)容
本發(fā)明的目的是提供一種球面距離快速變換方法。
為實(shí)現(xiàn)上述目的,本發(fā)明所采取的技術(shù)方案是(1)在經(jīng)度-緯度參數(shù)域上,將球面參數(shù)化成二維網(wǎng)格;其中所述二維網(wǎng)格的行表示緯 線,列表示經(jīng)線;(2)根據(jù)球面上邊界點(diǎn)的分布要求,在所述二維網(wǎng)格中將與球面上邊界點(diǎn)對(duì)應(yīng)的網(wǎng)格 像素標(biāo)注為邊界像素,其余網(wǎng)格像素標(biāo)注為非邊界像素;(3)先并行地對(duì)所述二維網(wǎng)格的每一行從行首向行尾做第一次掃描,當(dāng)掃描至行尾后, 再從行首向行尾繼續(xù)掃描,在該繼續(xù)掃描過程中,若在不超過行的長度的一半時(shí)遇到邊界 像素,則結(jié)束第一次掃描,否則在達(dá)到行的長度的一半時(shí)結(jié)束第一次掃描;并且,在整個(gè)第 一次掃描過程中跟蹤每個(gè)邊界像素并將每個(gè)邊界像素的有效索引保存到在相應(yīng)邊界像素 之后被掃描到的網(wǎng)格像素內(nèi);如果某一行中不存在邊界像素,則在第一次掃描過程之后該 行的所有網(wǎng)格像素保存無效索引;當(dāng)?shù)谝淮螔呙杞Y(jié)束后,再并行地對(duì)所述二維網(wǎng)格的每一行從行尾到行首做第二次掃 描,當(dāng)掃描至行首后,再從行尾向行首繼續(xù)掃描,在該繼續(xù)掃描過程中,若在不超過行的長 度的一半時(shí)遇到邊界像素,則結(jié)束第二次掃描,否則在達(dá)到行的長度的一半時(shí)結(jié)束第二次掃描;并且,在整個(gè)第二次掃描過程中跟蹤每個(gè)邊界像素并將每個(gè)邊界像素到當(dāng)前網(wǎng)格像 素的距離與第一次掃描過程中當(dāng)前網(wǎng)格像素所保存的有效索引所指向的邊界像素到當(dāng)前 網(wǎng)格像素的距離進(jìn)行比較如果在第二次掃描過程中跟蹤的邊界像素到當(dāng)前網(wǎng)格像素的 距離小于第一次掃描過程中當(dāng)前網(wǎng)格像素所保存的有效索引所指向的邊界像素到當(dāng)前網(wǎng) 格像素的距離,則將第二次掃描過程中所跟蹤的邊界像素的有效索引保存到當(dāng)前網(wǎng)格像素 內(nèi);(4)對(duì)所述二維網(wǎng)格的每一列分別構(gòu)造一個(gè)用于保存邊界像素的先進(jìn)后出的候選隊(duì) 列,且只能在所述候選隊(duì)列的尾端插入或取出元素;接著并行地對(duì)所述二維網(wǎng)格的每一列 從頭到尾進(jìn)行掃描,在該掃描過程中,依次將各列中的網(wǎng)格像素所保存的有效索引指向的 邊界像素從所在列的候選隊(duì)列的尾端插入到該候選隊(duì)列中,并且當(dāng)出現(xiàn)候選隊(duì)列中的邊界 像素的數(shù)量彡3時(shí),按以下步驟進(jìn)行(a)順序取出該候選隊(duì)列中的三個(gè)邊界像素并分別依次記作qi、q2、%;在對(duì)應(yīng)的正在掃 描的列的中心線所在的經(jīng)度上找兩個(gè)點(diǎn)Pl和P2,使得Pl到ql、q2的距離相等且P2到q2、 Q3的距離相等,并進(jìn)行以下判斷如果Pl的緯度值小于P2的緯度值,或者Pl和P2同時(shí)處 在以兩個(gè)相鄰的網(wǎng)格像素的中心點(diǎn)為端點(diǎn)的球面線段上,則按照q3、Q1的次序?qū)⑦@兩個(gè)邊 界像素放回候選隊(duì)列并執(zhí)行步驟(b),否則,按照q3、q2、qi的次序?qū)⑦@三個(gè)邊界像素放回對(duì) 應(yīng)的候選隊(duì)列并繼續(xù)掃描該列的余下網(wǎng)格像素;(b)判斷該候選隊(duì)列中的邊界像素的數(shù)量是否彡3,若是,則返回步驟(a);若不是,則繼 續(xù)掃描該列的余下網(wǎng)格像素;(5)再次并行地沿著所述二維網(wǎng)格的每一列從頭到尾進(jìn)行掃描,順序從各列對(duì)應(yīng)的候 選隊(duì)列的首端取出兩個(gè)邊界像素,并分別依次記作q4、Q5 ;從當(dāng)前列的第一個(gè)網(wǎng)格像素開 始,對(duì)于掃描過程中的每一個(gè)網(wǎng)格像素,分別計(jì)算它的中心點(diǎn)到q4、Q5的球面距離,并記作 Cl1和d2 ;如果C^d2,則將Cl1作為該網(wǎng)格像素的球面距離變換結(jié)果保存;否則,將(12作為該網(wǎng) 格像素的球面距離變換結(jié)果保存,然后將%賦值給q4,并從當(dāng)前列對(duì)應(yīng)的候選隊(duì)列的首端 取出下一個(gè)邊界像素賦值給%;當(dāng)掃描完所有列的最后一個(gè)網(wǎng)格像素后,球面距離的快速 變換即完成。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是本發(fā)明將球面在經(jīng)度-緯度參數(shù)域上參 數(shù)化成一個(gè)二維網(wǎng)格后,在給定的球面邊界點(diǎn)分布的前提下,提供了一種通過獨(dú)立并行的 掃描式的方法,快速執(zhí)行球面上每個(gè)點(diǎn)的球面距離變換。如果令經(jīng)度和緯度上的參數(shù)化粒 度均為N,則使用本發(fā)明的方法進(jìn)行球面距離快速變換的時(shí)間復(fù)雜度為0(N2),即是關(guān)于參 數(shù)化后二維網(wǎng)格像素?cái)?shù)量的線性復(fù)雜度;同時(shí)由于本發(fā)明的方法中針對(duì)每行和每列的掃 描是相互獨(dú)立的,因此本發(fā)明在并行系統(tǒng)中的時(shí)間復(fù)雜度將于并行系統(tǒng)計(jì)算核心的數(shù)量 成反比,執(zhí)行效率將得到進(jìn)一步的加速;例如在使用最新的GPU加速后,本發(fā)明提供的方 法相比目前最新提出的基于順序向量擴(kuò)散的方法(相關(guān)技術(shù)可參考Michikawa T, Suzuki H. Spherical Distance Transforms[C],Proceedings of the 2008 International Conference on Computational Sciences and Its Applications,ρ 405—412)有最高達(dá) 300多倍的效率提升。
圖1-圖5是本發(fā)明第一次掃描過程的示意圖;圖6-圖8是本發(fā)明第二次掃描過程中用于判斷是否刪除當(dāng)前列的邊界像素候選隊(duì)列 中的每三個(gè)邊界像素的中間那個(gè)邊界像素時(shí)三種情形的示意圖;其中,圖6和圖7為不放回 位于中間的邊界像素的情形,圖8為三個(gè)邊界像素全部放回候選隊(duì)列的情形;圖9-圖10是本發(fā)明根據(jù)當(dāng)前列的邊界像素候選隊(duì)列進(jìn)行球面距離變換時(shí)兩種情形的 示意圖,其中,圖9中dl < d2,圖10中dl彡d2。
圖11是一個(gè)應(yīng)用本發(fā)明的球面距離快速變換的實(shí)例的效果圖。
具體實(shí)施方式
下面結(jié)合附圖,對(duì)本發(fā)明的球面距離快速變換的方法作進(jìn)一步說明,具體步驟如下 步驟1)在球面經(jīng)度-緯度參數(shù)域上,將單位球(半徑為1個(gè)單位)的球面參數(shù)化成一個(gè)按照經(jīng)度和緯度分別等間距劃分的二維網(wǎng)格,其中二維網(wǎng)格的行表示緯線,列表示經(jīng)線; 令經(jīng)度和緯度的參數(shù)化粒度均為N,即沿著球面的經(jīng)線和緯線分別作N等分(在經(jīng)度和緯度 上可以使用不同的參數(shù)化粒度)。
步驟2)根據(jù)給定的在球面上邊界點(diǎn)的分布要求(分布要求可由用戶根據(jù)實(shí)際的 特定要求指定,或者僅由程序隨機(jī)設(shè)定),在所述二維網(wǎng)格中將對(duì)應(yīng)的網(wǎng)格像素標(biāo)注為邊界 像素,其余的則是非邊界像素;步驟3):并行地沿著所述二維網(wǎng)格的每一行掃描,得到在當(dāng)前行的緯度下,距離所述二 維網(wǎng)格每一行的每個(gè)像素最近的邊界像素,并將該邊界像素的索引記錄在所述二維網(wǎng)格的 每個(gè)像素中;如果某一網(wǎng)格像素本身是一個(gè)邊界像素,則記錄其自身的索引;如果某一行 中不存在邊界像素,則該行的所有網(wǎng)格像素保存一個(gè)無效的索引;此步驟將按照如下兩次 掃描完成3a)如圖1所示為所述二維網(wǎng)格的某一行,A、B、C、D為在步驟2)中標(biāo)注的4個(gè)邊界像 素,二維網(wǎng)格的每一行表示一條緯線,因此行首和行尾是相連的;第一次掃描將沿該行的行 首(左)至行尾(右)的方向掃描最多3/2個(gè)圓周,即掃描至行尾后,再從行首繼續(xù)掃描直至 遇到邊界像素或超過一半的行的長度;掃描過程中使用一個(gè)臨時(shí)的索引Tl,用以指向一個(gè) 邊界像素;掃描開始時(shí),該索引Tl不指向任何邊界像素;當(dāng)掃描進(jìn)度從行首開始后,如果當(dāng) 前網(wǎng)格像素不是邊界像素時(shí),將所述的臨時(shí)索引Tl記錄在當(dāng)前的網(wǎng)格像素中;如果當(dāng)前網(wǎng) 格像素是一個(gè)邊界像素時(shí)(如標(biāo)注為A、B、C、D的網(wǎng)格像素),則將所述的臨時(shí)索引Tl改寫 為指向當(dāng)前的邊界網(wǎng)格像素,并將該索引Tl記錄在當(dāng)前的網(wǎng)格像素中;從行首至行尾的掃 描完成后,本實(shí)施例中,其結(jié)果將如圖2所示,相應(yīng)的小寫字母(a、b、c、d)指向其對(duì)應(yīng)大寫 字母標(biāo)注的邊界網(wǎng)格像素;繼續(xù)回到行首掃描,如果在不超過行的長度的一半時(shí)遇到邊界 像素或者掃描的路程已經(jīng)達(dá)到行的長度的一半,則結(jié)束掃描;掃描完成后,本實(shí)施例中,其 結(jié)果如圖3所示。
3b)第二次掃描將沿該行的行尾(右)至行首(左)的方向掃描最多3/2個(gè)圓周, 即掃描至行首后,再從行尾繼續(xù)掃描最多一半的行的長度;掃描過程中使用一個(gè)臨時(shí)的索 引T2,用以指向一個(gè)邊界像素;掃描開始時(shí),該索引T2不指向任何邊界像素,即為一個(gè)無 效索引;當(dāng)掃描進(jìn)度從行尾開始后,如果當(dāng)前網(wǎng)格像素不是邊界像素且臨時(shí)索引T2指向5一個(gè)有效的邊界像素時(shí),計(jì)算臨時(shí)索引T2指向的邊界像素到當(dāng)前網(wǎng)格像素的經(jīng)度距離, 記作Cl1 ;同時(shí)計(jì)算當(dāng)前網(wǎng)格像素所記錄的索引指向的邊界像素到當(dāng)前網(wǎng)格像素的經(jīng)度距 離,記作d2,其中經(jīng)度距離定義為兩個(gè)網(wǎng)格像素在球面上的經(jīng)度之差的絕對(duì)值,其范圍為 0 T ;如果ClZd2,則將臨時(shí)索引T2記錄在當(dāng)前的網(wǎng)格像素中;如果當(dāng)前網(wǎng)格像素本身就 是一個(gè)邊界像素時(shí)(如標(biāo)注為A、B、C、D的網(wǎng)格像素),則將所述的臨時(shí)索引T2改寫為指向 當(dāng)前的網(wǎng)格像素的索引即可。在本實(shí)施例中,從行尾至行首的掃描完成后,其結(jié)果如圖4所 示;繼續(xù)回到行尾掃描,如果在不超過行的長度的一半時(shí)遇到邊界像素或者掃描的路程已 經(jīng)達(dá)到行的長度的一半,則結(jié)束掃描;在本實(shí)施例中,掃描完成后,結(jié)果如圖5所示;其中圖 4和圖5中所示的淺灰色背景的網(wǎng)格像素,表示其保存的邊界像素的索引在第二次掃描過 程中被更新。
步驟4)并行地沿著表示經(jīng)度的每一列掃描,得到所述二維網(wǎng)格的與每一列對(duì)應(yīng) 的一個(gè)存有用于每列的網(wǎng)格像素進(jìn)行球面距離變換的邊界像素的隊(duì)列;經(jīng)過步驟3)后,對(duì) 于所述二維網(wǎng)格的每一列中的每一個(gè)網(wǎng)格像素,如果該網(wǎng)格像素所在的行(緯度)存在邊界 網(wǎng)格像素,則其保存了指向其中距離它最近的邊界網(wǎng)格像素的索引;如果該網(wǎng)格像素所在 的行(纟韋度)不存在邊界網(wǎng)格像素,則其保存的是一個(gè)不指向任何地方的索引(即無效索引); 該步驟按如下方法掃描并行地沿著所述二維網(wǎng)格的每一列從低緯度(即緯度值為0)到高緯度(即緯度值為TO 的方向(也可以從高緯度到低緯度掃描)掃描,令Q為一個(gè)保存與當(dāng)前列相關(guān)的邊界像素的 先進(jìn)后出的隊(duì)列,即隊(duì)列中的元素保持其插入到該隊(duì)列中時(shí)的相對(duì)順序,且按照其插入到 隊(duì)列中的次序的逆序取出元素,稱Q為候選隊(duì)列;在掃描過程中,每當(dāng)當(dāng)前被掃描的網(wǎng)格像 素保存的索引為有效索引,則將其指向的邊界像素插入到隊(duì)列Q中;每次有新的邊界元素 插入到隊(duì)列Q中后,記此時(shí)隊(duì)列Q中的元素個(gè)數(shù)為η ;如果η ^ 3,則進(jìn)行如下操作(a)從隊(duì)列Q的尾端依次取出三個(gè)邊界像素并分別記作ql、q2、q3,在對(duì)應(yīng)的正在掃描 的列的中心線所在的經(jīng)度V 上找兩個(gè)點(diǎn)Pl和P2 (如圖6、圖7、圖8),使得Pl到ql、q2的 距離相等,P2到q2、q3的距離相等,并進(jìn)行以下判斷如果點(diǎn)Pl的緯度值小于P2的緯度值 (如圖6),或者Pl和P2同時(shí)處在以兩個(gè)相鄰的網(wǎng)格像素的中心點(diǎn)01和02為端點(diǎn)的球面線 段上(如圖7),則按照q3、qi的次序?qū)⑦@三個(gè)邊界像素放回候選隊(duì)列Q并執(zhí)行步驟(b);否則 (如圖8),按照q3、q2、qi的次序?qū)⑦@兩個(gè)邊界像素放回對(duì)應(yīng)的候選隊(duì)列Q中并繼續(xù)掃描該列 的余下網(wǎng)格像素;(b)判斷此時(shí)候選隊(duì)列Q中的邊界像素的數(shù)量η是否仍滿足η> 3,若是,則返回步驟 (a);若不是,則繼續(xù)掃描該列的余下網(wǎng)格像素;步驟5):再次并行地沿著所述二維網(wǎng)格的每一列從低緯度(即緯度值為0)到高緯度(即 緯度值為I)的方向(也可以從高緯度到低緯度掃描)掃描。此時(shí)將步驟(4)得到的各列對(duì) 應(yīng)的候選隊(duì)列的存取性質(zhì)改為先進(jìn)先出,即從隊(duì)列首端取出元素,而從隊(duì)列尾端插入元素; 順序取出各列對(duì)應(yīng)的候選隊(duì)列中的兩個(gè)邊界像素,并分別依次記作q4、Q5 ;從當(dāng)前列的第一 個(gè)網(wǎng)格像素開始,對(duì)于掃描過程中的每一個(gè)網(wǎng)格像素,分別計(jì)算它的像素中心點(diǎn)P (如圖9 和圖10)到q4、q5的球面距離,并記作Cl1和d2 ;如果帆(如圖9),則將Cl1作為該網(wǎng)格像 素的球面距離變換結(jié)果保存;否則(如圖10),將d2作為該網(wǎng)格像素的球面距離變換結(jié)果保 存,然后將%賦值給Ci4,并從當(dāng)前列對(duì)應(yīng)的候選隊(duì)列中取出下一個(gè)邊界像素賦值給%。當(dāng)所有列都掃描完它們的最后一個(gè)網(wǎng)格像素后,球面距離變換即完成,即最終的二維網(wǎng)格的 每個(gè)網(wǎng)格像素保存的距離為該網(wǎng)格像素到最近的邊界像素的距離。
使用本發(fā)明的實(shí)施例,對(duì)于參數(shù)化為2048X2048的二維網(wǎng)格,并隨機(jī)選取100 個(gè)網(wǎng)格像素作為邊界像素后進(jìn)行球面距離的快速變換,使用一般方法需要44秒得到正確 的球面距離變換,而本實(shí)施例僅使用0.013秒即可得到正確的球面距離變換。在不同參 數(shù)化的二維網(wǎng)格下并隨機(jī)選取1000個(gè)網(wǎng)格像素作為邊界像素的條件下,與目前最新的 方^去(才匿關(guān)技術(shù)可參考 Michikawa T, Suzuki H. Spherical Distance Transforms [C], Proceedings of the 2008 International Conference on Computational Sciences and Its Applications, ρ 405—412)相比較的過程中,本實(shí)施例達(dá)到了最高近300倍的加速 比,并且在8192X8192的參數(shù)化二維網(wǎng)格測試中,本實(shí)施例能達(dá)到15fps的球面距離變換 性能。圖11為一個(gè)應(yīng)用球面距離快速變換的實(shí)例效果圖,用于建模海洋中每個(gè)點(diǎn)到其最近 的海岸線的距離變換,圖11中,位于海洋中的條帶為等距線,其余部分為大陸的示意圖。
權(quán)利要求
1. 一種球面距離快速變換方法,其特征在于包括如下步驟(1)在經(jīng)度-緯度參數(shù)域上,將球面參數(shù)化成二維網(wǎng)格;其中所述二維網(wǎng)格的行表示緯 線,列表示經(jīng)線;(2)根據(jù)球面上邊界點(diǎn)的分布要求,在所述二維網(wǎng)格中將與球面上邊界點(diǎn)對(duì)應(yīng)的網(wǎng)格 像素標(biāo)注為邊界像素,其余網(wǎng)格像素標(biāo)注為非邊界像素;(3)先并行地對(duì)所述二維網(wǎng)格的每一行從行首向行尾做第一次掃描,當(dāng)掃描至行尾后, 再從行首向行尾繼續(xù)掃描,在該繼續(xù)掃描過程中,若在不超過行的長度的一半時(shí)遇到邊界 像素,則結(jié)束第一次掃描,否則在達(dá)到行的長度的一半時(shí)結(jié)束第一次掃描;并且,在整個(gè)第 一次掃描過程中跟蹤每個(gè)邊界像素并將每個(gè)邊界像素的有效索引保存到在相應(yīng)邊界像素 之后被掃描到的網(wǎng)格像素內(nèi);如果某一行中不存在邊界像素,則在第一次掃描過程之后該 行的所有網(wǎng)格像素保存無效索引;當(dāng)?shù)谝淮螔呙杞Y(jié)束后,再并行地對(duì)所述二維網(wǎng)格的每一行從行尾到行首做第二次掃 描,當(dāng)掃描至行首后,再從行尾向行首繼續(xù)掃描,在該繼續(xù)掃描過程中,若在不超過行的長 度的一半時(shí)遇到邊界像素,則結(jié)束第二次掃描,否則在達(dá)到行的長度的一半時(shí)結(jié)束第二次 掃描;并且,在整個(gè)第二次掃描過程中跟蹤每個(gè)邊界像素并將每個(gè)邊界像素到當(dāng)前網(wǎng)格像 素的距離與第一次掃描過程中當(dāng)前網(wǎng)格像素所保存的有效索引所指向的邊界像素到當(dāng)前 網(wǎng)格像素的距離進(jìn)行比較如果在第二次掃描過程中跟蹤的邊界像素到當(dāng)前網(wǎng)格像素的距 離小于第一次掃描過程中當(dāng)前網(wǎng)格像素所保存的有效索引所指向的邊界像素到當(dāng)前網(wǎng)格像 素的距離,則將第二次掃描過程中所跟蹤的邊界像素的有效索引保存到當(dāng)前網(wǎng)格像素內(nèi);(4)對(duì)所述二維網(wǎng)格的每一列分別構(gòu)造一個(gè)用于保存邊界像素的先進(jìn)后出的候選隊(duì) 列,且只能在所述候選隊(duì)列的尾端插入或取出元素;接著并行地對(duì)所述二維網(wǎng)格的每一列 從頭到尾進(jìn)行掃描,在該掃描過程中,依次將各列中的網(wǎng)格像素所保存的有效索引指向的 邊界像素從所在列的候選隊(duì)列的尾端插入到該候選隊(duì)列中,并且當(dāng)出現(xiàn)候選隊(duì)列中的邊界 像素的數(shù)量彡3時(shí),按以下步驟進(jìn)行(a)順序取出該候選隊(duì)列中的三個(gè)邊界像素并分別依次記作qi、q2、%;在對(duì)應(yīng)的正在掃 描的列的中心線所在的經(jīng)度上找兩個(gè)點(diǎn)Pl和P2,使得Pl到ql、q2的距離相等且P2到q2、 Q3的距離相等,并進(jìn)行以下判斷如果Pl的緯度值小于P2的緯度值,或者Pl和P2同時(shí)處 在以兩個(gè)相鄰的網(wǎng)格像素的中心點(diǎn)為端點(diǎn)的球面線段上,則按照q3、Q1的次序?qū)⑦@兩個(gè)邊 界像素放回候選隊(duì)列并執(zhí)行步驟(b),否則,按照q3、q2、qi的次序?qū)⑦@三個(gè)邊界像素放回對(duì) 應(yīng)的候選隊(duì)列并繼續(xù)掃描該列的余下網(wǎng)格像素;(b)判斷該候選隊(duì)列中的邊界像素的數(shù)量是否彡3,若是,則返回步驟(a);若不是,則繼 續(xù)掃描該列的余下網(wǎng)格像素;(5)再次并行地沿著所述二維網(wǎng)格的每一列從頭到尾進(jìn)行掃描,順序從各列對(duì)應(yīng)的候 選隊(duì)列的首端取出兩個(gè)邊界像素,并分別依次記作q4、Q5 ;從當(dāng)前列的第一個(gè)網(wǎng)格像素開 始,對(duì)于掃描過程中的每一個(gè)網(wǎng)格像素,分別計(jì)算它的中心點(diǎn)到q4、Q5的球面距離,并記作 Cl1和d2 ;如果C^d2,則將Cl1作為該網(wǎng)格像素的球面距離變換結(jié)果保存;否則,將(12作為該網(wǎng) 格像素的球面距離變換結(jié)果保存,然后將%賦值給q4,并從當(dāng)前列對(duì)應(yīng)的候選隊(duì)列的首端 取出下一個(gè)邊界像素賦值給%;當(dāng)掃描完所有列的最后一個(gè)網(wǎng)格像素后,球面距離的快速 變換即完成。
全文摘要
本發(fā)明公開一種球面距離快速變換的方法,屬于圖像處理技術(shù)領(lǐng)域。本發(fā)明方法包括在經(jīng)度-緯度參數(shù)域上將球面參數(shù)化成一個(gè)二維網(wǎng)格,行表示緯線,列表示經(jīng)線;在二維網(wǎng)格上標(biāo)注邊界像素和非邊界像素;沿表示緯線的行掃描,對(duì)于二維網(wǎng)格的每個(gè)像素,得到在相同緯度上與其具有最小距離的邊界像素的索引并記錄于該像素中;沿表示經(jīng)線的列掃描,將每個(gè)網(wǎng)格像素保存的索引指向的邊界像素依次加入到一個(gè)隊(duì)列中,并在每次加入一個(gè)新的邊界像素時(shí)做判斷,以刪除不滿足一定條件的邊界像素;沿表示經(jīng)度的列再次掃描,根據(jù)上述隊(duì)列依次得到列中的每個(gè)像素的球面距離變換。
文檔編號(hào)G06T7/00GK102034241SQ20101060419
公開日2011年4月27日 申請(qǐng)日期2010年12月24日 優(yōu)先權(quán)日2010年12月24日
發(fā)明者華煒, 潘明皓, 王銳, 陳偉鋒, 鮑虎軍 申請(qǐng)人:浙江大學(xué)