一种通过建筑的线框图创建3D建筑模型的实现方法技术

技术编号:23150989 阅读:46 留言:0更新日期:2020-01-18 14:11
本发明专利技术公开了一种通过建筑的线框图创建3D建筑模型的实现方法,包括如下步骤:(1)图片处理;处理掉图片中零星细节或图片中失真的地方;(2)线框识别;在步骤(1)处理好的图片基础上,识别出图处中线条的线框;(3)3D几何体生成;在步骤(2)识别出的线框数据基础上,生成一层楼高的几何体形状体;(4)楼层生成;生成建筑的单层结构3D图,包括地板,并可把此层结构复制到具有相同结构的其它楼层;(5)建筑生成;重复上面的步骤(1)‑步骤(4),构建整栋建筑。本发明专利技术的方法建模速度大大提高,建模难度大大降低,可以应用于非3D专业技术人员,关注建筑物的结构,不关注建筑物软装方面的3D模型创建,具有广泛的应用前景。

A method to create 3D building model by building wireframe

【技术实现步骤摘要】
一种通过建筑的线框图创建3D建筑模型的实现方法
本专利技术涉及建筑物3D模型构建
,尤其是一种通过建筑的线框图创建3D建筑模型的实现方法。
技术介绍
三维的表现形式,能够全方位的展现一个物体,具有二维平面图像不可比拟的优势。企业将他们的产品发布成网上三维的形式,能够展现出产品外形的方方面面,加上互动操作,演示产品的功能和使用操作,充分利用互连网高速迅捷的传播优势来展示产品。使用Web3D实现网络上的展示,人可以以第一视角在其中穿行。场景和控制者之间能产生交互,使人产生身临其境的感觉。对于象虚拟展厅、建筑虚拟漫游展示,提供了解决方案。现有技术都是3D建模人员,通过对实体建筑结构的了解,利用3Dmax等构建工具,手工方式通过基本3D最基础的图形元素,一个一个元素的组装设计而成,费时费力。
技术实现思路
本专利技术所要解决的技术问题在于,提供一种通过建筑的线框图创建3D建筑模型的实现方法,建模速度大大提高,建模难度大大降低,可以应用于非3D技术人员。为解决上述技术问题,本专利技术提供一种通过建筑的线框图创建3D建筑模型的实现方法,包括如下步骤:(1)图片处理;处理掉图片中零星细节或图片中失真的地方;(2)线框识别;在步骤(1)处理好的图片基础上,识别出图处中线条的线框;(3)3D几何体生成;在步骤(2)识别出的线框数据基础上,生成一层楼高的几何体形状体;(4)楼层生成;生成建筑的单层结构3D图,包括地板,并可把此层结构复制到具有相同结构的其它楼层;(5)建筑生成;重复上面的步骤(1)-步骤(4),构建整栋建筑。优选的,步骤(1)中,图片处理具体包括如下步骤:(11)判断图片是否是灰度图,如果不是则转换为灰度图;(12)对图片二值化,使整个图像呈现出明显的黑白效果;在二值化过程中同时将图片处理成背景色黑底,实体为白,即1代表白色,0代表黑色;二值化时可根据用户输入的参数做为阈值,当像素值大于阀值时,设定值为1,否则值为0;(13)对图片根据用户输入的参数进行膨胀,将图像中的高亮部分进行膨胀,效果图拥有比原图更大的高亮区域;采用opencv中dilate()函数可以对输入图像用特定结构元素进行膨胀操作,该结构元素确定膨胀操作过程中的邻域的形状;(14)对图片根据用户输入的参数进行腐蚀,删除对象边界的某些像素;在原图的小区域内取局部最小值,因为是二值化图,只有0和255,所以小区域内有一个是0,该像素点就为0;(15)对图片进行滤波;采用双边滤波,滤波器由两个函数构成:一个函数是由几何空间距离决定滤波器系数,另一个是由像素差值决定滤波器系数;双边滤波器中,输出像素的值依赖于邻域像素的值的加权组合;(16)图片截取,根据用户输入的截取图的边缘点集合,在原来的图片上截取用户选择的区域块;(17)图片处理结束。优选的,步骤(12)中,利用opencv的FindContours()方法获取图片中的线条轮廓;在处理轮廓时,根据获取到的线条长度进行过滤。优选的,步骤(13)中,膨胀具体为:膨胀为扩大线条边界,而扩大的宽度同结构元素大小决定,如果物体间有小于结构元素的小间隙,膨胀能让原本分开的线条连接起来;膨胀过程如下:膨胀:X为待处理图像,X为二值化图像,用结构元素B膨胀X;①用结构元素B的原点,遍历图像X的每一个像素点;②当B遍历X时,如X有一个点为黑色,则X对应点B原点的点也为黑色,否则为白色。优选的,步骤(14)中,腐蚀具体为:采用opencv中erode()函数可以对输入图像用特定结构元素进行腐蚀操作,该结构元素确定腐蚀操作过程中的邻域的形状,各点像素值将被替换为对应邻域上的最小值;图像腐蚀示例:其中X为待处理图像,B为结构元素,原点为点origin;①用结构元素B的原点,遍历图像X的每一个像素点;②当B遍历X时,如B上的所有点在X中,则该点保留,否则去除;这样原图中边缘地方就会变成0,达到了瘦身目的。优选的,步骤(3)中,3D几何体生成具体包括如下步骤:(31)得到后端返回的几何体结构数组;(32)解析当前对象数组遍历最大最小值;(33)得到用户输入的建筑单层高度、整体楼层长度与数组中的数据,计算出与实际建筑的比例;(34)创建shape对象,通过数组结构点对应的坐标值,通过MoveTo和LineTo方法,将一个个独立结构点构成连贯的的线条结构;(35)将线性结构做实体判断,生成可编辑材料属性;(36)将层高属性作为几何模型的y轴高度,添加到当前的材料属性中;(37)重新赋值并生成对应的mesh对象,返回当前mesh对象的几何模型结构;(38)将几何模型结构转换成可操作性的几何模型结构;(39)将修改过后的几何结构,通过merge方法添加到总结构中,并重复步骤(32)-(39);(311)重新定义几何模型的材质属性;(311)生成具体模型对象,并将其添加到当前3D引擎中;(312)几何体生成结束。优选的,步骤(4)中,楼层生成具体包括如下步骤:(41)检索楼层,得到当前操作楼层层数,生成楼层GROUP对象,加入到3D引擎中;(42)可手动调整楼层结构,如长、宽、高的缩放,角度的旋转;(43)还可以在已有的楼层结构体上,手动添加一些固定的自定义3D对象组件模型;自定义的特殊几何模型,一般是.obj或.mtl文件,把这些文件加载到3D引擎中;选定需加载的组件,指定放置位置,并手动调整大小;(44)添加动态设置楼层GROUP的显示属性、墙体透明度、墙体颜色等功能;(45)楼层生成结束。优选的,步骤(5)中,建筑生成具体包括如下步骤:(51)检索楼层,对整栋建筑的楼层数进行统一管理;(52)对不同结构的楼层结构,重复步骤(1)、(2)、(3)、(4)中的操作,导入新的楼层图片,生成新的楼层;(53)对于同种结构的楼层,通过选取对应的楼层结构3D对象,进行复制操作,生成其它相同结构的楼层;在复制过程中,要注意如下几点:(1)通过当前操作对象,得到参考楼层的位置偏移量、大小、角度属性;(2)定义生成楼层的材质属性;(3)将对象结构添加到对应楼层的group下,并将指定范围内的楼层添加到对应范分组group下;(4)遍历楼层范围,对重复冲突楼层结构采取删除操作;(54)将得到的楼层添加到3D引擎中;(55)重复步骤(52)-(54),至建筑完成;(56)建筑生成结束。本专利技术最终生成的3D模型数据是以JSON对象的形式存储于数据库或文本文档。可以借助于通用的3D引擎,生成其它的3D模型数据格式。如obj、dae、max、stl、mtl、glb、gltf、svg等多种格式,供其它工具或软件系统利用。本专利技术的有益效果为:本专利技术根本文档来自技高网...

【技术保护点】
1.一种通过建筑的线框图创建3D建筑模型的实现方法,其特征在于,包括如下步骤:/n(1)图片处理;处理掉图片中零星细节或图片中失真的地方;/n(2)线框识别;在步骤(1)处理好的图片基础上,识别出图处中线条的线框;/n(3)3D几何体生成;在步骤(2)识别出的线框数据基础上,生成一层楼高的几何体形状体;/n(4)楼层生成;生成建筑的单层结构3D图,包括地板,并可把此层结构复制到具有相同结构的其它楼层;/n(5)建筑生成;重复上面的步骤(1)-步骤(4),构建整栋建筑。/n

【技术特征摘要】
1.一种通过建筑的线框图创建3D建筑模型的实现方法,其特征在于,包括如下步骤:
(1)图片处理;处理掉图片中零星细节或图片中失真的地方;
(2)线框识别;在步骤(1)处理好的图片基础上,识别出图处中线条的线框;
(3)3D几何体生成;在步骤(2)识别出的线框数据基础上,生成一层楼高的几何体形状体;
(4)楼层生成;生成建筑的单层结构3D图,包括地板,并可把此层结构复制到具有相同结构的其它楼层;
(5)建筑生成;重复上面的步骤(1)-步骤(4),构建整栋建筑。


2.如权利要求1所述的通过建筑的线框图创建3D建筑模型的实现方法,其特征在于,步骤(1)中,图片处理具体包括如下步骤:
(11)判断图片是否是灰度图,如果不是则转换为灰度图;
(12)对图片二值化,使整个图像呈现出明显的黑白效果;在二值化过程中同时将图片处理成背景色黑底,实体为白,即1代表白色,0代表黑色;二值化时可根据用户输入的参数做为阈值,当像素值大于阀值时,设定值为1,否则值为0;
(13)对图片根据用户输入的参数进行膨胀,将图像中的高亮部分进行膨胀,效果图拥有比原图更大的高亮区域;采用opencv中dilate()函数可以对输入图像用特定结构元素进行膨胀操作,该结构元素确定膨胀操作过程中的邻域的形状;
(14)对图片根据用户输入的参数进行腐蚀,删除对象边界的某些像素;在原图的小区域内取局部最小值,因为是二值化图,只有0和255,所以小区域内有一个是0,该像素点就为0;
(15)对图片进行滤波;采用双边滤波,滤波器由两个函数构成:一个函数是由几何空间距离决定滤波器系数,另一个是由像素差值决定滤波器系数;双边滤波器中,输出像素的值依赖于邻域像素的值的加权组合;
(16)图片截取,根据用户输入的截取图的边缘点集合,在原来的图片上截取用户选择的区域块;
(17)图片处理结束。


3.如权利要求2所述的通过建筑的线框图创建3D建筑模型的实现方法,其特征在于,步骤(12)中,利用opencv的FindContours()方法获取图片中的线条轮廓;在处理轮廓时,根据获取到的线条长度进行过滤。


4.如权利要求2所述的通过建筑的线框图创建3D建筑模型的实现方法,其特征在于,步骤(13)中,膨胀具体为:膨胀为扩大线条边界,而扩大的宽度同结构元素大小决定,如果物体间有小于结构元素的小间隙,膨胀能让原本分开的线条连接起来;
膨胀过程如下:
膨胀:X为待处理图像,X为二值化图像,用结构元素B膨胀X;
①用结构元素B的原点,遍历图像X的每一个像素点;
②当B遍历X时,如X有一个点为黑色,则X对应点B原点的点也为黑色,否则为白色。


5.如权利要求2所述的通过建筑的线框图创建3D建筑模型的实现方法,其特征在于,步骤(14)中,腐蚀具体为:采用opencv中erode()函数可以对输入...

【专利技术属性】
技术研发人员:吴易鸿赵伟军任风帆顾新艳
申请(专利权)人:江苏风寰科技有限公司
类型:发明
国别省市:江苏;32

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1