一种模型3D效果图的生成方法与流程

文档序号:11775892阅读:616来源:国知局

本发明涉及一种模型3d效果图的生成方法,属于3d效果图生成技术领域。



背景技术:

传统的建筑设计中一般使用平面图来表示建筑物的结构,然而,建筑工程图外在表达上的示意性、内部描述上的多样性、以及对局部环境的依赖性给识别和理解带来困难;人工读图依赖于一定的工程经验、领域知识的积累以及读图时的精神状态,如果缺乏足够的建筑专业知识或缺乏足够的专心与精力,则会出现理解上的偏差,所以这种建筑工程图需要一定的专业知识才能被读懂,并不方便非专业人员对于建筑物空间结构的了解;另外,不同建筑部门对于同一建筑工程图集会可能产生多次重复计算,如计算建筑物需要多少钢材和水泥等信息,布置电线和暖气时仍需要计算其用量等;这些重复的计算将会影响其整体效益的提高;而且传统的二维建筑图已经不能满足人们越来越高的视觉要求;随着三维制图软件的不断发展应用,在很多应用中都需要使用建筑物的三维模型来更加直观和方便的表示建筑物的空间结构。



技术实现要素:

为解决上述问题,本发明提出了一种模型3d效果图的生成方法,能够根据平面图快速生成3d效果图,提高了工作效率。

本发明的模型3d效果图的生成方法,所述方法包括如下步骤:

第一步,输入扫描的模型平面图纸,并进行图像的预处理,

a.针对来源广泛,格式不一的输入图像首先将其统一转为灰度图;

b.进行二值化处理后转为黑白点阵图;

c.采用图像形态学的方法进行去噪处理,将模型部件之外的对象图像剔除;

d.通过霍夫变换提取平面图的两个主要方向,据此旋转矫正使得图像的两个主方向分别与图像的x、y坐标向平行,旋转矫正步骤有助于后续图像分块,并提高矢量化的效果;

第二步,基于积分投影的区域分块,将预处理后的图像通过平均积分投影函数来提取包含墙体线条的图像区域;当图像的某一列或行像素灰度均值发生变化时,这种变化会在该列或行的平均积分投影值上反应出来;平均积分投影函数如下:

式中,

i(x,y)表示点(x,y)处的像素灰度值;

mv(x)表示在区间【y1,y2】上的垂直平均积分投影函数;

mh(y)表示在区间【x1,y2】上的水平平均积分投影函数;

第三步,分块图像的稀疏像素点矢量化,经过积分投影步骤后,整个图像被分解为若干个子图像,每个子图像包含数个竖直或者水平的图像单元,经过处理后获取带宽度的线段集合,进一步获得墙体几何等基本模型信息;

第四步,起始中轴点和追踪方向选取,寻找起始中轴点,扫描线在分块二值图像上以预定步长自上而下扫描;

第五步,稀疏点追踪,根据长度方向,确定搜索顺序;如果长度方向是水平的,则追踪顺序为先右后左;如果长度方向是竖直的,则先下后上;

第六步,结点分割,当违反一个或多个继续追踪条件时,稀疏点追踪程序暂停,启用结点分割程序;结点分割包括以下三步迭代:

a.退回上一个中轴点;

b.调整追踪步长为当前步长的一半;

c.在新的位置处检测继续条件;

如果检测失败,则将步长减半后再执行一次迭代;但若在新位置处的点,所有条件都满足,那么自该点起恢复原始追踪步长,并执行追踪程序;重复迭代,直至追踪步的长度变为0,结点分割程序终止,最后找到的满足所有条件的点为新的中轴点;通过这种处理,程序能够较准确地将十字交叉区域,以交叉点为界分为三条直线段,也能十分精准地将拐角处的折线分为两段;

第七步,线段整合,输入待处理的各条线段,包含起始、终止坐标位置及线宽信息的数据结构;用终止坐标减去起始坐标得到每条线段的向量表示,运用向量求夹角公式,分别求出每两个向量的夹角,若两个向量夹角接近于0,则认为对应的两条线段的中心轴几乎平行;之后判断这两条平行线段的近邻点距离,如果不大于一个给定线宽,则合并两条直线,将由结点分割程序割裂的十字交叉线段整合为一条完整线;

第八步,墙体与附属物识别,在每个分块子图像中,获取若干带宽度的直线段,通过分析这些矢量内容,进一步识别出墙体和门窗等附属物信息;

第九步,三维构建,

a.将模型建模的各种部件与元素,包括地面、墙壁、门、窗和阳台等,定义为形状单元;一个形状单元表达为一个四元组s={n,g,b,p},式中,n表示对象名称;g表示单元的几何信息,特指为多边形网格曲面;b表示带方向的几何包围盒,用于指定单元的位置、体量;p表示单元的其他属性;

b.对用户提供的模型平面图进行识别,并根据识别结果,进行三维模型的快速生成,得到3d效果图。

进一步地,所述第四步的具体操作步骤如下:

a.假设扫描到的第一个黑色像素点记为p0,自p0向右扫描,直至遇到第一个白色像素点记为p0',并获得此次水平运行中点p1(p0和p0'的中点);

b.继续从p1开始,在竖直方向上作方向相反的两次扫描,找到竖直运行的中点p2;同样,由p2找到水平运行中点p3直到pi和pi-1的距离小于事先定义好的阈值停止;该阈值通常为1个像素;这时,pi点被选定为起始中轴点;得到起始中轴点pi后,同时获得pi点处水平和竖直运行的宽;

c.如果水平运行宽度比竖直运行宽度长,则线条在水平上的斜率小于45°,这时将该线段的长度方向设为水平,否则长度方向就设为竖直,线段的宽度方向与长度方向正交。

进一步地,所述第七步中的线宽为墙体线的宽度。

进一步地,所述第八步中,墙体与附属物识别的具体方法如下:先根据线宽判断是否为墙体,若折线的线宽超过阈值时,则认为是实心墙体;若所识别的线宽内容大于一个线宽长度,而小于给定线宽的倍数,则抽取原图像两条线段间的中断处区域生成子图;再调用模式分类方法,识别出具体模型的门窗等附属结构。

再进一步地,所述给定线宽的倍取值为3。

再进一步地,所述模式分类方法包括lda算法。

再进一步地,所述模式分类方法包括以下步骤:

a.制备训练所需的样本图像,将门窗两边与墙体接触位置处的中心轴点坐标记录下来,计算出这两个中心轴点坐标在水平和竖直方向上的距离差,记为dh和dv;然后以该墙体附属物对象的中心位置为中心,分别以dh+2w和dv+2w为区域的长和宽,w为墙体的像素线宽,抽取出包含门窗的子图;再将上述子图统一缩为33x33大小的图像,得到n张样本训练图像;

b.模型训练,读入n张样本训练图像,生成mxn维数据矩阵a,式中,m为每张图像的数据维度;设需将样本分为k类,则使用lda/qr-gsvd算法计算生成mx(k-1)维矩阵g;再将训练样本中的图像组装为m维列向量,分别与g相乘,获得相应的k-1维识别向量;

c.对象识别,将含有门窗的待识别子图也缩小为33x33的标准大小,然后将其与线性嵌入矩阵g相乘,对所得识别向量与训练样本的每类计算结果求欧式距离,并进行最近邻判断,距离最近的类即为待识别图像的类别。

进一步地,所述第九步的由四元组表达的形状单元中单元的其他属性包括模型建模相关的纹理和材质。

进一步地,所述第一步前还包括模型平面图绘制的步骤。

本发明与现有技术相比较,本发明的模型3d效果图的生成方法,对用户提供的模型平面图像进行区域分块,有效地抽取包含墙体对象的子区域,并将分块图像的稀疏点像素矢量化,便于抽取墙体的位置和尺寸等信息;采用线性辨别分析(lda)方法,识别出墙体上的门窗和孔洞等建筑部件,并实现建筑部件在图纸中位置的精确定位,能够根据平面图快速生成3d效果图,提高了工作效率。

具体实施方式

本发明的模型3d效果图的生成方法,所述方法包括如下步骤:

首先确认模型尺寸,并绘制模型平面图;

第一步,输入扫描的模型平面图纸,并进行图像的预处理,

a.针对来源广泛,格式不一的输入图像首先将其统一转为灰度图;

b.进行二值化处理后转为黑白点阵图;

c.采用图像形态学的方法进行去噪处理,将模型部件之外的对象图像剔除;

d.通过霍夫变换提取平面图的两个主要方向,据此旋转矫正使得图像的两个主方向分别与图像的x、y坐标向平行,旋转矫正步骤有助于后续图像分块,并提高矢量化的效果;

第二步,基于积分投影的区域分块,将预处理后的图像通过平均积分投影函数来提取包含墙体线条的图像区域;当图像的某一列或行像素灰度均值发生变化时,这种变化会在该列或行的平均积分投影值上反应出来;平均积分投影函数如下:

式中,

i(x,y)表示点(x,y)处的像素灰度值;

mv(x)表示在区间【y1,y2】上的垂直平均积分投影函数;

mh(y)表示在区间【x1,y2】上的水平平均积分投影函数;

第三步,分块图像的稀疏像素点矢量化,经过积分投影步骤后,整个图像被分解为若干个子图像,每个子图像包含数个竖直或者水平的图像单元,经过处理后获取带宽度的线段集合,进一步获得墙体几何等基本模型信息;

第四步,起始中轴点和追踪方向选取,寻找起始中轴点,扫描线在分块二值图像上以预定步长自上而下扫描;

第五步,稀疏点追踪,根据长度方向,确定搜索顺序;如果长度方向是水平的,则追踪顺序为先右后左;如果长度方向是竖直的,则先下后上;

第六步,结点分割,当违反一个或多个继续追踪条件时,稀疏点追踪程序暂停,启用结点分割程序;结点分割包括以下三步迭代:

a.退回上一个中轴点;

b.调整追踪步长为当前步长的一半;

c.在新的位置处检测继续条件;

如果检测失败,则将步长减半后再执行一次迭代;但若在新位置处的点,所有条件都满足,那么自该点起恢复原始追踪步长,并执行追踪程序;重复迭代,直至追踪步的长度变为0,结点分割程序终止,最后找到的满足所有条件的点为新的中轴点;通过这种处理,程序能够较准确地将十字交叉区域,以交叉点为界分为三条直线段,也能十分精准地将拐角处的折线分为两段;

第七步,线段整合,输入待处理的各条线段,包含起始、终止坐标位置及线宽信息的数据结构;用终止坐标减去起始坐标得到每条线段的向量表示,运用向量求夹角公式,分别求出每两个向量的夹角,若两个向量夹角接近于0,则认为对应的两条线段的中心轴几乎平行;之后判断这两条平行线段的近邻点距离,如果不大于一个给定线宽,则合并两条直线,将由结点分割程序割裂的十字交叉线段整合为一条完整线;

第八步,墙体与附属物识别,在每个分块子图像中,获取若干带宽度的直线段,通过分析这些矢量内容,进一步识别出墙体和门窗等附属物信息;

第九步,三维构建,

a.将模型建模的各种部件与元素,包括地面、墙壁、门、窗和阳台等,定义为形状单元;一个形状单元表达为一个四元组s={n,g,b,p},式中,n表示对象名称;g表示单元的几何信息,特指为多边形网格曲面;b表示带方向的几何包围盒,用于指定单元的位置、体量;p表示单元的其他属性;

b.对用户提供的模型平面图进行识别,并根据识别结果,进行三维模型的快速生成,得到3d效果图。

所述第四步的具体操作步骤如下:

a.假设扫描到的第一个黑色像素点记为p0,自p0向右扫描,直至遇到第一个白色像素点记为p0',并获得此次水平运行中点p1(p0和p0'的中点);

b.继续从p1开始,在竖直方向上作方向相反的两次扫描,找到竖直运行的中点p2;同样,由p2找到水平运行中点p3直到pi和pi-1的距离小于事先定义好的阈值停止;该阈值通常为1个像素;这时,pi点被选定为起始中轴点;得到起始中轴点pi后,同时获得pi点处水平和竖直运行的宽;

c.如果水平运行宽度比竖直运行宽度长,则线条在水平上的斜率小于45°,这时将该线段的长度方向设为水平,否则长度方向就设为竖直,线段的宽度方向与长度方向正交。

所述第七步中的线宽为墙体线的宽度。

所述第八步中,墙体与附属物识别的具体方法如下:先根据线宽判断是否为墙体,若折线的线宽超过阈值时,则认为是实心墙体;若所识别的线宽内容大于一个线宽长度,而小于给定线宽的倍数,则抽取原图像两条线段间的中断处区域生成子图;再调用模式分类方法,识别出具体模型的门窗等附属结构。

所述给定线宽的倍取值为3。

所述模式分类方法包括lda算法。

a.制备训练所需的样本图像,将门窗两边与墙体接触位置处的中心轴点坐标记录下来,计算出这两个中心轴点坐标在水平和竖直方向上的距离差,记为dh和dv;然后以该墙体附属物对象的中心位置为中心,分别以dh+2w和dv+2w为区域的长和宽,w为墙体的像素线宽,抽取出包含门窗的子图;再将上述子图统一缩为33x33大小的图像,得到n张样本训练图像;

b.模型训练,读入n张样本训练图像,生成mxn维数据矩阵a,式中,m为每张图像的数据维度;设需将样本分为k类,则使用lda/qr-gsvd算法计算生成mx(k-1)维矩阵g;再将训练样本中的图像组装为m维列向量,分别与g相乘,获得相应的k-1维识别向量;

c.对象识别,将含有门窗的待识别子图也缩小为33x33的标准大小,然后将其与线性嵌入矩阵g相乘,对所得识别向量与训练样本的每类计算结果求欧式距离,并进行最近邻判断,距离最近的类即为待识别图像的类别。

所述第九步的由四元组表达的形状单元中单元的其他属性包括模型建模相关的纹理和材质。

本发明的模型3d效果图的生成方法,对用户提供的模型平面图像进行区域分块,有效地抽取包含墙体对象的子区域,并将分块图像的稀疏点像素矢量化,便于抽取墙体的位置和尺寸等信息;采用线性辨别分析(lda)方法,识别出墙体上的门窗和孔洞等建筑部件,并实现建筑部件在图纸中位置的精确定位,能够根据平面图快速生成3d效果图,提高了工作效率。

以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1