CN109272569A - 一种autocad建筑二维图快速提取并生成楼层轮廓线的方法 - Google Patents
一种autocad建筑二维图快速提取并生成楼层轮廓线的方法 Download PDFInfo
- Publication number
- CN109272569A CN109272569A CN201810876707.7A CN201810876707A CN109272569A CN 109272569 A CN109272569 A CN 109272569A CN 201810876707 A CN201810876707 A CN 201810876707A CN 109272569 A CN109272569 A CN 109272569A
- Authority
- CN
- China
- Prior art keywords
- point
- pixel
- vector
- autocad
- boundary
- 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.)
- Granted
Links
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为向量的起点,以八邻域像素点作为向量的终点(已选的边界像素点不进行重复判断);计算向量和向量的余弦值;其中为像素点坐标;从而得出余弦角的公式为:
且计算向量和向量的叉乘:
(ii)进行判断;如果向量和向量的叉乘值大于0,则θ1=θ1,如果叉乘值小于0,则θ1=-θ1,最后取θ1~θ8中最大θ值对应的向量为目标向量,向量的终点为我们要找的外边界像素点;
(iii)设定再以新找到的像素点的八零域进行上述判断,找出下个外边界像素点;方法的几何含义是:以顺时针的方向循环时,边界像素点总在上一次向量的最左边;向量的叉乘的正负能判断向量先对向量时处于左边还是右边,结合θ角能求出相对与向量最左的向量,且对应的θ角最大。
优选地,在步骤(iii)中,
在startpoint2的八邻域内有和向量,将和向量分别与向量按照上面所述求出θ1和θ2的值,得到θ1<θ2,则选择向量为对应的像素值为4的点为外边界像素点(contourpoint);接着向量变为刚才得到的向量,再以contourpoint的八邻域像素点进行下次判断,一直循环到contourpoint的八邻域出现endpoint点则跳出循环;每次搜索的八邻域中,如果含有像素值为4的像素点,在找到外边界像素点(contourpoint)后,把与contourpoint点最近的像素值为4的点激活。
优选地,在步骤(7)中,
对集合D1的每个像素点坐标进行坐标变换,公式如下:
为变换后的坐标,为变换前的坐标,并即变换后的点集合为D2。
优选地,在步骤(7)中,在autoCAD上输入一个建筑二维图边界的放置基准点setpoint(即在该点生成楼层边界多段线);假设以点集合为D2第一个像素点与setpoint坐标对应。setpoint.x为setpoint的横坐标,setpoint.y因为setpoint的纵坐标。Δx为基准点横坐标和第一个像素点横坐标的差值,Δy为基准点横坐标和第一个像素点纵坐标的差值。
然后对点集合D2每一个点进行变换,即
优选地,在步骤(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为向量的起点,以八邻域像素点作为向量的终点(已选的边界像素点不进行重复判断);计算向量和向量的余弦值;其中为像素点坐标;从而得出余弦角的公式为:
且计算向量和向量的叉乘:
(ii)进行判断;如果向量和向量的叉乘值大于0,则θ1=θ1,如果叉乘值小于0,则θ1=-θ1,最后取θ1~θ8中最大θ值对应的向量为目标向量,向量的终点为我们要找的外边界像素点;
(iii)设定再以新找到的像素点的八零域进行上述判断,找出下个外边界像素点;方法的几何含义是:以顺时针的方向循环时,边界像素点总在上一次向量的最左边;向量的叉乘的正负能判断向量先对向量时处于左边还是右边,结合θ角能求出相对与向量最左的向量,且对应的θ角最大。
另外,在步骤(iii)中,
在startpoint2的八邻域内有和向量,将和向量分别与向量按照上面所述求出θ1和θ2的值,得到θ1<θ2,则选择向量为对应的像素值为4的点为外边界像素点(contourpoint);接着向量变为刚才得到的向量,再以contourpoint的八邻域像素点进行下次判断,一直循环到contourpoint的八邻域出现endpoint点则跳出循环;每次搜索的八邻域中,如果含有像素值为4的像素点,在找到外边界像素点(contourpoint)后,把与contourpoint点最近的像素值为4的点激活。
其中,在步骤(7)中,对集合D1的每个像素点坐标进行坐标变换,公式如下:
为变换后的坐标,为变换前的坐标,并即变换后的点集合为D2。
另外,在步骤(7)中,在autoCAD上输入一个建筑二维图边界的放置基准点setpoint(即在该点生成楼层边界多段线);假设以点集合为D2第一个像素点与setpoint坐标对应。setpoint.x为setpoint的横坐标,setpoint.y因为setpoint的纵坐标。Δx为基准点横坐标和第一个像素点横坐标的差值,Δy为基准点横坐标和第一个像素点纵坐标的差值。
然后对点集合D2每一个点进行变换,即
其中,在步骤(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的每个像素点坐标进行坐标变换,公式如下:
为变换后的坐标,为变换前的坐标,并即变换后的点集合为D2。
(14)在autoCAD上输入一个建筑二维图边界的放置基准点setpoint(即在该点生成楼层边界多段线)。假设以点集合为D2第一个像素点与setpoint坐标对应。setpoint.x为setpoint的横坐标,setpoint.y因为setpoint的纵坐标。Δx为基准点横坐标和第一个像素点横坐标的差值,Δy为基准点横坐标和第一个像素点纵坐标的差值。
然后对点集合D2每一个点进行变换,即
(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 (9)
1.一种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直接生成楼层外边界多段线。
2.根据权利要求1所述的autocad建筑二维图快速提取并生成楼层轮廓线的方法,其特征在于,在步骤(3)中,设定类A的像素值为1,类B的像素值为2,类C的像素值为3,类S的像素点为0。
3.根据权利要求2所述的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点。
4.根据权利要求3所述的autocad建筑二维图快速提取并生成楼层轮廓线的方法,其特征在于,在步骤(5)中,算法的计算的具体步骤如下:
(i)以步骤(4)中的startpoint1,statrpiont2作为一个向量的起点和终点,以startpoint2的八邻域像素点为搜索范围,再以startpoint2为向量的起点,以八邻域像素点作为向量的终点(已选的边界像素点不进行重复判断);计算向量和向量的余弦值;其中为像素点坐标;从而得出余弦角的公式为:
且计算向量和向量的叉乘:
(ii)进行判断;如果向量和向量的叉乘值大于0,则θ1=θ1,如果叉乘值小于0,则θ1=-θ1,最后取θ1~θ8中最大θ值对应的向量为目标向量,向量的终点为我们要找的外边界像素点;
(iii)设定再以新找到的像素点的八零域进行上述判断,找出下个外边界像素点;方法的几何含义是:以顺时针的方向循环时,边界像素点总在上一次向量的最左边;向量的叉乘的正负能判断向量先对向量时处于左边还是右边,结合θ角能求出相对与向量最左的向量,且对应的θ角最大。
5.根据权利要求4所述的autocad建筑二维图快速提取并生成楼层轮廓线的方法,其特征在于,在步骤(iii)中,
在startpoint2的八邻域内有和向量,将和向量分别与向量按照上面所述求出θ1和θ2的值,得到θ1<θ2,则选择向量为对应的像素值为4的点为外边界像素点(contourpoint);接着向量变为刚才得到的向量,再以contourpoint的八邻域像素点进行下次判断,一直循环到contourpoint的八邻域出现endpoint点则跳出循环;每次搜索的八邻域中,如果含有像素值为4的像素点,在找到外边界像素点(contourpoint)后,把与contourpoint点最近的像素值为4的点激活。
6.根据权利要求4所述的autocad建筑二维图快速提取并生成楼层轮廓线的方法,其特征在于,在步骤(7)中,
对集合D1的每个像素点坐标进行坐标变换,公式如下:
为变换后的坐标,为变换前的坐标,并即变换后的点集合为D2。
7.根据权利要求4所述的autocad建筑二维图快速提取并生成楼层轮廓线的方法,其特征在于,在步骤(7)中,
在autoCAD上输入一个建筑二维图边界的放置基准点setpoint(即在该点生成楼层边界多段线);假设以点集合为D2第一个像素点与setpoint坐标对应。setpoint.x为setpoint的横坐标,setpoint.y因为setpoint的纵坐标。Δx为基准点横坐标和第一个像素点横坐标的差值,Δy为基准点横坐标和第一个像素点纵坐标的差值,
然后对点集合D2每一个点进行变换,即
8.根据权利要求7所述的autocad建筑二维图快速提取并生成楼层轮廓线的方法,其特征在于,在步骤(7)中,求1个像素点对应实际工程图中的距离(即使像素点距离大小与实际建筑二维图距离一致),记为R;具体步骤如下:根据建筑二维图的边界外形,选择最上最下点(或最左最右点);若选择的是最上最下点,则记录这两点的纵坐标差Δd;若选择的是最左最右点则记录这两点的横坐标差Δd;对应的求出点集合D1中的最上最下像素点的纵坐标差ΔD(或者最左最右像素点横坐标差ΔD)
9.根据权利要求8所述的autocad建筑二维图快速提取并生成楼层轮廓线的方法,其特征在于,在步骤(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_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 true CN109272569A (zh) | 2019-01-25 |
CN109272569B 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) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109934866A (zh) * | 2019-03-07 | 2019-06-25 | 武大吉奥信息技术有限公司 | 一种图斑划分模式的提取方法、拷贝方法及装置 |
CN113392453A (zh) * | 2021-06-10 | 2021-09-14 | 万翼科技有限公司 | 工程图纸中的空间提取方法、装置、电子设备和存储介质 |
CN113781648A (zh) * | 2021-08-06 | 2021-12-10 | 清华大学建筑设计研究院有限公司 | 一种建筑平面交通空间的骨架提取与特征识别方法 |
CN114329715A (zh) * | 2021-12-29 | 2022-04-12 | 深圳须弥云图空间科技有限公司 | 面积边界线生成方法、装置、介质与电子设备 |
CN115797591A (zh) * | 2022-12-05 | 2023-03-14 | 浙江柒和环境艺术设计有限公司 | 一种虚拟建筑模型生成方法及系统 |
Citations (8)
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 |
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 | 中国东方电气集团有限公司 | 一种基于目标二维轮廓模型的识别与空间定位方法 |
-
2018
- 2018-08-03 CN CN201810876707.7A patent/CN109272569B/zh active Active
Patent Citations (8)
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 |
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 |
---|
H F XING ET AL: "Incremental Contour Fusion Based on Line/Line Topological Relation", 《2010 INTERNATIONAL CONFERENCE ON MULTIMEDIA TECHNOLOGY》 * |
XU-QING ZHANG ET AL: "Building Contour Extraction Based on LiDAR Point Cloud", 《2017 INTERNATIONAL CONFERENCE ON INFORMATION SCIENCE AND TECHNOLOGY (IST 2017)》 * |
师顿: "基于TIN法向量的边缘检测与建筑物提取方法研究", 《中国优秀硕士学位论文全文数据库 (工程科技Ⅱ辑)》 * |
章琦 等: "快速成形逆向工程扫描实体重构法研究", 《电加工与模具》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109934866A (zh) * | 2019-03-07 | 2019-06-25 | 武大吉奥信息技术有限公司 | 一种图斑划分模式的提取方法、拷贝方法及装置 |
CN109934866B (zh) * | 2019-03-07 | 2020-12-08 | 武大吉奥信息技术有限公司 | 一种图斑划分模式的提取方法、拷贝方法及装置 |
CN113392453A (zh) * | 2021-06-10 | 2021-09-14 | 万翼科技有限公司 | 工程图纸中的空间提取方法、装置、电子设备和存储介质 |
CN113781648A (zh) * | 2021-08-06 | 2021-12-10 | 清华大学建筑设计研究院有限公司 | 一种建筑平面交通空间的骨架提取与特征识别方法 |
CN113781648B (zh) * | 2021-08-06 | 2023-05-26 | 清华大学建筑设计研究院有限公司 | 一种建筑平面交通空间的骨架提取与特征识别方法 |
CN114329715A (zh) * | 2021-12-29 | 2022-04-12 | 深圳须弥云图空间科技有限公司 | 面积边界线生成方法、装置、介质与电子设备 |
CN115797591A (zh) * | 2022-12-05 | 2023-03-14 | 浙江柒和环境艺术设计有限公司 | 一种虚拟建筑模型生成方法及系统 |
CN115797591B (zh) * | 2022-12-05 | 2023-06-09 | 浙江柒和环境艺术设计有限公司 | 一种虚拟建筑模型生成方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109272569B (zh) | 2023-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109272569A (zh) | 一种autocad建筑二维图快速提取并生成楼层轮廓线的方法 | |
CN104376548B (zh) | 一种基于改进型surf算法的图像快速拼接方法 | |
Li et al. | RGB-T semantic segmentation with location, activation, and sharpening | |
CN110827398B (zh) | 基于深度神经网络的室内三维点云自动语义分割方法 | |
CN101388115B (zh) | 一种结合纹理信息的深度图像自动配准方法 | |
CN112907602B (zh) | 一种基于改进k-近邻算法的三维场景点云分割方法 | |
CN104732506A (zh) | 一种基于人脸语义分析的人物照片颜色风格转换方法 | |
CN110796143A (zh) | 一种基于人机协同的场景文本识别方法 | |
CN100369064C (zh) | 一种基于视频内容的人体姿态变形方法 | |
CN114926699B (zh) | 一种室内三维点云语义分类方法、装置、介质及终端 | |
CN111854758A (zh) | 一种基于建筑楼cad图的室内导航地图转换方法及系统 | |
CN110704559B (zh) | 一种多尺度矢量面数据匹配方法 | |
CN109784297A (zh) | 一种基于深度学习的三维目标识别与最优抓取方法 | |
CN114494199A (zh) | 一种基于深度学习的肝脏ct肿瘤分割与分类的方法 | |
CN109859308A (zh) | 基于城市矢量数据的房屋简单三维模型构建方法 | |
CN107480804B (zh) | 一种基于线面空间关系的迷宫求解方法 | |
CN102724530B (zh) | 基于反馈控制的平面视频立体化方法 | |
Zhang et al. | Occfusion: Depth estimation free multi-sensor fusion for 3d occupancy prediction | |
CN107146215A (zh) | 一种基于颜色直方图和凸包的显著性检测方法 | |
Liu et al. | DS Augmentation: Density-semantics augmentation for 3-D object detection | |
CN112561995B (zh) | 一种实时高效的6d姿态估计网络、构建方法及估计方法 | |
Cheng et al. | Understanding depth map progressively: Adaptive distance interval separation for monocular 3d object detection | |
CN107633543B (zh) | 考虑局部拓扑结构的线条形状对应方法 | |
Qian et al. | Image mosaic algorithm based on improved AKAZE | |
CN109509249B (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 |