999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

傾斜攝影測量與SketchUp二次開發技術相結合的建筑三維重建

2017-06-19 18:47:24詹總謙李一揮桂鑫源
測繪通報 2017年5期
關鍵詞:二次開發測量模型

詹總謙,李一揮,桂鑫源

(武漢大學測繪學院,湖北 武漢 430079)

傾斜攝影測量與SketchUp二次開發技術相結合的建筑三維重建

詹總謙,李一揮,桂鑫源

(武漢大學測繪學院,湖北 武漢 430079)

結合SketchUp建模靈活、簡單易學及攝影測量精度高的優勢,利用SketchUp Ruby二次開發技術,對傾斜攝影測量單像建模、攝影測量模塊與SketchUp Ruby腳本插件的通信、建模效果等方面進行深入研究,解決了用C++和Ruby聯合開發SketchUp三維建模插件的關鍵技術問題。

SketchUp Ruby二次開發;傾斜攝影測量;建筑物重建;單像建模

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

文獻[8—9]闡述了利用傾斜攝影測量和3ds Max二次開發技術快速實現城市建筑物三維建模的方法,提高了建模的精度和效率。但3ds Max操作復雜,難以在短時間內熟練掌握。而SketchUp簡單易學、視角靈活,建模效率優于3ds Max等軟件,已成為建筑設計、園林景觀等領域的主流軟件[10]。SketchUp采用Ruby作為二次開發語言,是一種簡單快捷、面向對象、自動垃圾回收(Garbage Collection)的腳本語言,開發效率優于C++和Java[11]。

本文在SketchUp軟件環境下,結合傾斜攝影測量技術[12-13],實現單像建模方法,開發了建筑物半自動三維重建插件。該插件可通過人機交互的測量方法,快速、高精度實現建筑物三維模型的幾何重建和紋理映射等過程。

1 技術方法

1.1 技術框架

本方法首先以動態鏈接庫形式制作傾斜攝影測量量測模塊,然后建立Ruby腳本、SketchUp建模API函數、攝影測量量測模塊之間的通信,進而實現SketchUp中攝影測量插件的開發。整體技術框架如圖1所示。

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

圖1 整體技術框架

1.2 數據通信

1.2.1 C++攝影測量模塊向Ruby傳遞數據

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

圖2 Ruby數組、字符串存儲方式

1.2.2 Ruby向C++攝影測量模塊傳遞數據

Ruby中的數組類型為Array,而Array的pack方法可以將數組的值壓縮為一個二進制序列[15],將所有元素的值存儲在一段連續的內存空間中。壓縮得到的二進制序列對象的引用與C++指針類型相同,作為參數傳入攝影測量模塊后可以直接根據下標訪問各元素。

1.3 量測與建模

1.3.1 單像量測

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

圖3 單像量測

1.3.2 模型構建

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

建筑分為平頂房屋和復雜房屋兩類進行創建。對于平頂房屋,先測得頂面,然后在單像視圖中推拉出整個建筑模型(如圖4(a)所示)。對于復雜房屋,則需要進一步測量屋脊線的位置(如圖4(b)所示),然后在SketchUp中構面即可。

圖4 平頂、復雜房屋建模

1.4 紋理自動映射

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

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

(2) 在Ruby腳本中讀取紋理(SketchUp環境中無需將紋理尺寸歸一化為2n大小),并計算模型點的紋理坐標,要求坐標原點定義在紋理圖片的左下角,大小在[0,1]區間內。

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

(4) 調用Face類中的position_material方法,將模型點的物方坐標和對應的紋理坐標對應,實現紋理的透視變換,其效果如圖5所示。

圖5 紋理映射效果

1.5 雙視圖協同建模

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

圖6 雙視圖協同建模

2 建模效果

為驗證本技術的有效性,采用德國某地區的傾斜影像,對幾種典型建筑和街區進行建模,影像與模型效果如圖7—圖9所示。

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

圖8 尖塔房屋建模效果

圖9 復雜房屋建模效果

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

圖10 整體建模效果

3 結 語

利用SketchUp Ruby二次開發技術與傾斜攝影測量原理,對城市建筑物半自動、快速三維重建進行了技術研究和實現,重點解決了C++開發的攝影測量模塊與Ruby腳本插件間的通信等關鍵技術問題,取得了較好的建模效果。

參考文獻:

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

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

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

[4] 周曉風. 基于MAYA和VIRTOOLS的虛擬倉儲物流系統的研究與實現[D].上海:上海交通大學, 2011.

[5] 李廣云, 李明磊, 王力, 等. 地面激光掃描點云數據預處理綜述[J]. 測繪通報, 2015(11):1-3.

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

[7] 張驥, 高釗, 陳容. 基于Leica RCD 30傾斜航攝儀和Smart 3D技術快速進行城市三維實景生產[J]. 測繪技術裝備, 2014(3):61-64.

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

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

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

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

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

[13] 張春森, 張衛龍, 郭丙軒, 等. 傾斜影像的三維紋理快速重建[J]. 測繪學報, 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

詹總謙,李一揮,桂鑫源.傾斜攝影測量與SketchUp二次開發技術相結合的建筑三維重建[J].測繪通報,2017(5):71-74.

10.13474/j.cnki.11-2246.2017.0157.

2016-10-28;

2017-01-20

國家重點研發計劃項目(2016YFB0501403)

詹總謙(1978—),男,博士,副教授,研究方向為數字攝影測量與計算機視覺。E-mail:zqzhan@sgg.whu.edu.cn

P23

A

0494-0911(2017)05-0071-04

猜你喜歡
二次開發測量模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
淺談基于Revit平臺的二次開發
甘肅科技(2020年20期)2020-04-13 00:30:02
把握四個“三” 測量變簡單
淺談Mastercam后處理器的二次開發
模具制造(2019年3期)2019-06-06 02:11:02
滑動摩擦力的測量和計算
滑動摩擦力的測量與計算
西門子Easy Screen對倒棱機床界面二次開發
3D打印中的模型分割與打包
主站蜘蛛池模板: 亚洲成人一区二区三区| 国产三级精品三级在线观看| 四虎在线观看视频高清无码| 91青青在线视频| 激情网址在线观看| 999国内精品视频免费| 露脸一二三区国语对白| 99在线视频免费观看| 亚洲免费毛片| 国产成人精品第一区二区| 国内精自线i品一区202| 国产综合另类小说色区色噜噜| 久久精品电影| 中文精品久久久久国产网址 | yjizz国产在线视频网| 青草免费在线观看| 最新国产在线| 91久久偷偷做嫩草影院电| 青青青亚洲精品国产| 国产日本一线在线观看免费| 国产尤物在线播放| 久久精品丝袜| 五月婷婷中文字幕| 玖玖精品视频在线观看| 欧美一级黄片一区2区| 亚洲第一区精品日韩在线播放| 国产精彩视频在线观看| 国产区在线观看视频| 波多野结衣第一页| 亚洲另类国产欧美一区二区| 永久免费AⅤ无码网站在线观看| 亚洲人成色77777在线观看| 精品撒尿视频一区二区三区| 国产成人一区免费观看| 亚洲日本中文字幕乱码中文 | 日韩精品中文字幕一区三区| 欧美日韩福利| 东京热av无码电影一区二区| 国产精品福利在线观看无码卡| 狠狠躁天天躁夜夜躁婷婷| 欧美一级视频免费| 国产特级毛片| 三区在线视频| 欧美日韩在线亚洲国产人| 国产日韩欧美黄色片免费观看| 亚洲中字无码AV电影在线观看| 亚洲无码在线午夜电影| 青青青国产视频| 国产女人18水真多毛片18精品| 亚洲日韩图片专区第1页| 一级一级一片免费| 国产毛片网站| 国产自在线播放| 久久久亚洲色| 亚洲天堂.com| 亚洲福利片无码最新在线播放| 国产无码制服丝袜| 欧美成人区| 国产精品视频系列专区| 97久久人人超碰国产精品| 无码国内精品人妻少妇蜜桃视频| 日本精品中文字幕在线不卡 | 欧美在线网| 深爱婷婷激情网| 亚洲天堂网在线播放| 在线观看91精品国产剧情免费| 热re99久久精品国99热| 国产h视频免费观看| 日韩欧美中文字幕在线韩免费| 日韩精品专区免费无码aⅴ| 国产欧美成人不卡视频| 日韩欧美中文字幕在线韩免费 | 国产成人1024精品下载| 久热这里只有精品6| 亚洲成A人V欧美综合天堂| 免费不卡视频| a级毛片网| 婷婷激情亚洲| 91免费国产高清观看| 午夜影院a级片| 激情无码视频在线看| 久久综合五月|