CN109272569B - 一种autocad建筑二维图快速提取并生成楼层轮廓线的方法 - Google Patents
一种autocad建筑二维图快速提取并生成楼层轮廓线的方法 Download PDFInfo
- Publication number
- CN109272569B CN109272569B CN201810876707.7A CN201810876707A CN109272569B CN 109272569 B CN109272569 B CN 109272569B CN 201810876707 A CN201810876707 A CN 201810876707A CN 109272569 B CN109272569 B CN 109272569B
- Authority
- CN
- China
- Prior art keywords
- point
- pixel
- points
- boundary
- vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Civil Engineering (AREA)
- Architecture (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Structural Engineering (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明涉及一种外形提取的方法,更具体地,涉及一种autocad建筑二维图快速提取并生成楼层轮廓线的方法,本发明提供一种autocad建筑二维图快速提取并生成楼层轮廓线的方法,通过设置避开建筑楼层二维图的一些不需要的突出部分,提取楼层外边界的特征点,并且用这些特征点直接在autocad上直线生成近似的多段线,去描述楼层外边界。本发明把斜直线、圆弧和非斜直线归为三类,分别以不同的像素值表示(有利于接下来取特征点,使得较少的特征点就可以描述上述三类图元),再以像素值为4的像素点表示autocad的图元交点(为了跳出边界进入建筑二维图的突出部分),能快速找到建筑二维图的楼层边界特征点,并用这些特征点生成autocad上的多段线,大大的减少了人工操作。
Description
技术领域
本发明涉及一种外形提取的方法,更具体地,涉及一种autocad建筑二维图快速提取并生成楼层轮廓线的方法。
背景技术
建筑二维图高度复杂,但是些项目仅需要建筑二维图楼层的外边界信息,无需其他图元信息。比如,在建立建筑大楼3D模型的时候,只需要建筑大楼每层楼外围形状,因而只需要外边界线及其信息,而不需要其他内部图元的信息。该方法可以实现快速对autoCAD建筑二维图中的边界特征点进行自动化快速提取,进而利用这些特征点集生成autoCAD多段线,如图1的红色多段线,用此多段线描述建筑楼层图的外边界并进行3D建模和后续的处理,大大减少了人工操作,提高效率。该方法还可以应用在其他复杂图纸,对实体边界(轮廓)进行提取,如机械零件图的外边界(轮廓)的自动化提取等等。
现有的图像处理技术可以比较好的找到图形的外围轮廓,但是不避开下图1这种情况。如图1所示,楼层外边界需要的是红色部分,而一般的图像处理找外轮廓无法避开突出的部分,并且传统的图像处理找外轮廓得到的一系列像素点,并不能直接得到autocad上的多段线实体,无法进行其他操作(如给楼层边界添加名称信息等)。并且对于斜直线,圆弧等图形,传统的图形处理需要用很多像素点去描述,这样会导致生成的autocad多段线顶点过多,对于后续的操作带来很多大不便。如:顶点过多的多段线用于3D建模刷新效率太低。
发明内容
本发明为克服上述现有技术所述的至少一种缺陷,提供一种autocad建筑二维图快速提取并生成楼层轮廓线的方法,通过设置避开建筑楼层二维图的一些不需要的突出部分,提取楼层外边界的特征点,并且用这些特征点直接在autocad上直线生成近似的多段线,去描述楼层外边界。
为解决上述技术问题,本发明采用的技术方案是:
提供一种autocad建筑二维图快速提取并生成楼层轮廓线的方法,具体步骤如下:
在软件autocad中框选边界部分的实体;并且对框选的实体中非水平和非垂直的直线进行分类标注,直线中,非水平和非垂直的直线标记为A,水平和垂直的直线归记为C,圆弧标记为B;
(1)在步骤(1)之后,将直线和直线、直线和圆弧、圆弧和圆弧之间的交点坐标都找出来标记为一个集合D;在autocad软件上通过人机交互,提示让用户点选一条线作为起始外轮廓边界,记为S;
(2)在步骤(2)之后,将所框选的实体进行图像数字化,即将标记后的A、B、C、D、S分别给不同的像素值;
(3)在步骤(3)之后,设定外墙轮廓迭代的方向,设定顺时针为迭代方向,即选定起始外围轮廓、startpoint2点、startpoint1点、endpiont点;
(4)在步骤(4)之后,进行算法的计算,以startpoint1点,statrpiont2点作为一个向量的起点和终点,以startpoint2点的八邻域像素点为搜索范围,再以startpoint2为向量/>的起点,以八邻域像素点作为向量/>的终点;然后把向量/>替换为向量/>再次进行判断,找出新的向量/>一直循环到八邻域出现endpiont点则跳出循环;;
(5)在步骤(5)之后,找到建筑楼层二维图的边界像素点集合D;对这些像素点进行采样,取出特征点;
(6)在步骤(6)之后,图像数字化后,像素图和autocad原始图的坐标的比列都不一样,下面对像素图的像素点坐标做变换,旨在得到autocad原图一致的坐标点,从而便于autocad直接生成楼层外边界多段线。
优选地,在步骤(3)中,设定类A的像素值为1,类B的像素值为2,类C的像素值为3,类S的像素点为0。
优选地,在步骤(4)设定外墙轮廓迭代的方向中,具体步骤如下:
若步骤(4)选择的是最下边界作为起始外围轮廓,则把最左的0像素点作为startpoint2点,次最左的0像素点作为startpoint1点,把最右的0像素点作为endpiont点;若步骤(4)选择的是最上边界作为起始外围轮廓,则把最右的0像素点作为startpoint2点,次最右的0像素点作为startpoint1点,把最左的0像素点作为endpiont点;若步骤(4)选择的是最右边界作为起始外围轮廓,则把最下的0像素点作为startpoint2点,次最下的0像素点作为startpoint1点,把最上的0像素点作为endpiont点;若步骤(4)选择的是最左边界作为起始外围轮廓,则把最上的0像素点作为startpoint2点,次最上的0像素点作为startpoint1点,把最下的0像素点作为endpiont点。
优选地,在步骤(5)中,算法的计算的具体步骤如下:
(i)以步骤(4)中的startpoint1,statrpiont2作为一个向量的起点和终点,以startpoint2的八邻域像素点为搜索范围,再以startpoint2为向量/>的起点,以八邻域像素点作为向量/>的终点(已选的边界像素点不进行重复判断);计算向量/>和向量/>的余弦值;其中/>为像素点坐标;从而得出余弦角的公式为:
(iii)设定再以新找到的像素点的八零域进行上述判断,找出下个外边界像素点;方法的几何含义是:以顺时针的方向循环时,边界像素点总在上一次向量/>的最左边;向量的叉乘的正负能判断/>向量先对/>向量时处于左边还是右边,结合θ角能求出相对与/>向量最左的/>向量,且对应的θ角最大。
优选地,在步骤(iii)中,
在startpoint2的八邻域内有和/>向量,将/>和/>向量分别与/>向量按照上面所述求出θ1和θ2的值,得到θ1<θ2,则选择/>向量为/>对应的像素值为4的点为外边界像素点(contourpoint);接着/>向量变为刚才得到的/>向量,再以contourpoint的八邻域像素点进行下次判断,一直循环到contourpoint的八邻域出现endpoint点则跳出循环;每次搜索的八邻域中,如果含有像素值为4的像素点,在找到外边界像素点(contourpoint)后,把与contourpoint点最近的像素值为4的点激活。
优选地,在步骤(7)中,
对集合D1的每个像素点坐标进行坐标变换,公式如下:
优选地,在步骤(7)中,在autoCAD上输入一个建筑二维图边界的放置基准点setpoint(即在该点生成楼层边界多段线);假设以点集合为D2第一个像素点与setpoint坐标对应。setpoint.x为setpoint的横坐标,setpoint.y因为setpoint的纵坐标。Δx为基准点横坐标和第一个像素点横坐标的差值,Δy为基准点横坐标和第一个像素点纵坐标的差值。
优选地,在步骤(7)中,求1个像素点对应实际工程图中的距离(即使像素点距离大小与实际建筑二维图距离一致),记为R;具体步骤如下:根据建筑二维图的边界外形,选择最上最下点(或最左最右点);若选择的是最上最下点,则记录这两点的纵坐标差Δd,若选择的是最左最右点则记录这两点的横坐标差Δd;对应的求出点集合D1中的最上最下像素点的纵坐标差ΔD(或者最左最右像素点横坐标差ΔD)
优选地,在步骤(7)中,生成建筑二维楼层边界线的具体步骤如下:以点集合D2的第一个点为标准点,对其余的像素点坐标进行R比例变换,假设点集合D2第一个点为rate_point1,其余点为rate_point_n;x代表横坐标,y代表纵坐标;Δpx两点间的横像素坐标差;
Δpx=rate_point_n.x-rate_point1.x
Δpy=rate_point_n.y-rate_pointl.y
rate_point_n.x=rate_point1.x+R*Δpx
rate_point_n.y=rate_point1.y+R*Δpy
记经过该步骤变换的像素点坐标为点集合D3,点集合D3则为建筑二维楼层边界图的特征点,用这个点集D3作为autoCAD的多段线顶点,则可以在基点setpoint处生成建筑二维楼层边界线
与现有技术相比,本发明的有益效果是:
本发明提供一种autocad建筑二维图快速提取并生成楼层轮廓线的方法,通过设置避开建筑楼层二维图的一些不需要的突出部分,提取楼层外边界的特征点,并且用这些特征点直接在autocad上直线生成近似的多段线,去描述楼层外边界。本发明把斜直线、圆弧和非斜直线归为三类,分别以不同的像素值表示(有利于接下来取特征点,使得较少的特征点就可以描述上述三类图元),再以像素值为4的像素点表示autocad的图元交点(为了跳出边界进入建筑二维图的突出部分),能快速找到建筑二维图的楼层边界特征点,并用这些特征点生成autocad上的多段线,大大的减少了人工操作。
附图说明
图1为本发明现有技术处理的图形外围轮廓的结构示意图。
图2为本发明的流程图。
图3为本发明步骤(6)中边界像素点寻找的示意图。
图4为点集合D生成多段线的示意图。
图5为坐标变换的结构示意图。
图6为本发明的具体工作流程图。
图7为算法生成的效果图。
具体实施方式
下面结合具体实施方式对本发明作进一步的说明。其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本专利的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
实施例
如图1至7所示为本发明一种autocad建筑二维图快速提取并生成楼层轮廓线的方法的实施例,具体步骤如下:
(1)在软件autocad中框选边界部分的实体;并且对框选的实体中非水平和非垂直的直线进行分类标注,直线中,非水平和非垂直的直线标记为A,水平和垂直的直线归记为C,圆弧标记为B;
(2)在步骤(1)之后,将直线和直线、直线和圆弧、圆弧和圆弧之间的交点坐标都找出来标记为一个集合D;在autocad软件上通过人机交互,提示让用户点选一条线作为起始外轮廓边界,记为S;
(3)在步骤(2)之后,将所框选的实体进行图像数字化,即将标记后的A、B、C、D、S分别给不同的像素值;
(4)在步骤(3)之后,设定外墙轮廓迭代的方向,设定顺时针为迭代方向,即选定起始外围轮廓、startpoint2点、startpoint1点、endpiont点;
(5)在步骤(4)之后,进行算法的计算,以startpoint1点,statrpiont2点作为一个向量的起点和终点,以startpoint2点的八邻域像素点为搜索范围,再以startpoint2为向量/>的起点,以八邻域像素点作为向量/>的终点;然后把向量/>替换为向量/>再次进行判断,找出新的向量/>一直循环到八邻域出现endpiont点则跳出循环;
(6)在步骤(5)之后,找到建筑楼层二维图的边界像素点集合D;对这些像素点进行采样,取出特征点;
(7)在步骤(6)之后,图像数字化后,像素图和autocad原始图的坐标的比列都不一样,下面对像素图的像素点坐标做变换,旨在得到autocad原图一致的坐标点,从而便于autocad直接生成楼层外边界多段线。
其中,在步骤(3)中,设定类A的像素值为1,类B的像素值为2,类C的像素值为3,类S的像素点为0。
另外,在步骤(4)设定外墙轮廓迭代的方向中,具体步骤如下:
若步骤(4)选择的是最下边界作为起始外围轮廓,则把最左的0像素点作为startpoint2点,次最左的0像素点作为startpoint1点,把最右的0像素点作为endpiont点;若步骤(4)选择的是最上边界作为起始外围轮廓,则把最右的0像素点作为startpoint2点,次最右的0像素点作为startpoint1点,把最左的0像素点作为endpiont点;若步骤(4)选择的是最右边界作为起始外围轮廓,则把最下的0像素点作为startpoint2点,次最下的0像素点作为startpoint1点,把最上的0像素点作为endpiont点;若步骤(4)选择的是最左边界作为起始外围轮廓,则把最上的0像素点作为startpoint2点,次最上的0像素点作为startpoint1点,把最下的0像素点作为endpiont点。
其中,在步骤(5)中,算法的计算的具体步骤如下:
(i)以步骤(4)中的startpoint1,statrpiont2作为一个向量的起点和终点,以startpoint2的八邻域像素点为搜索范围,再以startpoint2为向量/>的起点,以八邻域像素点作为向量/>的终点(已选的边界像素点不进行重复判断);计算向量/>和向量/>的余弦值;其中/>为像素点坐标;从而得出余弦角的公式为:
(iii)设定再以新找到的像素点的八零域进行上述判断,找出下个外边界像素点;方法的几何含义是:以顺时针的方向循环时,边界像素点总在上一次向量/>的最左边;向量的叉乘的正负能判断/>向量先对/>向量时处于左边还是右边,结合θ角能求出相对与/>向量最左的/>向量,且对应的θ角最大。
另外,在步骤(iii)中,
在startpoint2的八邻域内有和/>向量,将/>和/>向量分别与/>向量按照上面所述求出θ1和θ2的值,得到θ1<θ2,则选择/>向量为/>对应的像素值为4的点为外边界像素点(contourpoint);接着/>向量变为刚才得到的/>向量,再以contourpoint的八邻域像素点进行下次判断,一直循环到contourpoint的八邻域出现endpoint点则跳出循环;每次搜索的八邻域中,如果含有像素值为4的像素点,在找到外边界像素点(contourpoint)后,把与contourpoint点最近的像素值为4的点激活。
其中,在步骤(7)中,对集合D1的每个像素点坐标进行坐标变换,公式如下:
另外,在步骤(7)中,在autoCAD上输入一个建筑二维图边界的放置基准点setpoint(即在该点生成楼层边界多段线);假设以点集合为D2第一个像素点与setpoint坐标对应。setpoint.x为setpoint的横坐标,setpoint.y因为setpoint的纵坐标。Δx为基准点横坐标和第一个像素点横坐标的差值,Δy为基准点横坐标和第一个像素点纵坐标的差值。
其中,在步骤(7)中,求1个像素点对应实际工程图中的距离(即使像素点距离大小与实际建筑二维图距离一致),记为R;具体步骤如下:根据建筑二维图的边界外形,选择最上最下点(或最左最右点);若选择的是最上最下点,则记录这两点的纵坐标差Δd,若选择的是最左最右点则记录这两点的横坐标差Δd;对应的求出点集合D1中的最上最下像素点的纵坐标差ΔD(或者最左最右像素点横坐标差ΔD)
另外,在步骤(7)中,生成建筑二维楼层边界线的具体步骤如下:以点集合D2的第一个点为标准点,对其余的像素点坐标进行R比例变换,假设点集合D2第一个点为rate_point1,其余点为rate_point_n;x代表横坐标,y代表纵坐标;Δpx两点间的横像素坐标差;
Δpy=rate_point_n.x-rate_point1.x
Δpy=rate_point_n.y-rate_point1.y
rate_point_n.x=rate_point1.x+R*Δpx
rate_point_n.y=rate_point1.y+R*Δpy
记经过该步骤变换的像素点坐标为点集合D3,点集合D3则为建筑二维楼层边界图的特征点,用这个点集D3作为autoCAD的多段线顶点,则可以在基点setpoint处生成建筑二维楼层边界线。
具体的原理步骤如下:
(1)先在autocad软件上框选边界部分的实体。(由于建筑平面图一般都很复杂,用autocad有选择性的框选边界附近部分,能加速算法的实现)。
(2)把框选的实体中非水平和非垂直的直线识别出来归为类A,把圆弧识别出来作为类B,把除了上述说明的实体识别出来作为类C。
(3)然后把直线和直线、直线和圆弧、圆弧和圆弧之间的交点坐标都找出来作为一个集合D。(这里只求上述三种实体的交点,是因为一般建筑二维图的边界都由这三种实体组成,如果该边界还有其他类型实体组成,则可以把它们的交点加上,交点用于后面的算法,处理方式一样)。人机交互点选一条(最右,最右最上或者最下)边界作为起始外围轮廓边界,记为类S。
(4)把上述的所框选的实体进行图像数字化,数字化过程中,类A、类B、类C、类S分别给不同的像素值(这里假设类A给像素值1,类B给像素值2,类C给像素值3,类S给像素点0),对于3中所述的交点,把交点所在的像素点的像素值设置成4.此外,类S还要记录它是属于类A、B、C的哪一类。
(5)规定外墙轮廓迭代的方向,本说明书以顺时针为迭代方向。若步骤3选择的是最下边界作为起始外围轮廓,则把最左的0像素点极为startpoint2点,次最左的0像素点作为startpoint1点,把最右的0像素点作为endpiont点。(若步骤3选择的是最上边界作为起始外围轮廓,则把最右的0像素点极为startpoint2点,次最右的0像素点作为startpoint1点,把最左的0像素点作为endpiont点。若步骤3选择的是最右边界作为起始外围轮廓,则把最下的0像素点极为startpoint2点,次最下的0像素点作为startpoint1点,把最上的0像素点作为endpiont点。若步骤3选择的是最左边界作为起始外围轮廓,则把最上的0像素点极为startpoint2点,次最上的0像素点作为startpoint1点,把最下的0像素点作为endpiont点。)
(6)算法的主要部分是,以步骤5的startpoint1,statrpiont2作为一个向量的起点和终点,以startpoint2的八邻域像素点为搜索范围,再以startpoint2为向量/>的起点,以八邻域像素点作为向量/>的终点(已选的边界像素点不进行重复判断)。计算向量/>和向量/>的余弦值。其中/>为像素点坐标。
如果向量和向量/>的叉乘值大于0,则θ1=θ1,如果叉乘值小于0,则θ1=-θ1,最后取θ1~θ8中最大θ值对应的向量/>为目标向量,/>向量的终点为我们要找的外边界像素点。然后/>再以新找到的像素点的八零域进行上述判断,找出下个外边界像素点。方法的几何含义是:以顺时针的方向循环时,边界像素点总在上一次向量/>的最左边。向量的叉乘的正负能判断/>向量先对/>向量时处于左边还是右边,结合θ角能求出相对与/>向量最左的/>向量(对应的θ角最大)。如图2所示,在startpoint2的八邻域内有/>和/>向量,将/>和/>向量分别与/>向量按照上面所述求出θ1和θ2的值,得到θ1<θ2,则选择/>向量为/>对应的像素值为4的点为外边界像素点(contourpoint)。接着/>向量变为刚才得到的/>向量,再以contourpoint的八邻域像素点进行下次判断,一直循环到contourpoint的八邻域出现endpoint点则跳出循环。此间所找的contourpoint和像素值为0的像素点构成了建筑平面图的外边界像素点集合D。
(7)上述步骤每次搜索的八邻域中,如果含有像素值为4的像素点,在找到外边界像素点(contourpoint)后,把与contourpoint点最近的像素值为4的点激活。
(8)如果步骤6遇到八邻域中没有可选的像素点了,且没有回到endpoint点,那说明程序进入了突出边界路径。此时需要把循环点跳回到最近激活的像素值为4的点,从这个点八邻域进行步骤6的边界像素点的寻找。寻找过程不能与之前走过的突出边界路径一样,即在最近激活的4像素点八领域寻找新的边界路径。如果循环点跳回最近激活的4像素值点依旧没有新的路径选择,则继续往上一个激活的4像素值点调回,重复上述寻找步骤。举例如图3:红色的方向皆不是我们想要找的建筑二维图边界,当步骤6的循环到了A方向的3像素点时,已经无法继续循环下去,则需要跳回最近激活的4像素点,从该店继续步骤6判断,选择到B方向,此时4像素点再次被激活,又到B方向尽头时,发现无法再进行下去,则又跳回4像素点,找到了C方向。接着按照步骤6会继续走到D方向尽头,又出现无法循环的且没有回到endpoint的情况,则跳回最近激活的4像素点,发现没有新的路径可以走,则该4像素点没被激活,继续往上一个4像素点跳回,则可以找到E方向。如图2所示。
(9)根据前面的步骤,我们能找到建筑楼层二维图的边界像素点集合D。下面则对这些像素点进行采样,因为该集合的点太多,最终生成的autoCAD的多段线不需要这么多点,只需要特征点。如果把全部的点集合D都用来生成多段线,则会使得画出来的autoCAD多段线的点太多,给以后的边界可视化和使用带来很大不便。如图3所示。把步骤10、11、12优化后的点集记为集合D1。
(10)把相邻的像素值为3或者4的点进行判断,是否在统一直线上。具体的方法为:判断相邻的像素值为3的像素点的横坐标或纵坐标是否一致。如果如果一致,说明它们是一条直线上的点,则只取首尾两点,其他的像素点删除。
(11)把相邻的像素点为1的点集只取首尾两点,取完之后,若…11411…这种情况,可以通过判断前一对11像素点的斜率,和后一对11像素点的斜率是否一致,若一致或者两者斜率的差低于阈值K,可将两者合并为一条斜直线。(K的值可以视情况而给)
(12)相邻像素值为2的点集,说明这些点集是圆弧实体组成的,这可以根据实际需要的建筑二维图边界的精度来确定一个阈值F。这个阈值F决定最后边界多段线拟合圆弧的精度。如阈值F取3,即在相邻像素点为2的点集中,每3个像素点,取一个点。
(13)图像数字化后,像素图和autocad原始图的坐标的比列都不一样,下面对像素图的像素点坐标做变换,旨在得到autocad原图一致的坐标点,用于autocad直接生成楼层外边界多段线。一般情况下,图像数字化之后的坐标系如图3左边所示,而autoCAD的坐标系则如图4右边所示,故需要对集合D1的每个像素点坐标进行坐标变换,公式如下:
(14)在autoCAD上输入一个建筑二维图边界的放置基准点setpoint(即在该点生成楼层边界多段线)。假设以点集合为D2第一个像素点与setpoint坐标对应。setpoint.x为setpoint的横坐标,setpoint.y因为setpoint的纵坐标。Δx为基准点横坐标和第一个像素点横坐标的差值,Δy为基准点横坐标和第一个像素点纵坐标的差值。
(15)求1个像素点对应实际工程图中的距离(即使像素点距离大小与实际建筑二维图距离一致),记为R。根据建筑二维图的边界外形,选择最上最下点(或最左最右点)。若选择的是最上最下点,则记录这两点的纵坐标差Δd,若选择的是最左最右点则记录这两点的横坐标差Δd。对应的,求出点集合D1中的最上最下像素点的纵坐标差ΔD(或者最左最右像素点横坐标差ΔD)。
(16)以点集合D2的第一个点为标准点,对其余的像素点坐标进行R比例变换。假设点集合D2第一个点为rate_point1,其余点为rate_point_n。x代表横坐标,y代表纵坐标。Δpx两点间的横像素坐标差
Δpx=rate_point_n.x-rate_point1.x
Δpy=rate_point_n.y-rate_point1.y
rate_point_n.x=rate_point1.x+R*Δpx
rate_point_n.y=rate_point1.y+R*Δpy
记经过步骤16变换的像素点坐标为点集合D3。点集合D3则为建筑二维楼层边界图的特征点,用这个点集D3作为autoCAD的多段线顶点,则可以在基点setpoint处生成建筑二维楼层边界线。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (6)
1.一种autocad建筑二维图快速提取并生成楼层轮廓线的方法,其特征在于,具体步骤如下:
(1)在软件autocad中框选边界部分的实体;并且对框选的实体中非水平和非垂直的直线进行分类标注,直线中,非水平和非垂直的直线标记为A,水平和垂直的直线归记为C,圆弧标记为B;
(2)在步骤(1)之后,将直线和直线、直线和圆弧、圆弧和圆弧之间的交点坐标都找出来标记为一个集合;在autocad软件上通过人机交互,提示让用户点选一条线作为起始外轮廓边界,记为S;
(3)在步骤(2)之后,将所框选的实体进行图像数字化,将标记后的A、B、C、S分别给不同的像素值;设定类A的像素值为1,类B的像素值为2,类C的像素值为3,类S的像素值为0;设定直线和直线、直线和圆弧、圆弧和圆弧之间的交点的像素值为4;
(4)在步骤(3)之后,设定外墙轮廓迭代的方向,设定顺时针为迭代方向,选定起始外围轮廓、startpoint2点、startpoint1点、endpiont点;
(5)在步骤(4)之后,进行算法的计算,以startpoint1点、startpoint2点作为一个向量的起点和终点,以startpoint2点的八邻域像素点为搜索范围,再以startpoint2为向量/>的起点,以startpoint2点的八邻域像素点作为向量/>的终点,已选的外边界像素点不进行重复判断;计算向量/>和向量/>的夹角;向量/>和向量/>记为/>其中(x1,y1),(x2,y2)为像素点坐标;从而得出向量/>和向量/>之间夹角的公式为:
然后进行判断;如果向量和向量/>的叉乘值大于0,则θ1=θ1,如果叉乘值小于0,则θ1=-θ1;最后取θ1~θ8中最大的角度对应的向量/>为目标向量,/>向量的终点为要找的外边界像素点;每次搜索的八邻域中,如果含有像素值为4的像素点,在找到外边界像素点contourpoint后,把与contourpoint点最近的像素值为4的点激活;
然后重新设置向量设定向量/>等于/>并继续以contourpoint点的八邻域像素点为搜索范围,以contourpoint点作为向量/>的起点,以contourpoint点的八邻域像素点作为向量/>的终点,重新进行判断,找出新的向量/>一直循环到contourpoint点的八邻域出现endpoint点则跳出循环;
如果遇到八邻域中没有可选的像素点了,且没有回到endpoint点,那说明程序进入了突出边界路径;此时需要跳回到最近激活的像素值为4的点,从这个点八邻域进行步骤(5)的外边界像素点的寻找;寻找过程不能与之前走过的突出边界路径一样,在最近激活的像素值为4的点的八领域中寻找新的边界路径;如果跳回最近激活的像素值为4的点依旧没有新的路径选择,则继续往上一个激活的像素值为4的点跳回,重复寻找外边界像素点;所找到像素点构成了建筑平面图的外边界像素点集合D;
(6)根据上述得到的建筑平面图的外边界像素点集合D,对这些像素点进行采样,取出特征点,并进行图像数字化处理;
(7)图像数字化后,像素图和autocad原始图的坐标的比例都不一样,然后对像素图的像素点坐标做变换,旨在得到autocad原图一致的坐标点,从而便于autocad直接生成楼层外边界多段线。
2.根据权利要求1所述的autocad建筑二维图快速提取并生成楼层轮廓线的方法,其特征在于,在步骤(4)设定外墙轮廓迭代的方向中,具体步骤如下:
若步骤(4)选择的是最下边界作为起始外围轮廓,则把最左的0像素点作为startpoint2点,次最左的0像素点作为startpoint1点,把最右的0像素点作为endpiont点;若步骤(4)选择的是最上边界作为起始外围轮廓,则把最右的0像素点作为startpoint2点,次最右的0像素点作为startpoint1点,把最左的0像素点作为endpiont点;若步骤(4)选择的是最右边界作为起始外围轮廓,则把最下的0像素点作为startpoint2点,次最下的0像素点作为startpoint1点,把最上的0像素点作为endpiont点;若步骤(4)选择的是最左边界作为起始外围轮廓,则把最上的0像素点作为startpoint2点,次最上的0像素点作为startpoint1点,把最下的0像素点作为endpiont点。
3.根据权利要求1所述的autocad建筑二维图快速提取并生成楼层轮廓线的方法,其特征在于,在步骤(6)中,因集合的点太多,最终生成的autoCAD的多段线不需要这么多点,只需要特征点,需对这些像素点进行采样,具体步骤如下:
(a)对于相邻的像素值为3或者4的点进行判断,判断是否在同一直线上;具体的方法为:判断相邻的像素值为3或4的像素点的横坐标或纵坐标是否一致;如果一致,说明它们是一条直线上的点,则只取首尾两点,其他的像素点删除;
(b)把相邻的像素值为1的点集只取首尾两点,取完之后,若出现…11411…这种情况,通过判断前一对11像素点的斜率和后一对11像素点的斜率是否一致,若一致或者两者斜率的差低于阈值K,将两者合并为一条斜直线;
(c)相邻像素值为2的点集,说明这些点集是圆弧实体组成的,按照实际需要的建筑二维图边界的精度来确定一个阈值F;这个阈值F决定最后边界多段线拟合圆弧的精度;
(d)将步骤(a)、(b)、(c)优化后的点集记为集合D1;
在步骤(7)中,对集合D1的每个像素点坐标进行坐标变换,公式如下:
6.根据权利要求5所述的autocad建筑二维图快速提取并生成楼层轮廓线的方法,其特征在于,在步骤(7)中,生成建筑二维楼层边界线的具体步骤如下:以点集合D2的第一个点为标准点,对其余的像素点坐标进行R比例变换,假设点集合D2第一个点为rate_point1,其余点为rate_point_n;x代表横坐标,y代表纵坐标,rate_point1.x为rate_point1的横坐标,rate_point1.y为rate_point1的纵坐标,rate_point_n.x为rate_point_n的横坐标,rate_point_n.y为rate_point_n的纵坐标;
Δpx两点间的横像素坐标差;
Δpx=rate_point_n.x-rate_point1.x
Δpy=rate_point_n.y-rate_point1.y
rate_point_n.x=rate_point1.x+R*Δpx
rate_point_n.y=rate_point1.y+R*Δpy
记经过该步骤变换的像素点坐标为点集合D3,点集合D3则为建筑二维楼层边界图的特征点,用这个点集D3作为autoCAD的多段线顶点,则在基点setpoint处生成建筑二维楼层边界线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810876707.7A CN109272569B (zh) | 2018-08-03 | 2018-08-03 | 一种autocad建筑二维图快速提取并生成楼层轮廓线的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810876707.7A CN109272569B (zh) | 2018-08-03 | 2018-08-03 | 一种autocad建筑二维图快速提取并生成楼层轮廓线的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109272569A CN109272569A (zh) | 2019-01-25 |
CN109272569B true CN109272569B (zh) | 2023-07-11 |
Family
ID=65153052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810876707.7A Active CN109272569B (zh) | 2018-08-03 | 2018-08-03 | 一种autocad建筑二维图快速提取并生成楼层轮廓线的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109272569B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109934866B (zh) * | 2019-03-07 | 2020-12-08 | 武大吉奥信息技术有限公司 | 一种图斑划分模式的提取方法、拷贝方法及装置 |
CN113392453B (zh) * | 2021-06-10 | 2022-10-11 | 万翼科技有限公司 | 工程图纸中的空间提取方法、装置、电子设备和存储介质 |
CN113781648B (zh) * | 2021-08-06 | 2023-05-26 | 清华大学建筑设计研究院有限公司 | 一种建筑平面交通空间的骨架提取与特征识别方法 |
CN114329715B (zh) * | 2021-12-29 | 2024-08-16 | 深圳须弥云图空间科技有限公司 | 面积边界线生成方法、装置、介质与电子设备 |
CN115797591B (zh) * | 2022-12-05 | 2023-06-09 | 浙江柒和环境艺术设计有限公司 | 一种虚拟建筑模型生成方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011085410A (ja) * | 2009-10-13 | 2011-04-28 | Nippon Steel Corp | エッジ検出装置、エッジ検出方法、およびプログラム |
CN104200212A (zh) * | 2014-06-25 | 2014-12-10 | 西安煤航信息产业有限公司 | 一种基于机载LiDAR数据的建筑物外边界线提取方法 |
CN105046201A (zh) * | 2015-06-19 | 2015-11-11 | 东南大学 | 一种基于形态学对建筑物图像快速识别的方法 |
CN106203476A (zh) * | 2016-06-24 | 2016-12-07 | 浙江大学 | 一种基于最近邻分类与模糊算法的猪头尾轮廓识别方法 |
CN106650608A (zh) * | 2016-10-31 | 2017-05-10 | 广东工业大学 | 一种无定位点试卷中矩形定位框的识别方法 |
CN107622499A (zh) * | 2017-08-24 | 2018-01-23 | 中国东方电气集团有限公司 | 一种基于目标二维轮廓模型的识别与空间定位方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050177315A1 (en) * | 2004-02-06 | 2005-08-11 | Srinka Ghosh | Feature extraction of partial microarray images |
US20070120844A1 (en) * | 2005-11-28 | 2007-05-31 | Baumer Optronic Gmbh | Method and apparatus for the graphical operation of real-time image processing systems |
-
2018
- 2018-08-03 CN CN201810876707.7A patent/CN109272569B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011085410A (ja) * | 2009-10-13 | 2011-04-28 | Nippon Steel Corp | エッジ検出装置、エッジ検出方法、およびプログラム |
CN104200212A (zh) * | 2014-06-25 | 2014-12-10 | 西安煤航信息产业有限公司 | 一种基于机载LiDAR数据的建筑物外边界线提取方法 |
CN105046201A (zh) * | 2015-06-19 | 2015-11-11 | 东南大学 | 一种基于形态学对建筑物图像快速识别的方法 |
CN106203476A (zh) * | 2016-06-24 | 2016-12-07 | 浙江大学 | 一种基于最近邻分类与模糊算法的猪头尾轮廓识别方法 |
CN106650608A (zh) * | 2016-10-31 | 2017-05-10 | 广东工业大学 | 一种无定位点试卷中矩形定位框的识别方法 |
CN107622499A (zh) * | 2017-08-24 | 2018-01-23 | 中国东方电气集团有限公司 | 一种基于目标二维轮廓模型的识别与空间定位方法 |
Non-Patent Citations (4)
Title |
---|
Building Contour Extraction Based on LiDAR Point Cloud;Xu-Qing Zhang et al;《2017 International Conference on Information Science and Technology (IST 2017)》;20171231;第1-7页 * |
Incremental Contour Fusion Based on Line/Line Topological Relation;H f Xing et al;《2010 International Conference on Multimedia Technology》;20101231;第1-5页 * |
基于TIN法向量的边缘检测与建筑物提取方法研究;师顿;《中国优秀硕士学位论文全文数据库 (工程科技Ⅱ辑)》;20160315;第C038-179页 * |
快速成形逆向工程扫描实体重构法研究;章琦 等;《电加工与模具》;20121231;第41-44页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109272569A (zh) | 2019-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109272569B (zh) | 一种autocad建筑二维图快速提取并生成楼层轮廓线的方法 | |
CN112163251B (zh) | 建筑模型单体化方法、装置、存储介质及电子设备 | |
US5990900A (en) | Two-dimensional to three-dimensional image converting system | |
CN106327532A (zh) | 一种单幅图像的三维配准方法 | |
CN105046735B (zh) | 一种基于基元分布的三维表面纹理合成方法 | |
CN109285177A (zh) | 一种数字城市天际线提取方法 | |
US20150138193A1 (en) | Method and device for panorama-based inter-viewpoint walkthrough, and machine readable medium | |
JP2001067463A (ja) | 異なる視点からの複数のフェイシャル画像に基づき新たな視点からのフェイシャル画像を生成するフェイシャル画像生成装置及び方法並びにその応用装置及び記録媒体 | |
WO2022048468A1 (zh) | 平面轮廓识别方法、装置、计算机设备和存储介质 | |
KR20080102385A (ko) | 관심 대상의 영역 및 볼륨에 대한 대화형식 한정을 위한 시스템 및 방법 | |
CN113409332B (zh) | 一种基于三维点云的建筑物平面分割方法 | |
Zhang et al. | Lidar-guided stereo matching with a spatial consistency constraint | |
US20230281927A1 (en) | Three-dimensional point cloud densification device, three-dimensional point cloud densification method, and recording medium | |
JP4160050B2 (ja) | 画像検索プログラム | |
US20210304411A1 (en) | Map construction method, apparatus, storage medium and electronic device | |
CN113781649B (zh) | 一种基于三维扫描点云的建筑物平面图生成方法 | |
Park | Interactive 3D reconstruction from multiple images: A primitive-based approach | |
CN114677388A (zh) | 基于单元分解与空间分割的房间布局划分方法 | |
CN108898679B (zh) | 一种零部件序号自动标注的方法 | |
CN106156471B (zh) | 一种多层次流场可视化方法 | |
JP2016100016A (ja) | 画像分割 | |
Huang | Detecting color boundaries on 3D surfaces by applying edge‐detection image filters on a quad‐remeshing | |
CN112002007A (zh) | 基于空地影像的模型获取方法及装置、设备、存储介质 | |
Iizuka et al. | Efficiently modeling 3D scenes from a single image | |
CN115984467A (zh) | 一种基于无监督学习的多房间室内户型图重建方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |