亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        傾斜攝影測(cè)量與SketchUp二次開(kāi)發(fā)技術(shù)相結(jié)合的建筑三維重建

        2017-06-19 18:47:24詹總謙李一揮桂鑫源
        測(cè)繪通報(bào) 2017年5期
        關(guān)鍵詞:二次開(kāi)發(fā)紋理建模

        詹總謙,李一揮,桂鑫源

        (武漢大學(xué)測(cè)繪學(xué)院,湖北 武漢 430079)

        傾斜攝影測(cè)量與SketchUp二次開(kāi)發(fā)技術(shù)相結(jié)合的建筑三維重建

        詹總謙,李一揮,桂鑫源

        (武漢大學(xué)測(cè)繪學(xué)院,湖北 武漢 430079)

        結(jié)合SketchUp建模靈活、簡(jiǎn)單易學(xué)及攝影測(cè)量精度高的優(yōu)勢(shì),利用SketchUp Ruby二次開(kāi)發(fā)技術(shù),對(duì)傾斜攝影測(cè)量單像建模、攝影測(cè)量模塊與SketchUp Ruby腳本插件的通信、建模效果等方面進(jìn)行深入研究,解決了用C++和Ruby聯(lián)合開(kāi)發(fā)SketchUp三維建模插件的關(guān)鍵技術(shù)問(wèn)題。

        SketchUp Ruby二次開(kāi)發(fā);傾斜攝影測(cè)量;建筑物重建;單像建模

        建筑物重建是構(gòu)建數(shù)字城市的重要內(nèi)容之一,在城市規(guī)劃、災(zāi)害應(yīng)急、通信設(shè)施建設(shè)等領(lǐng)域具有廣泛應(yīng)用[1]。傳統(tǒng)建模方法主要利用3ds Max、Maya、SketchUp等三維建模軟件[2-4],通過(guò)現(xiàn)場(chǎng)拍照、手工建模、紋理貼圖等步驟進(jìn)行重建,工作量大、精度不高;利用LiDAR技術(shù)可以高精度、高密度地獲取地物三維坐標(biāo),但設(shè)備成本高,建模算法尚不成熟[5];采用全自動(dòng)實(shí)景三維建模技術(shù)的商用軟件有Street Factory和Smart3D等[6-7],該技術(shù)自動(dòng)化程度高、宏觀效果好,但細(xì)節(jié)粗糙、模型非單體化,后期處理煩瑣,軟件價(jià)格也相當(dāng)昂貴。

        文獻(xiàn)[8—9]闡述了利用傾斜攝影測(cè)量和3ds Max二次開(kāi)發(fā)技術(shù)快速實(shí)現(xiàn)城市建筑物三維建模的方法,提高了建模的精度和效率。但3ds Max操作復(fù)雜,難以在短時(shí)間內(nèi)熟練掌握。而SketchUp簡(jiǎn)單易學(xué)、視角靈活,建模效率優(yōu)于3ds Max等軟件,已成為建筑設(shè)計(jì)、園林景觀等領(lǐng)域的主流軟件[10]。SketchUp采用Ruby作為二次開(kāi)發(fā)語(yǔ)言,是一種簡(jiǎn)單快捷、面向?qū)ο?、自?dòng)垃圾回收(Garbage Collection)的腳本語(yǔ)言,開(kāi)發(fā)效率優(yōu)于C++和Java[11]。

        本文在SketchUp軟件環(huán)境下,結(jié)合傾斜攝影測(cè)量技術(shù)[12-13],實(shí)現(xiàn)單像建模方法,開(kāi)發(fā)了建筑物半自動(dòng)三維重建插件。該插件可通過(guò)人機(jī)交互的測(cè)量方法,快速、高精度實(shí)現(xiàn)建筑物三維模型的幾何重建和紋理映射等過(guò)程。

        1 技術(shù)方法

        1.1 技術(shù)框架

        本方法首先以動(dòng)態(tài)鏈接庫(kù)形式制作傾斜攝影測(cè)量量測(cè)模塊,然后建立Ruby腳本、SketchUp建模API函數(shù)、攝影測(cè)量量測(cè)模塊之間的通信,進(jìn)而實(shí)現(xiàn)SketchUp中攝影測(cè)量插件的開(kāi)發(fā)。整體技術(shù)框架如圖1所示。

        該技術(shù)以傾斜攝影測(cè)量空三加密成果和影像數(shù)據(jù)作為攝影測(cè)量模塊輸入,技術(shù)流程描述如下:首先通過(guò)雙像立體或單像建模方式獲取建筑物關(guān)鍵點(diǎn)坐標(biāo)數(shù)據(jù);然后將坐標(biāo)數(shù)據(jù)傳遞給Ruby腳本,腳本調(diào)用API函數(shù)創(chuàng)建建筑物幾何模型;最后,使用Ruby腳本將幾何模型所有坐標(biāo)信息傳遞給攝影測(cè)量模塊,獲取最佳紋理后由Ruby腳本讀取,調(diào)用API函數(shù)完成紋理映射。

        圖1 整體技術(shù)框架

        1.2 數(shù)據(jù)通信

        1.2.1 C++攝影測(cè)量模塊向Ruby傳遞數(shù)據(jù)

        攝影測(cè)量模塊與Ruby腳本需要分別獲取對(duì)方的函數(shù)指針,進(jìn)而通過(guò)參數(shù)傳遞完成通信。Fiddle是Ruby用來(lái)包裝其他語(yǔ)言函數(shù)接口的一個(gè)擴(kuò)展,可實(shí)現(xiàn)跨語(yǔ)言的調(diào)用[14]。本方法中利用Fiddle::Pointer類(lèi)來(lái)處理C/C++類(lèi)型的指針。由于C++數(shù)組內(nèi)存空間是連續(xù)的,而Ruby數(shù)組中的各個(gè)元素則是隨機(jī)存儲(chǔ)在操作系統(tǒng)的堆內(nèi)存(System Heap)中的(對(duì)象的引用保存在Ruby Heaps中,它獨(dú)立于操作系統(tǒng)的堆之外),兩種數(shù)組結(jié)構(gòu)差異較大,因此Ruby無(wú)法直接讀取C++傳進(jìn)的double或int型數(shù)組[11]。Ruby字符串是一個(gè)C語(yǔ)言的RString結(jié)構(gòu)體,包含了一個(gè)char*類(lèi)型的指針,指向字符串的值,該值存儲(chǔ)在連續(xù)內(nèi)存空間中(如圖2所示),結(jié)構(gòu)與C++數(shù)組相似。因此,可以將C++攝影測(cè)量模塊的坐標(biāo)數(shù)據(jù)轉(zhuǎn)化為字符數(shù)組后傳入Ruby,再轉(zhuǎn)為相應(yīng)的整型或浮點(diǎn)型即可。

        圖2 Ruby數(shù)組、字符串存儲(chǔ)方式

        1.2.2 Ruby向C++攝影測(cè)量模塊傳遞數(shù)據(jù)

        Ruby中的數(shù)組類(lèi)型為Array,而Array的pack方法可以將數(shù)組的值壓縮為一個(gè)二進(jìn)制序列[15],將所有元素的值存儲(chǔ)在一段連續(xù)的內(nèi)存空間中。壓縮得到的二進(jìn)制序列對(duì)象的引用與C++指針類(lèi)型相同,作為參數(shù)傳入攝影測(cè)量模塊后可以直接根據(jù)下標(biāo)訪問(wèn)各元素。

        1.3 量測(cè)與建模

        1.3.1 單像量測(cè)

        除了文獻(xiàn)[9]介紹的雙像立體建模方法之外,本技術(shù)還采用了單像建模方法。流程描述如下:首先在雙像立體建模界面中量測(cè)基準(zhǔn)平面,包括水平基準(zhǔn)面、垂直基準(zhǔn)面和任意空間基準(zhǔn)面;然后切換到單像建模界面,通過(guò)量測(cè)建筑關(guān)鍵點(diǎn)像點(diǎn)坐標(biāo),并利用攝影測(cè)量知識(shí)確定該像點(diǎn)與投影中心的空間光線;最后,計(jì)算空間光線與基準(zhǔn)平面的交點(diǎn)坐標(biāo),該點(diǎn)即為關(guān)鍵點(diǎn)的空間坐標(biāo)。如圖3所示,用戶只需在單張影像上描繪建筑物輪廓線即可完成測(cè)量。

        圖3 單像量測(cè)

        1.3.2 模型構(gòu)建

        SketchUp API中Entities類(lèi)的add_face方法可以根據(jù)Point3d數(shù)組、Edge數(shù)組創(chuàng)建一個(gè)多邊形,add_edges方法用來(lái)創(chuàng)建多個(gè)線段,add_arc、add_circle和add_curve方法分別用于創(chuàng)建弧段、圓和曲線實(shí)體[16]。SketchUp中沒(méi)有“體”的概念,所有的三維立體模型都是由多個(gè)面構(gòu)成的。對(duì)于Face對(duì)象,pushpull(推拉)方法可以沿法向擠出生成棱柱形的多面體。

        建筑分為平頂房屋和復(fù)雜房屋兩類(lèi)進(jìn)行創(chuàng)建。對(duì)于平頂房屋,先測(cè)得頂面,然后在單像視圖中推拉出整個(gè)建筑模型(如圖4(a)所示)。對(duì)于復(fù)雜房屋,則需要進(jìn)一步測(cè)量屋脊線的位置(如圖4(b)所示),然后在SketchUp中構(gòu)面即可。

        圖4 平頂、復(fù)雜房屋建模

        1.4 紋理自動(dòng)映射

        [9]的方法進(jìn)行最佳紋理搜索,具體映射流程如下:

        (1) 將模型點(diǎn)的三維坐標(biāo)傳入攝影測(cè)量模塊,并根據(jù)共線方程和外方位元素選出模型面可見(jiàn)且完整的影像。然后,根據(jù)紋理面積最大原則選出最佳影像,按照最小外包矩形在影像上截取紋理。

        (2) 在Ruby腳本中讀取紋理(SketchUp環(huán)境中無(wú)需將紋理尺寸歸一化為2n大小),并計(jì)算模型點(diǎn)的紋理坐標(biāo),要求坐標(biāo)原點(diǎn)定義在紋理圖片的左下角,大小在[0,1]區(qū)間內(nèi)。

        (3) 調(diào)用Model類(lèi)的materials方法獲取材質(zhì)集合,向其中添加新的材質(zhì),材質(zhì)的紋理(Texture)屬性設(shè)置為截取的紋理圖像。

        (4) 調(diào)用Face類(lèi)中的position_material方法,將模型點(diǎn)的物方坐標(biāo)和對(duì)應(yīng)的紋理坐標(biāo)對(duì)應(yīng),實(shí)現(xiàn)紋理的透視變換,其效果如圖5所示。

        圖5 紋理映射效果

        1.5 雙視圖協(xié)同建模

        為了提高建模效率及獲取最佳建模體驗(yàn),實(shí)現(xiàn)時(shí)需要保證攝影測(cè)量模塊與SketchUp的數(shù)據(jù)模型和建模方式一致,形成雙視圖協(xié)同建模、無(wú)縫切換。其中,攝影測(cè)量建模視圖可以利用矢量數(shù)據(jù)與影像的套合程度進(jìn)行質(zhì)量控制,使用戶體驗(yàn)到所見(jiàn)即所得效果(如圖6所示);而SketchUp建模視圖則可以充分利用軟件的靈活視角及豐富的建模工具,對(duì)模型的細(xì)節(jié)加以完善。

        圖6 雙視圖協(xié)同建模

        2 建模效果

        為驗(yàn)證本技術(shù)的有效性,采用德國(guó)某地區(qū)的傾斜影像,對(duì)幾種典型建筑和街區(qū)進(jìn)行建模,影像與模型效果如圖7—圖9所示。

        圖7 人字形屋脊房屋建模效果

        圖8 尖塔房屋建模效果

        圖9 復(fù)雜房屋建模效果

        如圖10所示(測(cè)區(qū)一角),對(duì)于結(jié)構(gòu)比較簡(jiǎn)單的平頂和人字形屋脊房屋而言,在保證精度的情況下,建模效率約為每分鐘1~2個(gè)模型。由于目前的紋理映射方法需要遍歷較多的原始影像以獲取最佳紋理,并且SketchUp尚不支持多核運(yùn)算,因此紋理映射的效率仍然有待進(jìn)一步提高。

        圖10 整體建模效果

        3 結(jié) 語(yǔ)

        利用SketchUp Ruby二次開(kāi)發(fā)技術(shù)與傾斜攝影測(cè)量原理,對(duì)城市建筑物半自動(dòng)、快速三維重建進(jìn)行了技術(shù)研究和實(shí)現(xiàn),重點(diǎn)解決了C++開(kāi)發(fā)的攝影測(cè)量模塊與Ruby腳本插件間的通信等關(guān)鍵技術(shù)問(wèn)題,取得了較好的建模效果。

        參考文獻(xiàn):

        [1] 楊建思, 杜志強(qiáng), 彭正洪, 等. 數(shù)字城市三維景觀模型的建模技術(shù)[J]. 武漢大學(xué)學(xué)報(bào)(工學(xué)版), 2003,36(3):37-40.

        [2] 李俊超, 李樓. AutoCAD Civil 3D和3ds Max Design在道路建模中的應(yīng)用[J]. 測(cè)繪通報(bào), 2013(2):91-94.

        [3] 許捍衛(wèi), 房曉亮, 任家勇, 等. 基于SketchUp的城市三維建模技術(shù)[J]. 測(cè)繪科學(xué), 2011,36(1):213-214.

        [4] 周曉風(fēng). 基于MAYA和VIRTOOLS的虛擬倉(cāng)儲(chǔ)物流系統(tǒng)的研究與實(shí)現(xiàn)[D].上海:上海交通大學(xué), 2011.

        [5] 李廣云, 李明磊, 王力, 等. 地面激光掃描點(diǎn)云數(shù)據(jù)預(yù)處理綜述[J]. 測(cè)繪通報(bào), 2015(11):1-3.

        [6] 劉云峰, 張雪萍, 郭秋燕, 等. 基于Street Factory的城市三維模型構(gòu)建方法研究[J]. 測(cè)繪與空間地理信息, 2014(12):67-70.

        [7] 張?bào)K, 高釗, 陳容. 基于Leica RCD 30傾斜航攝儀和Smart 3D技術(shù)快速進(jìn)行城市三維實(shí)景生產(chǎn)[J]. 測(cè)繪技術(shù)裝備, 2014(3):61-64.

        [8] 王慶棟. 新型傾斜航空攝影技術(shù)在城市建模中的應(yīng)用研究[D]. 蘭州:蘭州交通大學(xué), 2013.

        [9] 王慶棟, 艾海濱, 張力. 利用傾斜攝影和3ds Max技術(shù)快速實(shí)現(xiàn)城市建模[J]. 測(cè)繪科學(xué), 2014,39(6):74-78.

        [10] 魯英燦, 康玉芳, 方旭,等. 設(shè)計(jì)大師SketchUp提高[M].北京: 清華大學(xué)出版社, 2006.

        [11] FLANAGAN D, 松本行弘. Ruby編程語(yǔ)言[M]. 北京: 電子工業(yè)出版社, 2009.

        [12] 李德仁, 肖雄武, 郭丙軒, 等. 傾斜影像自動(dòng)空三及其在城市真三維模型重建中的應(yīng)用[J]. 武漢大學(xué)學(xué)報(bào)(信息科學(xué)版), 2016,41(6):711-721.

        [13] 張春森, 張衛(wèi)龍, 郭丙軒, 等. 傾斜影像的三維紋理快速重建[J]. 測(cè)繪學(xué)報(bào), 2015,44(7):782-790.

        [14] SEGAL L. Class Module: Fiddle [EB/OL].[2016-08-16]. http:∥www.rubydoc.info/stdlib/fiddle/Fiddle.

        [15] BRITT J, NEUROGAMI M. Array [EB/OL].[2015-12-23]. http:∥ruby-doc.org/core-1.9.3/Array.html#method-i-pack.

        [16] SCARPINO M. Automatic SketchUp Creating 3-D Models in Ruby[M]. Hanover: Eclipse Engineering LLC, 2010.

        Building Reconstruction Based on Oblique Photogrammetry and SketchUp Secondary Development

        ZHAN Zongqian,LI Yihui,GUI Xinyuan

        (School of Geodesy and Geomatics, Wuhan University, Wuhan 430079, China)

        Combining the advantages of SketchUp including flexible modeling, learnability and high precision of photogrammetry, with using the technology of SketchUp Ruby secondary development, this paper studied on single-image modeling, the communication between photogrammetry module and SketchUp Ruby scripts and the refinement of 3D model. Finally, it solved the key technical problem of hybrid programming of C++ and Ruby to develop SketchUp plug-in.

        SketchUp Ruby secondary development; oblique photogrammetry; building reconstruction; single-image modeling

        詹總謙,李一揮,桂鑫源.傾斜攝影測(cè)量與SketchUp二次開(kāi)發(fā)技術(shù)相結(jié)合的建筑三維重建[J].測(cè)繪通報(bào),2017(5):71-74.

        10.13474/j.cnki.11-2246.2017.0157.

        2016-10-28;

        2017-01-20

        國(guó)家重點(diǎn)研發(fā)計(jì)劃項(xiàng)目(2016YFB0501403)

        詹總謙(1978—),男,博士,副教授,研究方向?yàn)閿?shù)字?jǐn)z影測(cè)量與計(jì)算機(jī)視覺(jué)。E-mail:zqzhan@sgg.whu.edu.cn

        P23

        A

        0494-0911(2017)05-0071-04

        猜你喜歡
        二次開(kāi)發(fā)紋理建模
        聯(lián)想等效,拓展建?!浴皫щ娦∏蛟诘刃?chǎng)中做圓周運(yùn)動(dòng)”為例
        基于BM3D的復(fù)雜紋理區(qū)域圖像去噪
        軟件(2020年3期)2020-04-20 01:45:18
        淺談基于Revit平臺(tái)的二次開(kāi)發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        淺談Mastercam后處理器的二次開(kāi)發(fā)
        模具制造(2019年3期)2019-06-06 02:11:02
        使用紋理疊加添加藝術(shù)畫(huà)特效
        基于PSS/E的風(fēng)電場(chǎng)建模與動(dòng)態(tài)分析
        電子制作(2018年17期)2018-09-28 01:56:44
        不對(duì)稱半橋變換器的建模與仿真
        西門(mén)子Easy Screen對(duì)倒棱機(jī)床界面二次開(kāi)發(fā)
        TEXTURE ON TEXTURE質(zhì)地上的紋理
        Coco薇(2017年8期)2017-08-03 15:23:38
        消除凹凸紋理有妙招!
        Coco薇(2015年5期)2016-03-29 23:22:15
        桃色一区一区三区蜜桃视频| 人妻被黑人粗大的猛烈进出| 亚洲欧洲日产国码无码AV一| 国产成人综合亚洲av| 亚洲一级天堂作爱av| 日韩美女亚洲性一区二区| 亚洲精品第一国产综合精品| 国产情侣久久久久aⅴ免费| 欧美成人免费看片一区| 亚洲一区二区三区品视频| 加勒比久久综合久久伊人爱| 欧美激欧美啪啪片| 99久久人妻精品免费二区| 天天狠天天透天干天天| 国产免费人成网站在线播放| 东风日产车是不是国产的| 精品综合久久久久久888蜜芽 | 欧美日韩区1区2区3区| 男女干逼视频免费网站| 午夜男女靠比视频免费| 国产电影无码午夜在线播放| 97久久香蕉国产线看观看| 亚洲熟女av超清一区二区三区| 久久精品一区二区三区夜夜| 极品人妻少妇av免费久久| 成人午夜视频精品一区| 国内少妇偷人精品视频免费| 免费人成黄页网站在线观看国内| 沐浴偷拍一区二区视频 | 国产又色又爽又高潮免费视频麻豆 | 99久久久无码国产精品免费砚床| 国产精品制服一区二区| 日本乱熟人妻中文字幕乱码69| 久久精品国产亚洲av果冻传媒| 四川少妇大战4黑人| 欧美性xxx久久| 日本一区二区三区在线视频播放| 国产a级毛片久久久精品毛片| 伊人久久五月丁香综合中文亚洲| 欧美手机在线视频| 国产亚洲av夜间福利在线观看|