CN109753918B - 一种户型图中的墙体识别方法及系统 - Google Patents
一种户型图中的墙体识别方法及系统 Download PDFInfo
- Publication number
- CN109753918B CN109753918B CN201811633304.6A CN201811633304A CN109753918B CN 109753918 B CN109753918 B CN 109753918B CN 201811633304 A CN201811633304 A CN 201811633304A CN 109753918 B CN109753918 B CN 109753918B
- Authority
- CN
- China
- Prior art keywords
- bearing wall
- identification
- module
- straight lines
- house type
- 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
Landscapes
- Image Analysis (AREA)
Abstract
本发明公开一种基于特定构件检测的户型图识别技术,构件包括承重墙、非承重墙、飘窗;首先对于输入图片进行二值化,然后设计规则把特定构件在图片中的位置检测出来。本发明可以自动、高效地识别户型图上的特定构件,能够利用大量户型图片建立户型库,节省大量人力成本。
Description
技术领域
本发明涉及图形学和图像学技术,特别涉及利用图形学和图像学技术设计算法进行特定构件的检测。
背景技术
随着房地产以及装修行业的发展,积累了大量的户型图,而仅仅有这些户型图,已不能满足公司和用户的需求。户型图识别技术可以把户型图中各个特定构件的位置识别出来,生成结构化的数据,从而可以在装修、设计、三维建模和VR体验上得到广泛应用。
目前,户型图识别严重依赖于人力,要识别户型图上的部件,只能依靠人力进行标注,而人工对像素级别的标注很难做到准确。而简单的图形学和图像学算法并不能准确识别户型图的各个部件。因此,需要一种能够自动、高效的识别户型图的方法。
由于墙体相比于其他构件不具备显著的特征,不具有固定的形态,因此,在识别墙体过程中经常出现错误识别和遗漏识别。
发明内容
发明目的:传统的户型图构件识别方法采用直接识别的方法,忽略构件与构件之间的联系,识别率较低。
在本发明中,其主要的技术目的是识别出户型图中的非承重墙,这两个构件如果按照常规的机器识图时,其图像特征与其它的房间、家具等具有一些的相似性,容易出现识别判定错误的问题。
本发明采用的技术构思是:在户型图识别过程中,先通过图像识别出其中容易被判定且准确率较高的构件承重墙和窗户,再利用现实中构件与构件之间存在的设计关系,将已经识别出的构件作为基础,通过设计关系逐步确定出未识别的构件,使得整个识别过程将机器识别与人工先验知识相互融合,从整体上提高了识别的准确率和速度。
技术方案是:
一种户型图中的墙体识别方法,包括承重墙的识别步骤、窗户的识别步骤、非承重墙的识别步骤;
承重墙的识别包括如下步骤:
步骤100,输入二值化处理后的户型图二值图像;
步骤101,找出二值图像的连通区域的外接矩形,如果外接矩形面积小于设定的阈值的连通区域就丢弃,其余连通区域保留;
步骤102,对步骤101中的其余连通区域找出轮廓,作为承重墙;
窗户的识别包括如下步骤:
步骤200,输入二值化处理后的户型图二值图像;
步骤201,找出二值图像的连通区域的内接矩形;
步骤202,当两个内接矩形的长边相邻并且长边之间的垂直距离小于设定的阈值,则判定为普通窗户;
步骤203,当两个以上的内接矩形相互之间共用同一条长边,并且内接矩形的短边之间的距离小于设定阈值,则判定为飘窗;
非承重墙的识别包括如下步骤:
步骤300,输入二值化处理后的户型图二值图像;
步骤301,沿着普通窗户外围轮廓的两条长边向外延伸,得到普通窗户的宽度基准线对;沿着承重墙外围轮廓的两条长边向外延伸,得到延长线,并对于延长线进行如下的判定:①两条直线是平行的;②两条直线之间的平行距离在阈值范围以内;③在这两条直线上存在承重墙的外轮廓线段,且这两条平行外轮廓线段的垂直投影有交集,则将其定义为承重墙的宽度基准线对;
步骤302,对于步骤301中得到的每对宽度基准线,沿着直线方向在这两条直线上做像素扫描,记录下所有与这两条直线相交的线段;对找到的线段进行如下的判定:①两条线段在不同直线上;②两条平行线段的垂直投影有交集;③交集区域内全是白色;④交集区域的长度在阈值范围内,则将两条直线之间的区域其判定为非承重墙;
步骤303,将步骤302中得到的非承重墙对应的线段组合的交集中心存储在洪范起点集合S中,进行洪范操作。
在一个实施方式中,步骤100之后还需要对二值图像进行腐蚀操作。
在一个实施方式中,腐蚀操作之后还需要对二值图像进行膨胀操作。
在一个实施方式中,步骤101中外接矩形使用python自带的measure包进行识别。
在一个实施方式中,步骤101中外接矩形面积小于设定的阈值是指外接矩形面积小于户型图总面积的0.1%。
在一个实施方式中,步骤201中内接矩形使用python自带的measure包识别。
在一个实施方式中,步骤202中小于设定的阈值是指10个像素值以内。
在一个实施方式中,步骤202中小于设定的阈值是指10个像素值以内。
在一个实施方式中,步骤301中在阈值范围以内是指150到400像素。
在一个实施方式中,步骤302中在阈值范围内是指大于30个像素。
在一个实施方式中,步骤303洪范操作是指将白色像素255洪范成黑色0。
在一个实施方式中,在步骤302之后,将非承重墙定义为承重墙,重新执行步骤301和步骤302,若找到新的非承重墙,则将新的非承重墙线段组合的交集中心加入至集合S中;若没有找到新的非承重墙,则停止迭代。
在一个实施方式中,如果洪范的面积大于一个阈值或洪范的范围内有白色像素,那么就撤销这次洪范。
一种户型图中的墙体识别系统,包括承重墙的识别模块、窗户的识别模块、非承重墙的识别模块;
承重墙的识别模块包括:
输入模块,用于输入二值化处理后的户型图二值图像;
外接矩形识别模块,用于找出二值图像的连通区域的外接矩形,如果外接矩形面积小于设定的阈值的连通区域就丢弃,其余连通区域保留;
承重墙判定模块,对外接矩形识别模块中得到的其余连通区域找出轮廓,作为承重墙;
窗户的识别模块包括:
内接矩形识别模块,用于找出二值图像的连通区域的内接矩形;
普通窗户判定模块,用于判定当两个内接矩形的长边相邻并且长边之间的垂直距离小于设定的阈值,则判定为普通窗户;
飘窗判定模块,用于当两个以上的内接矩形相互之间共用同一条长边,并且内接矩形的短边之间的距离小于设定阈值,则判定为飘窗;
非承重墙的识别模块包括:
宽度基准线对识别模块,用于沿着普通窗户外围轮廓的两条长边向外延伸,得到普通窗户的宽度基准线对;沿着承重墙外围轮廓的两条长边向外延伸,得到延长线,并对于延长线进行如下的判定:①两条直线是平行的;②两条直线之间的平行距离在阈值范围以内;③在这两条直线上存在承重墙的外轮廓线段,且这两条平行外轮廓线段的垂直投影有交集,则将其定义为承重墙的宽度基准线对;
非承重墙的判定模块,用于对于步骤301中得到的每对宽度基准线,沿着直线方向在这两条直线上做像素扫描,记录下所有与这两条直线相交的线段;对找到的线段进行如下的判定:①两条线段在不同直线上;②两条平行线段的垂直投影有交集;③交集区域内全是白色;④交集区域的长度在阈值范围内,则将两条直线之间的区域其判定为非承重墙,并将就将这些线段组合的交集中心存储在洪范起点集合S中;
洪范模块,用于对集合S进行洪范操作。
在一个实施方式中,还包括腐蚀操作模块,用于对输入模块中的户型图二值图像进行腐蚀操作。
在一个实施方式中,还包括膨胀操作模块,用于对腐蚀操作后的图像进行膨胀操作。
一种记载有可以上述的运行户型图中的墙体识别方法的程序的计算机可读介质。
有益效果
与现有技术相比,本发明所提供的一种户型图识别的定位方法技术,实施过程中自动、高效、节省人力成本。
附图说明
图1是本发明当中对于承重墙的识别方法
图2是对于户型图进行预处理之后得到的效果图
图3是识别承重墙过程中寻找外接矩形的示意图
图4是识别承重墙过程中对于轮廓线的识别结果图
图5是本发明当中对于窗户的识别方法
图6是普通窗户的识别过程
图7是飘窗的识别过程
图8是常规的二值户型图中非承重墙绘制效果图
图9是对于非承重墙的识别过程中的洪范流程图
图10是识别出的承重墙的示意图
图11是承重墙和窗户的基准线绘制示意图
图12是基准线的关系判定图
图13是存在着未识别的非承重墙的示意图
图14是完全识别出非承重墙的示意图
具体实施方式
为了更清楚地说明本申请的实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。应当理解,给出这些示例性实施例仅是为了使相关领域的技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。
如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
虽然本申请对根据本申请的实施例的系统中的某些系统、模块或单元做出了各种引用,然而,任何数量的不同模块可以被使用并运行在客户端和/或服务器上。所述模块仅是说明性的,并且所述系统和方法的不同方面可以使用不同模块。
同时,本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
本发明提供的户型图中的墙体识别方法,包括承重墙的识别、窗户的识别、非承重墙的识别步骤。
如图1所示,所述的承重墙的识别包括如下步骤:
步骤100,输入二值化处理后的户型图二值图像;
步骤101,对二值图像进行腐蚀操作;
步骤102,对二值图像进行膨胀操作;先腐蚀操作,是为了把细线去除,再膨胀操作是为了把没有去掉的部件大小还原,因为腐蚀操作会减小部件大小。经过101和102两个步骤处理后的户型图如图2所示。
步骤103,从图2中可以看出,连通区域外部可以相互之间构成多个外接矩形,此时找出二值图像的连通区域的外接矩形,如果外接矩形面积小于设定的阈值的连通区域就丢弃,其余保留;由于在户型图当中,一些房间内的功能物品、家具也会在户型图中显示出外接矩形,如果将这些物品也作为墙体进行判定的话,会导致识别错误,因此本步骤的目的通过寻找在连通区域相互之间构成的外接矩形,对于那些面积较小的外接矩形,可以判定其是房间内的功能物件,将其排除,剩余的外接矩形可以判定为是主要的墙体;在本步骤中,二值图像的连通区域的外接矩形,可以使用python自带的measure包实现;在一个实施方式中,判断外接矩形的大小时,可以采用的阈值是户型图总面积的0.1%,这里的面积比即像素比,因为实际面积比于直接像素比结果一致,分子分母同时约去了一个比例值。图3当中显示的是寻找连通区域外接矩形的示意图。
步骤104,找出二值图像的连通区域的轮廓,在本步骤中,找出二值图像的连通区域的轮廓;承重墙因为内部是填充过的,只要通过步骤100到步骤102的操作就可以在去噪的情况下独立出来,在这种情况下,应用python cv2自带的包即可识别出填充过部件的外部轮廓,即承重墙的外轮廓。找到轮廓以后的户型图如图4所示。
步骤105,承重墙墙体识别完成;
如图2所示,如图5所示,窗户的识别包括如下步骤:
步骤200,输入二值化处理后的户型图二值图像;
步骤201,找出二值图像的连通区域的内接矩形;二值图像的连通区域的内接矩形,可以使用python自带的measure包实现;如图6所示,窗户是由两个相邻的矩形所构成的,通过找到内接矩形之后,可以通过判断两个内接矩形的相对位置关系,以此来对窗户进行判断;
步骤202,两个部件对应的内接矩形相邻,且相互之间相邻的距离差距满足10个像素值以内,则定位普通窗;在图6中,两个内接矩形之间的距离小于所规定的阈值,因此将该部件判定为普通窗户;图中只展示了横着的普通窗情况,竖着的同理。
步骤203,两个部件对应的内接矩形共有一条长边,并且短边之间的距离保持一致,长度差值保持在10个像素值以内,则定位飘窗基本部件);如图7,右侧表示的是户型图中的飘窗,通过对内接矩形的检测,可以看出,多个内接矩形共用一条边,里面有两个内接矩形,右侧的是他们共有的长边,同时对这两个内接矩形的短边进行判定,这两个短边之间保持着一定的距离,需要使这个距离小于阈值。
步骤204,窗户识别完成;
在常规的二值户型图中,非承重墙由封闭的黑色线段组成,其内部是白色(如图8),因为没有固定的形态和明显地特征,所以识别非承重墙显得无从下手。而最容易想到的识别方式是以非承重墙的内部点作为基本洪范操作的起点(本发明中所述的洪范操作是指将白色像素255洪范成黑色0,利用洪范起点进行洪范操作在opencv中有专门的函数实现),直接在非承重墙内部对白色区域洪范后,对洪范结果寻找外轮廓。但是,在二值户型图中,许多地方都是白色,所有的白色区域并不都是非承重墙。找到非承重墙的内部点存在着较大的困难。如果洪范起点出错,那么会把户型图的白色背景部分给洪范掉,这是在实际应用中不希望看到的。确定非承重墙内部点很重要。
如图9所示,非承重墙定位方法步骤具体为:
步骤300,输入二值化处理后的户型图二值图像;
步骤301,识别标尺和数字,识别出二值图像中的承重墙和普通窗;
以下主要讨论如何确定洪范起点,即非承重墙内部点。在户型图(如图10)中,墙体的分布情况发现三个规律:①非承重墙的部分墙体通常和承重墙相连;②非承重墙部分墙体通常和普通窗户相连;③墙体之间通常通过门洞间接相连。由于承重墙和普通窗户识别起来比较容易,成功率高,可以利用承重墙和普通窗的先验知识先确定一部分的非承重墙的洪范起点。可以根据前两条规律,发现非承重墙的部分墙体通常和与它相连的承重墙和普通窗共用相同的宽度基准线(在步骤302阐述了宽度基准线的定义);如图11,标注出的直线为承重墙和普通窗的宽度基准线,其中宽度基准线和很多非承重墙线段重合,所以可以利用承重墙和普通窗的宽度基准线来辅助我们找到非承重墙内部点。于是,有步骤302和步骤303。
步骤302,找到所有承重墙和普通窗的竖直方向或水平方向的两条宽度基准线;
对于普通窗户,矩形外轮廓的两条长边的所在平行直线的组合称为普通窗户的宽度基准线对。对于承重墙,满足如下条件的两条直线的组合为承重墙的宽度基准线对:①两条直线是平行的;②两条直线之间的平行距离在阈值范围以内(150到400);③在这两条直线上存在承重墙的外轮廓线段,且这两条平行外轮廓线段的垂直投影有交集,图12描述了线段垂直投影有交集的情况,其中AB与CD是两条平行线段,它们的垂直投影有交集,他们的交集区域为BCDE矩形,交集中心为BCDE的形心,CD和BE的长度为交集区域的长度。
步骤304,对每对宽度基准线,沿着直线方向(方向没有要求)在这两条直线上做像素扫描,记录下所有在这两条直线上的线段。两两配对这些线段,如果满足如下条件:①两条线段在不同直线上;②两条平行线段的垂直投影有交集;③交集区域内全是白色;④交集区域的长度在阈值范围内(大于30个像素);就将这些线段组合的交集中心存储在洪范起点集合S中。S是存储非承重墙的内部洪范起点的集合。以图12为例,如果宽度基准线为AB和CD所在的直线,那么BCDE的形心将加入集合S。
如果仅仅只用S中的点进行一次洪范,会有一部分非承重墙遗漏识别,如图13,其中有两块墙体遗漏识别了。因为第三条规律,门洞难以识别。墙体之间常常通过门洞间接相连,且门洞两边的墙体往往共用相同的宽度基准线。如果S中的点只把一侧门洞的墙识别出来了,而另一侧墙体没有识别出来,如果现在就结束识别势必会遗漏。以图13为例,两处没有识别出来的墙体都是因为门洞有一侧墙体识别出来,而另一侧没有识别出来就停止了继续识别。所以我们只需要将已经识别出的非承重墙当成承重墙,再迭代进行一次步骤303,那么右边就能识别出来。
步骤305,从S中选择一个点,以该点作为洪范起点进行基本洪范操作,从集合S中删除这个点。如果洪范的面积大于一个阈值(10000个像素)或洪范的领域内有白色像素,那么就撤销这次洪范,因为有可能洪范到背景了。
步骤306,如果305步洪范没有被撤销,将新洪范区域当成承重墙,寻找该洪范区域的宽度基准线。
步骤307,如果305步洪范没有被撤销,按照304步骤中的做法,用306得到的宽度基准线找到新的洪范起点,加入集合S,如果没有就不加入。
步骤308,若集合S为空则停止,图8为最终的洪范结果。将洪范结果与最初二值图片取异或运算,再取非运算,再检测外轮廓,识别完成。若集合S不为空,则继续进行步骤305。
基于以上的方法,本发明还提供了一种户型图中的墙体识别系统,包括承重墙的识别模块、窗户的识别模块、非承重墙的识别模块;
承重墙的识别模块包括:
输入模块,用于输入二值化处理后的户型图二值图像;
外接矩形识别模块,用于找出二值图像的连通区域的外接矩形,如果外接矩形面积小于设定的阈值的连通区域就丢弃,其余连通区域保留;
承重墙判定模块,对外接矩形识别模块中得到的其余连通区域找出轮廓,作为承重墙;
窗户的识别模块包括:
内接矩形识别模块,用于找出二值图像的连通区域的内接矩形;
普通窗户判定模块,用于判定当两个内接矩形的长边相邻并且长边之间的垂直距离小于设定的阈值,则判定为普通窗户;
飘窗判定模块,用于当两个以上的内接矩形相互之间共用同一条长边,并且内接矩形的短边之间的距离小于设定阈值,则判定为飘窗;
非承重墙的识别模块包括:
宽度基准线对识别模块,用于沿着普通窗户外围轮廓的两条长边向外延伸,得到普通窗户的宽度基准线对;沿着承重墙外围轮廓的两条长边向外延伸,得到延长线,并对于延长线进行如下的判定:①两条直线是平行的;②两条直线之间的平行距离在阈值范围以内;③在这两条直线上存在承重墙的外轮廓线段,且这两条平行外轮廓线段的垂直投影有交集,则将其定义为承重墙的宽度基准线对;
非承重墙的判定模块,用于对于步骤301中得到的每对宽度基准线,沿着直线方向在这两条直线上做像素扫描,记录下所有与这两条直线相交的线段;对找到的线段进行如下的判定:①两条线段在不同直线上;②两条平行线段的垂直投影有交集;③交集区域内全是白色;④交集区域的长度在阈值范围内,则将两条直线之间的区域其判定为非承重墙;
洪范模块,将非承重墙的判定模块中得到的非承重墙对应的线段组合的交集中心存储在洪范起点集合S中,进行洪范操作用于对集合S进行洪范操作。
在一个实施方式中,还包括腐蚀操作模块,用于对输入模块中的户型图二值图像进行腐蚀操作。
在一个实施方式中,还包括膨胀操作模块,用于对腐蚀操作后的图像进行膨胀操作。
本发明还提供了一种记载有可以上述的运行户型图中的墙体识别方法的程序的计算机可读介质。
此外,本领域技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机可读信号介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等等、或合适的组合形式。计算机可读信号介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读信号介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、射频信号、或类似介质、或任何上述介质的组合。
本申请各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran 2003、Perl、COBOL 2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
Claims (9)
1.一种户型图中的墙体识别方法,其特征在于,包括承重墙的识别步骤、窗户的识别步骤、非承重墙的识别步骤;
承重墙的识别包括如下步骤:
步骤100,输入二值化处理后的户型图二值图像;
步骤101,找出二值图像的连通区域的外接矩形,如果外接矩形面积小于设定的阈值的连通区域就丢弃,其余连通区域保留;
步骤102,对步骤101中的其余连通区域找出轮廓,作为承重墙;
窗户的识别包括如下步骤:
步骤200,输入二值化处理后的户型图二值图像;
步骤201,找出二值图像的连通区域的内接矩形;
步骤202,当两个内接矩形的长边相邻并且长边之间的垂直距离小于设定的阈值,则判定为普通窗户;
步骤203,当两个以上的内接矩形相互之间共用同一条长边,并且内接矩形的短边之间的距离小于设定阈值,则判定为飘窗;
非承重墙的识别包括如下步骤:
步骤300,输入二值化处理后的户型图二值图像;
步骤301,沿着普通窗户外围轮廓的两条长边向外延伸,得到普通窗户的宽度基准线对;沿着承重墙外围轮廓的两条长边向外延伸,得到延长线,并对于延长线进行如下的判定:①两条直线是平行的;②两条直线之间的平行距离在阈值范围以内;③在这两条直线上存在承重墙的外轮廓线段,且这两条平行外轮廓线段的垂直投影有交集,则将其定义为承重墙的宽度基准线对;
步骤302,对于步骤301中得到的每对宽度基准线,沿着直线方向在这两条直线上做像素扫描,记录下所有与这两条直线相交的线段;对找到的线段进行如下的判定:①两条线段在不同直线上;②两条平行线段的垂直投影有交集;③交集区域内全是白色;④交集区域的长度在阈值范围内,则将两条直线之间的区域其判定为非承重墙;
步骤303,将步骤302中得到的非承重墙对应的线段组合的交集中心存储在洪范起点集合S中,进行洪范操作;所述的洪范操作是指将白色像素255转变成黑色0。
2.根据权利要求1所述的户型图中的墙体识别方法,其特征在于,步骤100之后还需要对二值图像进行腐蚀操作;腐蚀操作之后还需要对二值图像进行膨胀操作。
3.根据权利要求1所述的户型图中的墙体识别方法,其特征在于,步骤101中外接矩形使用python自带的measure包进行识别;步骤101中外接矩形面积小于设定的阈值是指外接矩形面积小于户型图总面积的0.1%。
4.根据权利要求1所述的户型图中的墙体识别方法,其特征在于,步骤201中内接矩形使用python自带的measure包识别。
5.根据权利要求1所述的户型图中的墙体识别方法,其特征在于,步骤202中小于设定的阈值是指10个像素值以内;步骤202中小于设定的阈值是指10个像素值以内;步骤301中在阈值范围以内是指150到400像素;步骤302中在阈值范围内是指大于30个像素。
6.根据权利要求1所述的户型图中的墙体识别方法,其特征在于,在步骤302之后,将非承重墙定义为承重墙,重新执行步骤302;若找到新的非承重墙,则将新的非承重墙线段组合的交集中心加入至集合S中;若没有找到新的非承重墙,则停止迭代;如果洪范的面积大于一个阈值或洪范的范围内有白色像素,那么就撤销这次洪范。
7.一种户型图中的墙体识别系统,其特征在于,包括承重墙的识别模块、窗户的识别模块、非承重墙的识别模块;
承重墙的识别模块包括:
输入模块,用于输入二值化处理后的户型图二值图像;
外接矩形识别模块,用于找出二值图像的连通区域的外接矩形,如果外接矩形面积小于设定的阈值的连通区域就丢弃,其余连通区域保留;
承重墙判定模块,对外接矩形识别模块中得到的其余连通区域找出轮廓,作为承重墙;
窗户的识别模块包括:
内接矩形识别模块,用于找出二值图像的连通区域的内接矩形;
普通窗户判定模块,用于判定当两个内接矩形的长边相邻并且长边之间的垂直距离小于设定的阈值,则判定为普通窗户;
飘窗判定模块,用于当两个以上的内接矩形相互之间共用同一条长边,并且内接矩形的短边之间的距离小于设定阈值,则判定为飘窗;
非承重墙的识别模块包括:
宽度基准线对识别模块,用于沿着普通窗户外围轮廓的两条长边向外延伸,得到普通窗户的宽度基准线对;沿着承重墙外围轮廓的两条长边向外延伸,得到延长线,并对于延长线进行如下的判定:①两条直线是平行的;②两条直线之间的平行距离在阈值范围以内;③在这两条直线上存在承重墙的外轮廓线段,且这两条平行外轮廓线段的垂直投影有交集,则将其定义为承重墙的宽度基准线对;
非承重墙的判定模块,用于对于步骤301中得到的每对宽度基准线,沿着直线方向在这两条直线上做像素扫描,记录下所有与这两条直线相交的线段;对找到的线段进行如下的判定:①两条线段在不同直线上;②两条平行线段的垂直投影有交集;③交集区域内全是白色;④交集区域的长度在阈值范围内,则将两条直线之间的区域其判定为非承重墙;
洪范模块,用于将非承重墙的判定模块中得到的非承重墙对应的线段组合的交集中心存储在洪范起点集合S中,并对集合S进行洪范操作;所述的洪范操作是指将白色像素255转变成黑色0。
8.根据权利要求7所述的户型图中的墙体识别系统,其特征在于,还包括腐蚀操作模块,用于对输入模块中的户型图二值图像进行腐蚀操作;还包括膨胀操作模块,用于对腐蚀操作后的图像进行膨胀操作。
9.一种计算机可读取介质,其特征在于,其记载有可以运行权利要求1-6任一项所述的户型图中的墙体识别方法的程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811633304.6A CN109753918B (zh) | 2018-12-29 | 2018-12-29 | 一种户型图中的墙体识别方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811633304.6A CN109753918B (zh) | 2018-12-29 | 2018-12-29 | 一种户型图中的墙体识别方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109753918A CN109753918A (zh) | 2019-05-14 |
CN109753918B true CN109753918B (zh) | 2020-06-09 |
Family
ID=66404330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811633304.6A Active CN109753918B (zh) | 2018-12-29 | 2018-12-29 | 一种户型图中的墙体识别方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109753918B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110210377B (zh) * | 2019-05-30 | 2023-07-28 | 南京维狸家智能科技有限公司 | 一种用于三维户型重建的墙体及门窗信息获取方法 |
CN110851896B (zh) * | 2019-09-29 | 2023-02-21 | 成都信息工程大学 | 基于局部邻域信息的cad外墙体识别方法及装置 |
CN110781851A (zh) * | 2019-10-31 | 2020-02-11 | 武汉攻壳科技有限公司 | 一种基于图片的装修户型图识别方法 |
CN111814575B (zh) * | 2020-06-12 | 2023-02-03 | 上海品览数据科技有限公司 | 一种基于深度学习和图像处理的户型图识别方法 |
CN111859510A (zh) * | 2020-07-28 | 2020-10-30 | 苏州金螳螂三维软件有限公司 | 房间快速换装方法、智能终端 |
CN112633188B (zh) * | 2020-12-24 | 2024-03-15 | 深圳市彬讯科技有限公司 | 户型图的墙体识别方法、装置、设备及介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9576195B2 (en) * | 2010-08-09 | 2017-02-21 | Sk Planet Co., Ltd. | Integrated image searching system and service method thereof |
CN102750553B (zh) * | 2012-06-28 | 2015-06-17 | 北京中科广视科技有限公司 | 一种墙体平面轮廓的识别方法 |
CN106127778B (zh) * | 2016-06-27 | 2019-01-04 | 安徽慧视金瞳科技有限公司 | 一种用于投影交互系统的直线检测方法 |
CN108763606B (zh) * | 2018-03-12 | 2019-12-10 | 江苏艾佳家居用品有限公司 | 一种基于机器视觉的户型图元素自动提取方法与系统 |
-
2018
- 2018-12-29 CN CN201811633304.6A patent/CN109753918B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109753918A (zh) | 2019-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109753918B (zh) | 一种户型图中的墙体识别方法及系统 | |
CN111008597B (zh) | Cad图纸的空间识别方法、装置、电子设备及存储介质 | |
EP3506156A1 (en) | Method and apparatus for detecting lane line, and medium | |
Ebrahimpour et al. | Vanishing point detection in corridors: using Hough transform and K-means clustering | |
CN111611643A (zh) | 户型矢量化数据获得方法、装置、电子设备及存储介质 | |
CN112560862B (zh) | 文本识别方法、装置及电子设备 | |
Sohn et al. | An implicit regularization for 3D building rooftop modeling using airborne lidar data | |
CN111008654A (zh) | 一种户型图中房间的识别方法及系统 | |
CN114782499A (zh) | 一种基于光流和视图几何约束的图像静态区域提取方法及装置 | |
CN109285181B (zh) | 用于识别图像的方法和装置 | |
CN110349138B (zh) | 基于实例分割框架的目标物体的检测方法及装置 | |
CN113570629B (zh) | 去除动态物体的语义分割方法及系统 | |
CN111696072A (zh) | 彩色图像的直线检测方法、装置、电子设备及存储介质 | |
Wang et al. | Fast vanishing point detection method based on road border region estimation | |
CN115829058A (zh) | 训练样本处理方法、跨模态匹配方法、装置、设备和介质 | |
CN110207702B (zh) | 目标定位的方法及装置 | |
CN109615679B (zh) | 一种户型构件的识别方法 | |
CN114926849A (zh) | 一种文本检测方法、装置、设备及存储介质 | |
CN111968103B (zh) | 一种钢卷间距检测方法、系统、介质及电子终端 | |
CN103837135A (zh) | 工件检测方法及其系统 | |
CN115205418B (zh) | 户型图重构方法、装置及电子设备、存储介质 | |
CN115546764A (zh) | 一种障碍物检测方法、装置、设备及存储介质 | |
CN112511725B (zh) | 一种内窥镜圈的自动识别方法、装置、存储介质及终端 | |
CN113658203A (zh) | 建筑物三维轮廓提取及神经网络的训练方法和装置 | |
CN111860084B (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 |