本申请涉及图像处理领域,尤其涉及一种计算建筑剖面图层高的方法、装置、设备及存储介质。
背景技术:
在绘制cad图纸时,可以在cad图纸中标注建筑剖面图层高的相关信息,可以很方便的通过cad图纸标注的信息判断出建筑剖面图层高。但是,在实际绘制cad图纸时,由于建筑剖面图层高并不是必须要标注的,有的设计师不会标准建筑剖面图层高,无法获取实际层高值,造成数据缺失。
技术实现要素:
本申请提供了一种计算建筑剖面图层高的方法、装置、设备及存储介质,用以解决现有技术中无法获取实际层高值,导致数据缺失的问题。
第一方面,本申请实施例提供了一种计算建筑剖面图层高的方法,包括:
获取建筑剖面图的图纸所对应的图像以及图像元数据;其中,所述图像中的建筑正向垂直放置;
从所述图像元数据中,提取所述图纸中至少一个建筑空间内部的空间标识;
从所述图像中提取切块图像,并从所述切块图像中识别天花底板的位置和地板的位置;其中,所述切块图像以所述空间标识的中心为中心;
计算与所述天花底板的位置、所述地板的位置和预设比例尺相对应的实际层高值,将所述实际层高值作为所述建筑剖面图层高。
可选的,从所述切块图像中识别天花底板的位置和地板的位置,包括:
从所述切块图像中,确定贯穿所述切块图像的至少一条直线及获取所述直线对应的行坐标;
判定在各条所述直线中,存在位于所述空间标识之上,且距离所述空间标识的中心最近的第一直线,以及同时存在位于所述空间标识之下,且距离所述空间标识的中心最近的第二直线;
基于所述第一直线的行坐标确定所述天花底板的位置,以及基于所述第二直线的行坐标确定所述地板的位置。
可选的,所述从所述图像中提取切块图像,并从所述切块图像中识别天花底板的位置和地板的位置,包括:
获取窗口的当前尺寸;
提取直线步骤:以所述空间标识的中心为中心,从所述图像中,以当前尺寸的所述窗口提取所述切块图像;确定贯穿所述切块图像的至少一条直线及获取所述直线对应的行坐标;
判定在各条所述直线中,不同时存在位于所述空间标识之上,且距离所述空间标识的中心最近的第一直线,以及位于所述空间标识之下,且距离所述空间标识的中心最近的第二直线;
则增大所述窗口的尺寸,将增大后的窗口的尺寸作为所述窗口的当前尺寸,并再次执行所述提取直线步骤,直至判定在各条所述直线中,存在位于所述空间标识之上,且距离所述空间标识的中心最近的第一直线,以及同时存在位于所述空间标识之下,且距离所述空间标识的中心最近的第二直线;
基于所述第一直线的行坐标确定所述天花底板的位置,以及基于所述第二直线的行坐标确定所述地板的位置。
可选的,所述获取建筑剖面图的图纸所对应的图像,包括:
获取建筑剖面图的图纸的原始图像;
提取所述原始图像的宽度值和高度值;
判断所述高度值是否大于所述宽度值;
如果是,则对所述原始图像进行预处理,得到所述图像;
否则,对所述原始图像进行旋转,并对旋转后的图像进行预处理,得到所述图像。
可选的,所述预处理包括:灰度处理、二值化处理和归一化处理;
所述确定贯穿所述切块图像的至少一条直线及获取所述直线对应的行坐标,包括:
扫描所述切块图像的每一行,对每一行的像素值进行如下处理:
计算所述行的像素值之和;
判断所述行的像素值之和是否等于所述窗口的宽度阈值;
如果是,则确定所述行存在贯穿所述切块图像的直线,并获取所述行的行坐标。
可选的,所述从所述切块图像中,确定贯穿所述切块图像的至少一条直线及获取所述直线对应的行坐标,包括:
获取所述切块图像的最小行坐标值、最大行坐标值、最小列坐标值和最大列坐标值;
从所述切块图像中,提取至少一条直线,以及所述直线所对应的起始坐标值和终止坐标值;
针对每一条直线,判断所述直线的起始坐标值和终止坐标值是否同时满足以下条件:
所述起始坐标值和/或所述终止坐标值中的行坐标值大于或等于所述切块图像的最小行坐标值,且小于或等于所述切块图像的最大行坐标值;
所述起始坐标值中的列坐标值小于或等于所述切块图像的最小列坐标值,并且所述终止坐标值中的列坐标值大于或等于所述切块图像的最大列坐标值;
如果满足,则确定所述直线贯穿所述切块图像,并记录所述直线的行坐标。
可选的,所述以所述空间标识的中心为中心,从所述图像中,以当前尺寸的所述窗口提取所述切块图像,包括:
获取所述窗口的宽度阈值和高度阈值;
获取所述空间标识的中心的中心行坐标值和中心列坐标值;
判断所述中心行坐标值减去所述高度阈值的一半的差是否大于或等于0;
如果是,则所述切块图像的最小行坐标值为所述中心行坐标值减去所述高度阈值的一半的差;否则,确定所述切块图像的最小行坐标值为0;
以及,判断所述中心行坐标值加上所述高度阈值的一半的和是否大于或等于所述图像的最大行坐标值;
如果是,则确定所述切块图像的最大行坐标值为所述图像的最大行坐标值;否则,确定所述切块图像的最大行坐标值为所述中心行坐标值加上所述高度阈值的一半的和;
以及,判断所述中心列坐标值减去所述宽度阈值的一半的差是否大于等于0;
如果是,则确定所述切块图像的最小列坐标值为所述中心列坐标值减去所述宽度阈值的一半的差;否则,确定所述切块图像的最小列坐标值为0;
以及,判断所述中心列坐标值加上所述宽度阈值的一半的和是否大于或等于所述图像的最大列坐标值;
如果是,则确定所述切块图像的最大列坐标值为所述图像的最大列坐标值;否则,确定所述切块图像的最大列坐标值为所述中心列坐标值加上所述宽度阈值的一半的和;
获取通过所述切块图像的最小行坐标值、所述切块图像的最大行坐标值、所述切块图像的最小列坐标值和所述切块图像的最大列坐标值确定的所述切块图像。
可选的,所述以当前尺寸的窗口提取所述切块图像之后,还包括:
对所述切块图像进行复制,并获得复制的所述切块图像的坐标值,以及复制的所述切块图像的坐标值相对于所述图像的坐标值的仿射变换矩阵;
确定贯穿复制的所述切块图像的至少一条直线;
所述获取所述直线对应的行坐标,包括:
确定所述直线在复制的所述切块图像中的复制行坐标值;
根据所述复制行坐标值和所述仿射变换矩阵,计算所述直线在所述图像中所对应的行坐标值,得到所述行坐标。
第二方面,本申请实施例提供了一种计算建筑剖面图层高的装置,包括:
获取模块,用于获取建筑剖面图的图纸所对应的图像以及图像元数据;其中,所述图像中的建筑正向垂直放置;
提取模块,用于从所述图像元数据中,提取所述图纸中至少一个建筑空间内部的空间标识;
识别模块,用于从所述图像中提取切块图像,并从所述切块图像中识别天花底板的位置和地板的位置;其中,所述切块图像以所述空间标识的中心为中心;
计算模块,用于计算与所述天花底板的位置、所述地板的位置和预设比例尺相对应的实际层高值,将所述实际层高值作为所述建筑剖面图层高。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的计算建筑剖面图层高的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的计算建筑剖面图层高的方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该方法,从建筑剖面图图纸的图像中,提取切块图像,从切块图像中提取天花底板的位置和地板的位置,根据天花底板的位置和地板的位置和预设比例尺计算实际层高值,能够准确获取到建筑剖面图的层高,解决了现有技术中无法获取实际层高值,导致数据缺失的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种计算建筑剖面图层高的方法流程图;
图2为本申请实施例提供的识别天花底板的位置和地板的位置的方法流程图;
图3为本申请实施例提供的一种计算建筑剖面图层高的装置的结构示意图;
图4为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对现有技术中,无法获取实际层高值,导致数据缺失的问题,本申请实施例提供了一种计算建筑剖面图层高的方法,如图1所示,该方法包括:
步骤101,获取建筑剖面图的图纸所对应的图像以及图像元数据;其中,图像中的建筑正向垂直放置;
其中,建筑剖面图的图纸所对应的图像,可以从cad(计算机辅助设计,computeraideddesign)图纸中,通过虚拟打印得到。图像元数据可以通过cad图纸解析得到,也可以从图像中通过ocr(opticalcharacterrecognition,光学字符识别)技术获取到。
在具体实现时,首先,基于cad图纸获取到建筑剖面图的图纸的原始图像;提取原始图像的宽度值和高度值;判断高度值是否大于宽度值;如果是,则对原始图像进行预处理,得到图像;否则,对原始图像进行旋转,并对旋转后的图像进行预处理,得到图像。
通常,建筑整体的竖向高度是大于横向长度的。如果识别到原始图像中的高度值比宽度值大,说明图纸中建筑是正向垂直放置的,则直接对原始图像进行预处理即可;否则,判定图纸中的建筑水平放置(倒着放置),则需要对原始图像进行旋转,再进行预处理,得到图像。
其中,预处理可以通过两种方式实现:
第一种,预处理依次包括:灰度处理、二值化处理和归一化处理,以减少后续的运算量,同时能够通过归一化后的图像获知哪些位置是有线条,哪些位置是没有线条的,其中,在归一化后的图像中,像素值为1的位置代表有线条,像素值为0的位置代表无线条,从而为后续提取天花底板的位置以及地板的位置减少运算量,提供便利。在具体实现时,二值化处理的阈值可以选择220。
第二种,利用霍夫直线变换实现预处理过程。通过霍夫直线变换提取到图像中所有的直线。天花底板的位置以及地板的位置从图纸中看都是直线,在预处理过程中得到图纸中的直线后,后续可以从得到的直线中确定天花底板的位置以及地板的位置。
步骤102,从图像元数据中,提取图纸中至少一个建筑空间内部的空间标识;
在一张图纸中可能有多个建筑空间,例如:一个三室的户型,具有三个房间、一个厕所、一个厨房和一个客厅,则该户型共具有6个建筑空间,每个建筑空间的内部具有一个空间标识,优选的,空间标识位于建筑空间的中间位置。在绘制图纸时,空间标识可以是文本,例如:三个房间这三个建筑空间的空间标识可以是主卧、次卧和客房等文本;也可以采用其他类型的空间标识,例如:五角星、三角形、一个简笔画人型等来标识建筑空间。
步骤103,从图像中提取切块图像,并从切块图像中识别天花底板的位置和地板的位置;其中,切块图像以空间标识的中心为中心;
在具体实现时,可以利用窗口从图像中提取切块图像。举例说明,若窗口宽度阈值为w,高度阈值为h,以空间标识的中心为中心,提取w*h大小的切块图像。
在具体实现时,设计师标注的空间标识不一定在建筑空间的正中心,在提取切块图像时,窗口可能会到达图像的边界,为了准确的得到切块图像的坐标值范围,从窗口的上下左右四个方向判断是否到达了图像的边界,从而得到切块图像的坐标值范围,具体方法如下:
获取窗口的宽度阈值和高度阈值;获取空间标识的中心的中心行坐标值和中心列坐标值;判断中心行坐标值减去高度阈值的一半的差是否大于或等于0;如果是,则切块图像的最小行坐标值为中心行坐标值减去高度阈值的一半的差;否则,确定切块图像的最小行坐标值为0;其中,如果是,则说明在切块时,没有达到图像的上边界,否则,就认为到达了图像的上边界,此时,切块图像的最小行坐标为0;以及,判断中心行坐标值加上高度阈值的一半的和是否大于或等于图像的最大行坐标值;如果是,则确定切块图像的最大行坐标值为图像的最大行坐标值;否则,确定切块图像的最大行坐标值为中心行坐标值加上高度阈值的一半的和;其中,如果是,则说明在切块时,达到了图像的下边界,此时,切块图像的最大行坐标为图像的最大行坐标值;否则,没有到达图像的上边界。以及,判断中心列坐标值减去宽度阈值的一半的差是否大于等于0;如果是,则确定切块图像的最小列坐标值为中心列坐标值减去宽度阈值的一半的差;否则,确定切块图像的最小列坐标值为0;其中,如果是,则说明在切块时,没有达到图像的左边界,否则,就认为到达了图像的左边界,此时,切块图像的最小列坐标为0;以及,判断中心列坐标值加上宽度阈值的一半的和是否大于或等于图像的最大列坐标值;如果是,则确定切块图像的最大列坐标值为图像的最大列坐标值;否则,确定切块图像的最大列坐标值为中心列坐标值加上宽度阈值的一半的和;其中,如果是,则说明在切块时,达到了图像的右边界,此时,切块图像的最大列坐标为图像的最大列坐标值;否则,没有到达图像的右边界。获取通过切块图像的最小行坐标值、切块图像的最大行坐标值、切块图像的最小列坐标值和切块图像的最大列坐标值确定的切块图像。
对于宽度阈值和高度阈值的取值可以根据设计师的经验设置,一般宽度阈值取600毫米等效的像素;高度阈值取3000毫米等效的像素。
步骤104,计算与天花底板的位置、地板的位置和预设比例尺相对应的实际层高值,将实际层高值作为建筑剖面图层高。
根据天花底板的位置和地板的位置能够计算得到天花底板和地板之间的高度差,再根据图纸上标注的预设比例尺,能够计算得到天花底板和地板之间的实际高度差,实际高度差即为实际层高值。
举例说明:根据天花底板的位置和地板的位置计算得到天花底板和地板之间的高度差为a;图纸上标注的预设比例尺为1:b,则利用a除以1:b,得到实际层高值。
在本申请实施例中,从图纸的图像中,提取切块图像,从切块图像中提取天花底板的位置和地板的位置,根据天花底板的位置和地板的位置和预设比例尺计算实际层高值,能够准确获取到建筑剖面图的层高,解决了现有技术中无法获取实际层高值,导致数据缺失的问题。
此外,本申请实施例中还提供了从图像中提取切块图像,并从切块图像中识别天花底板的位置和地板的位置的具体方法,参见图2,该方法包括:
步骤201,获取窗口的当前尺寸;
步骤202,以空间标识的中心为中心,从图像中,以当前尺寸的窗口提取切块图像;确定贯穿切块图像的至少一条直线及获取直线对应的行坐标;
其中,以空间标识的中心为中心,从图像中,以当前尺寸的窗口提取切块图像的具体方法可以参见对步骤103的解释。
在预处理时,采用了归一化和霍夫直线变换两种方式,预处理的不同,决定了后续确定贯穿切块图像的直线的方法不同。在确定贯穿切块图像的直线时,可以采用以下两种方法实现:
第一种,若预处理时采用的是灰度处理、二值化处理和归一化处理的处理方式,则可以扫描切块图像的每一行,对每一行的像素值进行如下处理:计算行的像素值之和;判断行的像素值之和是否等于窗口的宽度阈值;如果是,则确定该行存在贯穿切块图像的直线,并获取行的行坐标。
由于经过了归一化处理,在切块图像中的像素值只包含有0或者1,像素值为1的位置代表绘制有线条,像素值为0的位置代表未绘制线条。通过判定某一行整行都有像素值来确定这一行存在贯穿切块图像的直线,并获取该行的行坐标。
第二种,若预处理时采用霍夫变换的处理方式,则可以获取霍夫直线变换得到的直线的起始坐标值和终止坐标值,判断起始坐标值和终止坐标值是不是在切块图像的坐标的范围之外或者边界,如果是,则判定该直线贯穿了切块图像。具体的,可以通过如下方法确定贯穿切块图像的至少一条直线及直线对应的行坐标:
获取切块图像的最小行坐标值、最大行坐标值、最小列坐标值和最大列坐标值;从切块图像中,提取至少一条直线,以及直线所对应的起始坐标值和终止坐标值;在具体实现时,可以通过读取霍夫直线变换的结果提取到直线。
针对每一条直线,判断直线的起始坐标值和终止坐标值是否同时满足以下条件:起始坐标值和/或终止坐标值中的行坐标值大于或等于切块图像的最小行坐标值,且小于或等于切块图像的最大行坐标值;起始坐标值中的列坐标值小于或等于切块图像的最小列坐标值,并且终止坐标值中的列坐标值大于或等于切块图像的最大列坐标值;如果满足,则确定直线贯穿切块图像,并记录直线的行坐标。
在进行图像切块时,可以采用虚切的方式,也可以采用实切的方式。在虚切时,得到切块图像的坐标值仍然保留与图像中相同的坐标值;如果是实切,则对切块图像进行复制,并获得复制的切块图像的坐标值,以及复制的切块图像的坐标值相对于图像的坐标值的仿射变换矩阵。
其中,对于复制的切块图像的行坐标,则重新定义,此时,相应的获取到复制的切块图像的坐标值相对于图像的坐标值的仿射变换矩阵,其中,复制的切块图像的坐标值=图像的坐标值*仿射变换矩阵。在获取直线对应的行坐标时,对于虚切的方式,在切块图像中获取到的直线的行坐标即为图像中的行坐标;对于实切的方式,则先确定该直线在复制的切块图像中的复制行坐标值;再根据复制行坐标值和仿射变换矩阵,计算直线在图像中所对应的行坐标值,得到行坐标。
步骤203,判断在各条直线中,是否同时存在位于空间标识之上,且距离空间标识的中心最近的第一直线,以及位于空间标识之下,且距离空间标识的中心最近的第二直线;如果是,则执行步骤205;否则,执行步骤204;
在建筑的图纸中,天花底板和地板都是比其他图纸线条更长的水平直线,通过提取图像中的天花底板所在的直线,以及地板所在的直线,能够确定天花底板的位置和地板的位置。具体的,从贯穿切块图像的直线中,判断是否同时存在位于空间标识之上,且距离空间标识的中心最近的第一直线,以及位于空间标识之下,且距离空间标识的中心最近的第二直线,如果是,则认为在切块图像中提取到了天花底板所在的直线(第一直线)和地板所在的直线(第二直线);此时计算第一直线和第二直线之间的距离,即可得到图纸上天花底板和地板之间的距离,即天花底板和底板之间的高度差;否则,则判定切块时,所采用的窗口的当前尺寸较小,没有同时将天花底板所在的直线(第一直线)和地板所在的直线(第二直线)同时提取到切块图像中,此时,需要增大窗口的尺寸,以同时将天花底板所在的直线(第一直线)和地板所在的直线(第二直线)提取到切块图像中。
步骤204,增大窗口的尺寸,将增大后的窗口的尺寸作为窗口的当前尺寸,并重复执行步骤202和步骤203;
在增大窗口的尺寸时,可以将窗口的尺寸翻倍。
步骤205,基于第一直线的行坐标确定天花底板的位置,以及基于第二直线的行坐标确定地板的位置。
本申请实施例中提供了识别天花底板的位置和地板的位置的具体方法,为获取到建筑剖面图层高提供了重要基础。另外,在计算实际层高时,天花底板和天花顶板(实际是楼上建筑空间的地板)两条直线之间实际是楼层板,并不计入层高的范围内。因此,在本申请实施例中,提取的是天花底板所在的第一直线,以及地板所在的第二直线,未将楼层板的厚度计入到层高,提取到的层高更加准确。
基于同一构思,本申请实施例中提供了一种计算建筑剖面图层高的装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图3所示,该装置主要包括:
获取模块301,用于获取建筑剖面图的图纸所对应的图像以及图像元数据;其中,图像中的建筑正向垂直放置;
提取模块302,用于从图像元数据中,提取图纸中至少一个建筑空间内部的空间标识;
识别模块303,用于从图像中提取切块图像,并从切块图像中识别天花底板的位置和地板的位置;其中,切块图像以空间标识的中心为中心;
计算模块304,用于计算与天花底板的位置、地板的位置和预设比例尺相对应的实际层高值,将实际层高值作为建筑剖面图层高。
在一个具体实施例中,识别模块303具体用于获取窗口的当前尺寸;以空间标识的中心为中心,从图像中,以当前尺寸的窗口提取切块图像;确定贯穿切块图像的至少一条直线及获取直线对应的行坐标;判断在各条直线中,是否同时存在位于空间标识之上,且距离空间标识的中心最近的第一直线,以及位于空间标识之下,且距离空间标识的中心最近的第二直线;如果是,则基于第一直线的行坐标确定天花底板的位置,以及基于第二直线的行坐标确定地板的位置;否则,增大窗口的尺寸,将增大后的窗口的尺寸作为窗口的当前尺寸,并再次以空间标识的中心为中心,从图像中,以当前尺寸的窗口提取切块图像;确定贯穿切块图像的至少一条直线及获取直线对应的行坐标步骤,直至判定在各条直线中,存在位于空间标识之上,且距离空间标识的中心最近的第一直线,以及同时存在位于空间标识之下,且距离空间标识的中心最近的第二直线;基于第一直线的行坐标确定天花底板的位置,以及基于第二直线的行坐标确定地板的位置。
在一个具体实施例中,识别模块303具体用于扫描切块图像的每一行,对每一行的像素值进行如下处理:计算行的像素值之和;判断行的像素值之和是否等于窗口的宽度阈值;如果是,则确定行存在贯穿切块图像的直线,并获取行的行坐标。或者,获取切块图像的最小行坐标值、最大行坐标值、最小列坐标值和最大列坐标值;从切块图像中,提取至少一条直线,以及直线所对应的起始坐标值和终止坐标值;针对每一条直线,判断直线的起始坐标值和终止坐标值是否同时满足以下条件:起始坐标值和/或终止坐标值中的行坐标值大于或等于切块图像的最小行坐标值,且小于或等于切块图像的最大行坐标值;起始坐标值中的列坐标值小于或等于切块图像的最小列坐标值,并且终止坐标值中的列坐标值大于或等于切块图像的最大列坐标值;如果满足,则确定直线贯穿切块图像,并记录直线的行坐标。
在一个具体实施例中,识别模块303用于获取窗口的宽度阈值和高度阈值;获取空间标识的中心的中心行坐标值和中心列坐标值;判断中心行坐标值减去高度阈值的一半的差是否大于或等于0;如果是,则切块图像的最小行坐标值为中心行坐标值减去高度阈值的一半的差;否则,确定切块图像的最小行坐标值为0;以及,判断中心行坐标值加上高度阈值的一半的和是否大于或等于图像的最大行坐标值;如果是,则确定切块图像的最大行坐标值为图像的最大行坐标值;否则,确定切块图像的最大行坐标值为中心行坐标值加上高度阈值的一半的和;以及,判断中心列坐标值减去宽度阈值的一半的差是否大于等于0;如果是,则确定切块图像的最小列坐标值为中心列坐标值减去宽度阈值的一半的差;否则,确定切块图像的最小列坐标值为0;以及,判断中心列坐标值加上宽度阈值的一半的和是否大于或等于图像的最大列坐标值;如果是,则确定切块图像的最大列坐标值为图像的最大列坐标值;否则,确定切块图像的最大列坐标值为中心列坐标值加上宽度阈值的一半的和;获取通过切块图像的最小行坐标值、切块图像的最大行坐标值、切块图像的最小列坐标值和切块图像的最大列坐标值确定的切块图像。
在一个具体实施例中,该计算建筑剖面图层高的装置,还包括:实切模块305,用于对切块图像进行复制,并获得复制的切块图像的坐标值,以及复制的切块图像的坐标值相对于图像的坐标值的仿射变换矩阵;确定贯穿复制的所述切块图像的至少一条直线;识别模块303,具体用于确定直线在复制的切块图像中的复制行坐标值;根据复制行坐标值和仿射变换矩阵,计算直线在图像中所对应的行坐标值,得到行坐标。
在一个具体实施例中,获取模块301,用于获取建筑剖面图的图纸的原始图像;提取原始图像的宽度值和高度值;判断高度值是否大于宽度值;如果是,则对原始图像进行预处理,得到图像;否则,对原始图像进行旋转,并对旋转后的图像进行预处理,得到图像。其中,预处理包括:灰度处理、二值化处理和归一化处理;或者,预处理包括:霍夫直线变换。
基于同一构思,本申请实施例中还提供了一种电子设备,如图4所示,该电子设备主要包括:处理器401、存储器402和通信总线403,其中,处理器401和存储器402通过通信总线403完成相互间的通信。其中,存储器402中存储有可被至处理器401执行的程序,处理器401执行存储器402中存储的程序,实现如下步骤:
获取建筑剖面图的图纸所对应的图像以及图像元数据;其中,图像中的建筑正向垂直放置;
从图像元数据中,提取图纸中至少一个建筑空间内部的空间标识;
从图像中提取切块图像,并从切块图像中识别天花底板的位置和地板的位置;其中,切块图像以空间标识的中心为中心;
计算与天花底板的位置、地板的位置和预设比例尺相对应的实际层高值,将实际层高值作为建筑剖面图层高。
上述电子设备中提到的通信总线403可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线403可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器402可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器401的存储装置。
上述的处理器401可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等,还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的计算建筑剖面图层高的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如dvd)或者半导体介质(例如固态硬盘)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
1.一种计算建筑剖面图层高的方法,其特征在于,包括:
获取建筑剖面图的图纸所对应的图像以及图像元数据;其中,所述图像中的建筑正向垂直放置;
从所述图像元数据中,提取所述图纸中至少一个建筑空间内部的空间标识;
从所述图像中提取切块图像,并从所述切块图像中识别天花底板的位置和地板的位置;其中,所述切块图像以所述空间标识的中心为中心;
计算与所述天花底板的位置、所述地板的位置和预设比例尺相对应的实际层高值,将所述实际层高值作为所述建筑剖面图层高。
2.根据权利要求1所述的计算建筑剖面图层高的方法,其特征在于,从所述切块图像中识别天花底板的位置和地板的位置,包括:
从所述切块图像中,确定贯穿所述切块图像的至少一条直线及获取所述直线对应的行坐标;
判定在各条所述直线中,存在位于所述空间标识之上,且距离所述空间标识的中心最近的第一直线,以及同时存在位于所述空间标识之下,且距离所述空间标识的中心最近的第二直线;
基于所述第一直线的行坐标确定所述天花底板的位置,以及基于所述第二直线的行坐标确定所述地板的位置。
3.根据权利要求1所述的计算建筑剖面图层高的方法,其特征在于,所述从所述图像中提取切块图像,并从所述切块图像中识别天花底板的位置和地板的位置,包括:
获取窗口的当前尺寸;
提取直线步骤:以所述空间标识的中心为中心,从所述图像中,以当前尺寸的所述窗口提取所述切块图像;确定贯穿所述切块图像的至少一条直线及获取所述直线对应的行坐标;
判定在各条所述直线中,不同时存在位于所述空间标识之上,且距离所述空间标识的中心最近的第一直线,以及位于所述空间标识之下,且距离所述空间标识的中心最近的第二直线;
则增大所述窗口的尺寸,将增大后的窗口的尺寸作为所述窗口的当前尺寸,并再次执行所述提取直线步骤,直至判定在各条所述直线中,存在位于所述空间标识之上,且距离所述空间标识的中心最近的第一直线,以及同时存在位于所述空间标识之下,且距离所述空间标识的中心最近的第二直线;
基于所述第一直线的行坐标确定所述天花底板的位置,以及基于所述第二直线的行坐标确定所述地板的位置。
4.根据权利要求2或3所述的计算建筑剖面图层高的方法,其特征在于,所述获取建筑剖面图的图纸所对应的图像,包括:
获取建筑剖面图的图纸的原始图像;
提取所述原始图像的宽度值和高度值;
判断所述高度值是否大于所述宽度值;
如果是,则对所述原始图像进行预处理,得到所述图像;
否则,对所述原始图像进行旋转,并对旋转后的图像进行预处理,得到所述图像。
5.根据权利要求4所述的计算建筑剖面图层高的方法,其特征在于,所述预处理包括:灰度处理、二值化处理和归一化处理;
所述确定贯穿所述切块图像的至少一条直线及获取所述直线对应的行坐标,包括:
扫描所述切块图像的每一行,对每一行的像素值进行如下处理:
计算所述行的像素值之和;
判断所述行的像素值之和是否等于所述窗口的宽度阈值;
如果是,则确定所述行存在贯穿所述切块图像的直线,并获取所述行的行坐标。
6.根据权利要求2所述的计算建筑剖面图层高的方法,其特征在于,所述从所述切块图像中,确定贯穿所述切块图像的至少一条直线及获取所述直线对应的行坐标,包括:
获取所述切块图像的最小行坐标值、最大行坐标值、最小列坐标值和最大列坐标值;
从所述切块图像中,提取至少一条直线,以及所述直线所对应的起始坐标值和终止坐标值;
针对每一条直线,判断所述直线的起始坐标值和终止坐标值是否同时满足以下条件:
所述起始坐标值和/或所述终止坐标值中的行坐标值大于或等于所述切块图像的最小行坐标值,且小于或等于所述切块图像的最大行坐标值;
所述起始坐标值中的列坐标值小于或等于所述切块图像的最小列坐标值,并且所述终止坐标值中的列坐标值大于或等于所述切块图像的最大列坐标值;
如果满足,则确定所述直线贯穿所述切块图像,并记录所述直线的行坐标。
7.根据权利要求3所述的计算建筑剖面图层高的方法,其特征在于,所述以所述空间标识的中心为中心,从所述图像中,以当前尺寸的所述窗口提取所述切块图像,包括:
获取所述窗口的宽度阈值和高度阈值;
获取所述空间标识的中心的中心行坐标值和中心列坐标值;
判断所述中心行坐标值减去所述高度阈值的一半的差是否大于或等于0;
如果是,则所述切块图像的最小行坐标值为所述中心行坐标值减去所述高度阈值的一半的差;否则,确定所述切块图像的最小行坐标值为0;
以及,判断所述中心行坐标值加上所述高度阈值的一半的和是否大于或等于所述图像的最大行坐标值;
如果是,则确定所述切块图像的最大行坐标值为所述图像的最大行坐标值;否则,确定所述切块图像的最大行坐标值为所述中心行坐标值加上所述高度阈值的一半的和;
以及,判断所述中心列坐标值减去所述宽度阈值的一半的差是否大于等于0;
如果是,则确定所述切块图像的最小列坐标值为所述中心列坐标值减去所述宽度阈值的一半的差;否则,确定所述切块图像的最小列坐标值为0;
以及,判断所述中心列坐标值加上所述宽度阈值的一半的和是否大于或等于所述图像的最大列坐标值;
如果是,则确定所述切块图像的最大列坐标值为所述图像的最大列坐标值;否则,确定所述切块图像的最大列坐标值为所述中心列坐标值加上所述宽度阈值的一半的和;
获取通过所述切块图像的最小行坐标值、所述切块图像的最大行坐标值、所述切块图像的最小列坐标值和所述切块图像的最大列坐标值确定的所述切块图像。
8.根据权利要求3所述的计算建筑剖面图层高的方法,其特征在于,所述以当前尺寸的窗口提取所述切块图像之后,还包括:
对所述切块图像进行复制,并获得复制的所述切块图像的坐标值,以及复制的所述切块图像的坐标值相对于所述图像的坐标值的仿射变换矩阵;
确定贯穿复制的所述切块图像的至少一条直线;
所述获取所述直线对应的行坐标,包括:
确定所述直线在复制的所述切块图像中的复制行坐标值;
根据所述复制行坐标值和所述仿射变换矩阵,计算所述直线在所述图像中所对应的行坐标值,得到所述行坐标。
9.一种计算建筑剖面图层高的装置,其特征在于,包括:
获取模块,用于获取建筑剖面图的图纸所对应的图像以及图像元数据;其中,所述图像中的建筑正向垂直放置;
提取模块,用于从所述图像元数据中,提取所述图纸中至少一个建筑空间内部的空间标识;
识别模块,用于从所述图像中提取切块图像,并从所述切块图像中识别天花底板的位置和地板的位置;其中,所述切块图像以所述空间标识的中心为中心;
计算模块,用于计算与所述天花底板的位置、所述地板的位置和预设比例尺相对应的实际层高值,将所述实际层高值作为所述建筑剖面图层高。
10.一种电子设备,其特征在于,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现权利要求1~8任一项所述的计算建筑剖面图层高的方法。
11.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~8任一项所述的计算建筑剖面图层高的方法。
技术总结