一种用于平面设计图中的瓷砖检查方法与流程

文档序号:20516318发布日期:2020-04-24 19:08阅读:219来源:国知局
一种用于平面设计图中的瓷砖检查方法与流程

本发明属于图像信息处理领域,具体涉及一种用于平面设计图中的瓷砖检查方法。



背景技术:

目前,家装平面设计图瓷砖种类及数目的检测主要由人工完成,瓷砖经销商根据客户需求,依据人眼观察和个人经验计算出每种瓷砖的数量。人工计数不仅效率低,还容易产生误差,引起不必要的损失。在其他领域,现有检测种类及数目的方法大都在普通图像上,且采用的是图像分割等图像处理技术,其不仅需要大量的算力资源,还存在精度不高等问题。

在此背景下,研究一款高效、准确且能够自动检测瓷砖种类及数目的方法尤为重要。



技术实现要素:

本发明所要解决的技术问题是提供一种用于平面设计图中的瓷砖检查方法,用于实现平面设计图中瓷砖的自动检测,尤其是对于室内家装设计,本发明所述方法解决了已有瓷砖种类及数目检测方法需要人工计数、效率低且容易产生误差的问题。

本发明所采用的技术方案如下:

一种用于平面设计图中的瓷砖检查方法,若检测瓷砖种类,包括以下步骤:

步骤s1:获取平面设计图中的每个瓷砖样例图片及其瓷砖类型、每个瓷砖边界表示的精确裁剪曲线所在的最小包络矩形及其图片;

步骤s2:分别读取最小包络矩形对应的图片,并依次与瓷砖样例图片进行基于像素长度和像素宽的匹配,若相匹配,最小包络矩形对应瓷砖的类型为相匹配的瓷砖样例图片的瓷砖类型;

若检测瓷砖数目,包括以下步骤:

获取平面设计图中尺寸数字区域及其尺寸数字、尺寸标注线上相邻短线段的距离,再基于尺寸数字和尺寸标注线上相邻短线段的距离计算出比例尺,所述比例尺为平面设计图上瓷砖尺寸与瓷砖实际尺寸的尺寸比例;

执行步骤s1和步骤s2得到平面设计图中每个最小包络矩形对应瓷砖的类型;

基于比例尺计算出每个最小包络矩形的实际尺寸,所述尺寸包括长度和宽度;

基于最小包络矩形的实际尺寸及其对应瓷砖的类型将每个最小包络矩形的实际尺寸与对应瓷砖的实际尺寸进行尺寸匹配,得到各类瓷砖的数目;

其中,尺寸匹配基于最佳匹配、最小包络矩形切割匹配以及瓷砖切割匹配原则实现。

本发明根据平面设计图的特点得到上述能够实现自动检测构思,其中,根据平面设计图中设有瓷砖样例图片以及瓷砖类型名称、以及最小包络矩形区域为瓷砖的特点,将用于表示最小包络矩形区域的图片与瓷砖样例图片进行匹配识别出瓷砖类型;同时,巧妙地利用尺寸标注特征计算出比例尺,进而得到最小包络矩形区域对应的瓷砖区域的实际尺寸,为统计所需的瓷砖实际数目奠定了基础,同时,本发明还考虑到了实际应用中,部分瓷砖不是完整的,进而进行了切割统计。

进一步优选,所述最佳匹配为最小包络矩形的实际尺寸与对应瓷砖的实际尺寸的误差在预设允许范围,对应瓷砖类型统计数目加一;

所述最小包络矩形切割匹配为最小包络矩形实际尺寸大于对应瓷砖的实际尺寸且不满足最佳匹配时,对最小包络矩形进行切割得到新生成的最小包络矩形,其中,至少一个新生成的最小包络矩形与对应瓷砖的实际尺寸为最佳匹配,对应瓷砖类型统计数目加一;剩余新生成的最小包络矩形实际尺寸小于对应瓷砖的实际尺寸;

所述瓷砖切割匹配为最小包络矩形实际尺寸小于对应瓷砖的实际尺寸且不满足最佳匹配时,采取对瓷砖切割、构建可选瓷砖尺寸数组以及切割可选瓷砖的方式进行统计;

首选,在可选数组中寻找是否存在最佳匹配,若存在,在可选瓷砖尺寸数组中删除最佳匹配对应的可选尺寸并进行下一最小包络矩形检测;若不存在,在可选瓷砖尺寸数组中寻找可切割瓷砖并进行切割得到新的可选瓷砖尺寸,至少一个新的可选瓷砖尺寸与最小包络矩形的实际尺寸为最佳匹配,在可选瓷砖尺寸数组中删除最佳匹配对应的可选尺寸并进行下一最小包络矩形检测,以及将剩余新的可选瓷砖尺寸添加至可选瓷砖尺寸数组中;若可选瓷砖尺寸数组中不存在可切割瓷砖,则切割原始瓷砖得到新的可选瓷砖尺寸,对应瓷砖类型统计数目加一以及将新的可选瓷砖尺寸添加至可选瓷砖尺寸数组中。

进一步优选,获取平面设计图中尺寸数字区域及其尺寸数字过程如下:

识别水平方向的尺寸标注线,并基于水平方向的尺寸标注线确定对应的尺寸数字区域坐标,水平方向对应的尺寸数字区域坐标按照如下公式计算:

xroimin=xll-lll/2-cll1,xroimax=xll+lll/2+cll1,yroimin=yll-cll2,yroimax=yll+cll3,其中cll1、cll2、cll3均为延拓常数;

识别竖直方向的尺寸标注线,并基于竖直方向的尺寸标注线确定对应的尺寸数字区域坐标,竖直方向对应的尺寸数字区域坐标按照如下公式计算:

xroimin=xll-cll1,xroimax=xll+cll2,yroimin=yll-lll/2-cll3,yroimax=yll+lll/2+cll3,其中cll1、cll2、cll3均为延拓常数;

式中,xroimin、xroimax、yroimin和yroimax表示尺寸数字区域的x、y坐标范围,xll、yll分别为水平或竖直方向的尺寸标注线的中心坐标,lll为水平或竖直方向的尺寸标注线的长度;

基于尺寸数字区域坐标裁剪数字区域图片得到尺寸数字区域对应的图片,再利用ocr图像文字识别技术识别图片得到尺寸数字。

进一步优选,获取尺寸标注线上相邻短线段的距离的过程如下:

提取尺寸数字区域内与对应尺寸标注线垂直的所有短线段;

从垂直的所有短线段中提取与对应尺寸标注线相交的短线段;

其中,与水平方向的尺寸标注线相交的短线段满足:xlmin<xsmin、xlimax>xsimax、ylmin>ysmin、ylmax<ysmax;与竖直方向的尺寸标注线相交的短线段满足:xlmin>xsmin、xlimax<xsimax、ylmin<ysmin、ylmax>ysmax;

式中,xlmin、xlimax、ylmin和ylmax表示尺寸标注线的范围,xsmin、xsimax、ysmin和ysmax表示短线段的范围。

最后,计算每相邻两个短线段之间的距离。

进一步优选,所述比例尺的获取过程如下:

首先,将尺寸标注线对应的每个尺寸数字分别除以同一尺寸标注线对应的每个相邻短线段的距离,并保持在数组r中;

然后,提取数组r中数值在区间[100,1000]内的元素,并在提取得到的元素中寻找一个值,令其余元素值与所述值作差并取绝对值,使得绝对值小于1的其余元素个数最多;

最后,并计算所述值与绝对值小于1的其余元素的平均值,所述平均值为比例尺。

进一步优选,获取平面设计图中的每个瓷砖样例图片及其瓷砖类型的过程如下:

在平面设计图中搜索图片以及提取词组,并获取每个图片的中心坐标以及词组的中心坐标;

其中,所述词组为瓷砖样例图片的类型名称;

再根据坐标进行关联匹配得到图片-词组的对应关系,其中,按照如下公式进行关联匹配:

式中,(xpi,ypi)分别表示一张图片的中心坐标,(xwi,ywi)分别表示一个词组的中心坐标。

进一步优选,获取瓷砖边界表示的精确裁剪曲线所在的最小包络矩形及其图片的过程如下:

在平面设计图中提取精确裁剪曲线,并根据精确裁剪曲线上x、y坐标的最大值、最小值确定所在的最小包络矩形的范围;

在平面设计图中提取图片;

根据坐标进行图片-最小包络矩形的对应关系的构建,其中,满足下述公式的最小包络矩形与图片存在对应关系:

式中,xlimin、xlimax、ylimin和ylimax表示最小包络矩形的x坐标最小值、x坐标最大值、y坐标最小值和y坐标最大值,xpimin、xpimax、ypimin和ypimax表示图片的x坐标最小值、x坐标最大值、y坐标最小值和y坐标最大值。

进一步优选,平面设计图包括bmp格式和cdr格式。

有益效果

本发明公开了一种用于平面设计图中的瓷砖检查方法,用于检测瓷砖的种类和数目,尤其是应用于室内家装平面设计,本发明改进了现有家装平面设计图瓷砖种类及数目的检测主要由人工完成这一缺陷,改进了现有检测种类及数目的方法:在普通图像上,采用图像分割等图像处理技术。不仅能够根据需求提取更全面的信息以提高精度,还节约了大量的算力资源。

本发明所述方法可以通过编写第三方计算机程序设计语言代码实现了数字区域裁剪、数字识别、比例尺计算、瓷砖种类匹配、瓷砖尺寸匹配。应用至coreldraw软件设计中进而可以改进了现有coreldraw插件只是单一调用内部功能库,无法实现瓷砖种类及数目检测这一缺陷。可广泛应用于coreldraw软件设计的室内家装平面设计图的瓷砖种类及数目的检测。

本发明可以使用vba编写代码,将cdr文件另存为bmp文件,并在cdr文件中提取了数字区域坐标、样例图片及其对应名称、最小包络矩形及其对应图片,计算了尺寸标注线两端短线段间长度。

附图说明

图1为本发明实例中检测瓷砖种类及数目的方法的流程图;

图2为本发明实例中从室内家装平面设计图中提取关键信息的流程图;

图3为本发明实例中根据提取信息和原始尺寸进行瓷砖种类及数量检测的流程图;

图4为实施例1由cdr格式的室内家装平面设计图转换得到的bmp格式的室内家装平面设计图;

图5为实施例1从cdr格式的室内家装平面设计图中提取的样例图片;其中图a对应的名称为蓝贝露,图b对应的名称为彩虹木纹;

图6为实施例1从bmp文件中裁剪的数字区域;其中图a为竖直方向顺时针旋转90度的数字区域,图b为水平方向的数字区域;

图7为实施例2由cdr格式的室内家装平面设计图转换得到的bmp格式的室内家装平面设计图;

图8为实施例2从cdr格式的室内家装平面设计图中提取的样例图片;其中图a对应的名称为俄罗斯金,图b对应的名称为卡拉卡塔白,图c对应的名称为云朵拉灰;

图9为实施例2从bmp文件中裁剪的数字区域;其中图a为竖直方向顺时针旋转90度的尺寸数字区域,图b为水平方向的尺寸数字区域。

具体实施方式

下面结合附图说明对本发明做进一步说明:

coreldraw是一款基于矢量图形的绘图软件,在华南地区的平面设计工作中有较多的使用。coreldraw软件中集成了vba,用户可以利用vba设计插件实现一些特定的操作,减少工作量。但是coreldrawvba只能调用软件内部的功能库,不能直接调用外部功能库,无法直接实现瓷砖种类及数目的检测。第三方计算机程序设计语言(如:python、c++、javascript等),具有轻便可移植、可扩展、开源等特点,在系统编程、图形处理、数学处理、文本处理等领域有广泛的应用。通过coreldrawvba调用第三方计算机程序设计语言可以调用外部功能库,实现更加复杂的插件功能。本发明结合coreldraw软件vba预处理和第三方计算机程序设计语言进行匹配统计实现了家装平面设计图瓷砖种类及数目统计。具体的,本发明提供的一种用于平面设计图中的瓷砖检查方法,用于实现平面设计图中瓷砖的自动检测,尤其是对于室内家装设计,因此,本发明实施例以室内家装设计为例,以同时获取到瓷砖种类以及数目为例进行说明,其整理实施流程如图1所示,包括如下步骤:

步骤a:在室内家装平面设计图中尺寸数字区域及其尺寸数字、尺寸标注线上相邻短线段的距离、瓷砖样例图片及其瓷砖类型、最小包络矩形及其对应图片,其实施流程如图2所示;

步骤b:根据步骤a所获得尺寸数字区域及其尺寸数字、尺寸标注线上相邻短线段的距离算比例尺,根据瓷砖的原始尺寸,分别进行最佳匹配和切割匹配,计算出每种类型瓷砖的数目。

所述步骤a的具体处理过程如下:

1)另存为bmp格式文件

由于在cdr格式的待检测的室内家装平面设计图中,用于标注尺寸的数字是以曲线的形式保存的,本发明采用文件格式转换,将原始文件另存为bmp格式的文件,以实现数字识别。

用l和w分别表示bmp格式文件的像素长度和像素宽度,为了提高数字识别的准确度,同时提高系统的运行效率,本发明取l和w的较大值,并令其为10000,较小值按cdr文件的原始比例缩放,并四舍五入取整数值,得到像素长度或像素宽度为10000的高分辨率图片。如图4所示,图片的像素长度为10000,像素宽度为6102。

应当理解,上述尺寸调整为本实施例的具体实现方式,其他可行的实施例中可以设定其他数值,本发明对此不进行具体的限定。

2)尺寸数字区域坐标提取

在cdr格式的室内家装平面设计图中,线段的保存形式是精确裁剪曲线,精确裁剪曲线有长度、宽度、坐标值等属性。在每个用于标注尺寸的尺寸数字的下方,存在一条尺寸标注线。本发明利用该线段提取数字区域(roi区域)的坐标。对于水平方向,令长度与宽度的比值大于100000,并且y坐标的取值最小,提取出对应的水平尺寸标注线,然后根据该线段的中心坐标(xll,yll)和长度属性lll确定数字区域坐标,用xroimin、xroimax、yroimin和yroimax表示尺寸数字区域的范围,xroimin=xll-lll/2-cll1,xroimax=xll+lll/2+cll1,yroimin=yll-cll2,yroimax=yll+cll3,其中cll1、cll2、cll3均为延拓常数;对于竖直方向,令宽度与长度的比值大于100000,并且x坐标的取值最小,提取出对应的竖直尺寸标注线,然后根据该线段的中心坐标(xll,yll)和长度属性lll确定尺寸数字区域坐标,用xroimin、xroimax、yroimin和yroimax表示尺寸数字区域的范围,xroimin=xll-cll1,xroimax=xll+cll2,yroimin=yll-lll/2-cll3,yroimax=yll+lll/2+cll3,其中cll1、cll2、cll3均为延拓常数。为了能够直接在bmp格式的文件中裁剪尺寸数字区域,需要对上述数字区域坐标进行归一化处理,即将cdr格式的室内家装平面设计图的数字区域坐标范围缩放到[0,1]。本发明将数字区域坐标保存到第一个txt格式的文件中,并且在每一行的开始处注明水平方向或竖直方向。扩展并归一化后得到尺寸数字区域的坐标,本实施例中水平方向:[0,0.65,1.9e-2,0.97],竖直方向[0.34,5.0e-3,0.79,6.2e-2]。本实施例中,水平尺寸标注线和数值尺寸标注线为最外围表示水平和竖直方向的尺寸标注线。

3)裁剪尺寸数字区域

由得到bmp格式的文件和归一化之后尺寸数字区域坐标的第一个txt文件。本发明采用第三方计算机程序设计语言读取bmp文件和第一个txt文件;然后从bmp文件获取图片的像素长度和像素宽度,从第一个txt文件获取尺寸数字区域范围的坐标;进一步利用像素长度和像素宽度将尺寸数字区域范围放大到与bmp文件一致;最后根据四舍五入取整后得到的数字区域范围裁剪bmp文件。裁剪完成后,需要根据第一个txt文件的标注对图片进行旋转。如果第一个txt文件标注为水平方向,不需要旋转;如果第一个txt文件标注为竖直方向,需要对图片顺时针旋转90度。旋转完成后,将尺寸数字区域的图片以png的格式保存到文件,文件的命名顺序与裁剪顺序相同,即第一次裁剪保存的文件命名为1;第二次裁剪保存的文件命名为2;以此类推,直到全部裁剪完毕。竖直方向的裁剪结果保存为bmp格式的文件,如图6(a)所示;水平方向的裁剪结果保存为bmp格式的文件,如图6(b)所示。

4)数字识别

本发明采用ocr图像文字识别技术对裁剪区域的数字进行识别;然后对识别结果进行筛选,使其只保留数字;最后将筛选得到的结果保存到第五个txt格式的文件中,保存顺序与识别顺序相同,即第一张裁剪区域图片的识别结果写入第五个txt文件的第一行;第二张裁剪区域图片的识别结果写入第五个txt文件的第二行;以此类推,直到全部识别完毕。图6(a)的识别结果为2400,图6(b)的识别结果为880、1070、880、1070。

5)尺寸标注线两端短线段间长度计算

本发明对尺寸标注线两端短线段的提取、距离计算和保存包含四个步骤,分别是(i)在数字区域内提取所有与尺寸标注线垂直的短线段;(ii)进一步提取与尺寸标注线相交的短线段;(iii)计算任意两条相邻短线段之间的距离;(iv)按照格式保存到文件。所述具体步骤如下:

(i)尺寸数字区域内所有与尺寸标注线垂直的短线段的提取。

用xroimin、xroimax、yroimin和yroimax表示尺寸数字区域的范围,精确裁剪曲线x坐标的搜索范围在区间[xroimin,xroimax]内,y坐标的搜索范围在区间[yroimin,yroimax]内。对于水平尺寸标注线,令宽度与长度的比值大于1000,提取出对应的竖直短线段;对于竖直尺寸标注线,令长度与宽度的比值大于1000,提取出对应的水平短线段。

(ii)与尺寸标注线相交短线段的提取。在cdr文件中,用xlmin、xlimax、ylmin和ylmax表示尺寸标注线的范围,用xsmin、xsimax、ysmin和ysmax表示与之垂直的短线段的范围。对于水平尺寸标注线,与之相交的短线段满足:xlmin<xsmin、xlimax>xsimax、ylmin>ysmin、ylmax<ysmax;对于竖直尺寸标注线,与之相交的短线段满足:xlmin>xsmin、xlimax<xsimax、ylmin<ysmin、ylmax>ysmax。按照上述条件,提取相应的短线段。

(iii)任意两条相邻短线段距离的计算。由所述(ii)得到若干组精确裁剪曲线,用(xr,yr)表示精确裁剪曲线的中心坐标。对于竖直短线段,保存所有xr值到数组a;对于水平短线段,保存所有yr值到数组b。本发明采用冒泡排序,分别对数组a和数组b进行升序排序,然后分别对数组的相邻元素作差,即第二个元素减去第一个元素、第三个元素减去第二个元素,以此类推直到数组的最后一个元素。数组a的运算结果保存到数组c,数组b的运算结果保存到数组d。

(iv)文件保存。本发明将计算得到的线段长度保存到第二个txt格式的文件中。将数组c写入到文件时,在该行的开始处注明水平方向;将数组d写入到文件时,在该行的开始处注明竖直方向。

4)瓷砖样例图片和类型名称提取

本发明对瓷砖样例图片极其对应类型名称的提取和保存包含四个步骤,分别是(i)在整个cdr格式的室内家装平面设计图中提取图片;(ii)在整个cdr格式的室内家装平面设计图中提取词组;(iii)根据图片坐标和词组坐标进行关联匹配;(iv)按照格式保存到文件。所述具体步骤如下:

(i)在整个室内家装平面设计图中提取图片。用xamin、xamax、yamin和yamax表示整个设计图的范围,图片x坐标的搜索范围在区间[xamin,xamax]内,y坐标的搜索范围在区间[yamin,yamax]内。

(ii)在整个室内家装平面设计图中提取词组。在cdr文件中,样例图片的名称是以文本的形式保存的,可以直接提取并得到相应的坐标值。由所述(i),词组x坐标的搜索范围在区间[xamin,xamax]内,y坐标的搜索范围在区间[yamin,yamax]内。

(iii)根据坐标进行关联匹配。由所述(i)、(ii)分别得到若干图片和若干词组,用(xpi,ypi)分别表示一张图片的中心坐标,用(xwi,ywi)分别表示一个词组的中心坐标。本发明采用欧几里何距离衡量图片中心坐标到词组中心坐标的距离,满足如下公式的图片和词组符合关联条件:

最终得到图片-词组一一对应的关系。

(iv)文件保存。本发明将图片保存到bmp格式的文件中,将词组保存到第三个txt格式的文件中。将第一张图片保存为bmp文件时,对其命名为s1,同时在第三个txt文件的第一行写入对应的词组;将第二张图片保存为bmp文件时,对其命名为s2,同时在第三个txt文件的第二行写入对应的词组;以此类推直到所有图片和词组保存完毕。

5)精确裁剪曲线最小包络矩形和图片提取:

本发明对精确裁剪曲线最小包络矩形极其对应图片的提取和保存包含五个步骤,分别是(i)在整个cdr格式的室内家装平面设计图中提取精确裁剪曲线;(ii)提取精确裁剪曲线的最小包络矩形;(iii)在整个cdr格式的室内家装平面设计图中提取图片;(iv)根据最小包络矩形坐标和图片坐标进行关联匹配;(v)按照格式保存到文件。所述具体步骤如下:

(i)在整个设计图中提取精确裁剪曲线。在cdr格式的室内家装平面设计图中,精确裁剪曲线和图片分布在不同的图层中,瓷砖的边界由精确裁剪曲线表示,瓷砖的花纹由图片表示,通过提取精确裁剪曲线即可获得每块砖的尺寸。用xamin、xamax、yamin和yamax表示整个区域的范围,精确裁剪曲线x坐标的搜索范围在区间[xamin,xamax]内,y坐标的搜索范围在区间[yamin,yamax]内。

(ii)提取精确裁剪曲线的最小包络矩形。由所述(i)得到一组精确裁剪曲线,用xlij和ylij表示一个精确裁剪曲线的一个节点的坐标,用xlimin、xlimax、ylimin和ylimax分别表示该精确裁剪曲线的x坐标最小值、x坐标最大值、y坐标最小值和y坐标最大值,即为该精确裁剪曲线最小包络矩形的范围。

(iii)在整个设计图中提取图片。由所述(i),图片x坐标的搜索范围在区间[xamin,xamax]内,y坐标的搜索范围在区间[yamin,yamax]内。

(iv)根据坐标进行关联匹配。在cdr格式的室内家装平面设计图中,精确裁剪曲线和图片分布在不同的图层,可以根据两者的坐标判定是否关联。由所述(ii),最小包络矩形的范围是xlimin、xlimax、ylimin和ylimax。用xpimin、xpimax、ypimin和ypimax分别表示一张图片的x坐标最小值、x坐标最大值、y坐标最小值和y坐标最大值,即为该图片的范围。满足如下公式的最小包络矩形和图片符合关联条件:

由上式得到的图片-最小包络矩形遵循一一对应或一对多的关系,进一步由图片-最小包络矩形的对应关系可以得到瓷砖种类-最小包络矩形的关系。

(v)文件保存。本发明将图片保存到bmp格式的文件中,将最小包络矩形的坐标保存到第

四个txt格式的文件中。将第一张图片保存为bmp文件时,对其命名为1,该图片对应n1个包络矩形,在第四个txt文件写入n1行最小包络矩形坐标,并在每行的开始处都注明1;将第二张图片保存为bmp文件时,对其命名为2,该图片对应n2个包络矩形,在第四个txt文件写入n2行最小包络矩形坐标,并在每行的开始处都注明2;以此类推直到所有图片和最小包络矩形坐标保存完毕。

所述步骤b的具体处理过程如下:

1)比例尺计算

本发明对比例尺的计算包含四个步骤,分别是(i)读取第二个txt文件和第五个txt文件(ii)计算所有可能的比例尺(iii)提取正确的比例尺(iv)将比例尺保存到文件。所述具体步骤如下:

(i)读取第二个txt文件和第五个txt文件。短线段之间的长度和数字识别的结果在相应的txt文件中是按行对应的,即第一组短线段之间的长度保存在第二个txt文件的第一行,第一张裁剪区域图片的识别结果保存在第五个txt文件的第一行;第二组短线段之间的长度保存在第二个txt文件的第二行,第二张裁剪区域图片的识别结果保存在第五个txt文件的第二行;以此类推。本发明将短线段之间长度对应的第二个txt文件的读取内容保存在二维数组pij中,将数字识别结果对应的第五个txt文件的读取内容保存在二维数组qij中。

(ii)计算可能的比例尺。由(i)得到两个二维数组pij和qij,用qij每行的每个元素分别除以pij对应行的每个元素,并将运算结果保存在数组r中。用mi和ni分别表示pij每行元素的个数和qij每行元素的个数,数组r包含的元素个数为∑mini。

(iii)提取正确的比例尺。由(ii)得到包含所有可能比例尺的数组r,提取数组r中数值在区间[100,1000]内的元素;然后在提取得到的元素中寻找一个值,令其余元素值与该值作差并取绝对值,使得绝对值小于1的其余元素个数最多;最后提取该值和与其差值的绝对值小于1的其余元素值,并计算它们的平均值,以该平均值作为正确的比例尺。求得的结果为254.14。

(iv)文件保存。本发明将计算得到的比例尺保存到第六个txt格式的文件中。

2)瓷砖种类匹配

本发明对瓷砖种类的匹配包含三个步骤,分别是(i)读取第三个txt文件和第四个txt文件;(ii)读取每个包络矩形对应的图片;(iii)将包络矩形对应的图片与样例图片进行匹配。

所述具体步骤如下:

(i)读取第三个txt文件和第四个txt文件。第三个txt文件保存了图片的名称,第四个txt文件的每一行开始处注明了图片的编号。使用第三方计算机程序设计语言将上述内容读取并保存到变量中。

(ii)读取包络矩形对应的图片。由(i)得到每个最小包络矩形对应的瓷砖编号,根据编号读取对应的bmp文件并保存到变量中。

(iii)进行图片匹配。

将所有样例图片读取并保存到变量中,步骤(ii)每读入一张图片,首先与所有样例图片进行尺寸匹配,即比较读入图片与样例图片的像素长度和像素宽度,提取像素长度、像素宽度一致的样例图片;然后对读入图片和提取的样例图片作差,即对应坐标的像素值相减;最后如果每个像素点的值都为零即匹配到了与输入图片一致的样例图片,样例图片对应的名称即为输入图片的名称。

3)瓷砖尺寸匹配

本发明对瓷砖尺寸的匹配包含四个步骤,分别是(i)读取第四个txt文件和第五个txt文件(ii)进行最佳匹配(iii)切割包络矩形并匹配(iv)切割原始瓷砖并匹配。所述具体步骤如下:

(i)读取第五个txt文件,并将比例尺保存到变量scale中。读取第四个txt文件。步骤a得到的每个精确裁剪曲线最小包络矩形坐标包含四个值xlimin、xlimax、ylimin和ylimax。在瓷砖尺寸匹配过程中,只需要包络矩形的实际长度值和宽度值,用xli和xwi分别表示包络矩形的实际长度值和宽度值,根据如下公式即可计算出每个包络矩形实际的长度值和宽度值:

本发明按照长度值不小于宽度值的原则将上述求得的长度值和宽度值保存到数组中,如果求得的长度值小于宽度值,则交换两者的值。满足上述原则后,变量按照长度值-宽度值-长度值-宽度值……的形式保存,同一种瓷砖的所有长度值、宽度值保存在同一个数组中。

(ii)最佳匹配。由(i)得到每种瓷砖所有的长宽值数组,在数组中找出所有长宽值与原始尺寸相同或略小于原始尺寸的元素,每找到一组长宽值,该种类瓷砖的数目加一,并将该组长宽值从数组中删除。

(iii)包络矩形切割匹配。瓷砖的长宽值可以大于原始尺寸,本发明采用切割包络矩形的方式,使数组中的瓷砖长宽值小于原始尺寸。每次切割产生三个新的包络矩形,其中一个与原始尺寸最佳匹配,该种类瓷砖的数目加一,其余两个的长宽值添加到数组中,并将切割前的长宽值从数组中删除。

(iv)原始瓷砖切割匹配(本实施例中瓷砖原始尺寸均为900mm×600mm)。完成(ii)(iii)后,上述长宽值数组中只剩下小于原始尺寸的元素。本发明采用切割原始瓷砖、建立可选尺寸数组、切割可选瓷砖的方式,匹配这些长宽值。每次匹配时,首先在可选尺寸数组中寻找与长宽值的最佳匹配,如果满足,则从对应数组中删除长宽值和可选尺寸;然后如果最佳匹配不能满足,则在可选尺寸数组中寻找能够切割的可选瓷砖,每次切割产生三个新的可选尺寸,其中一个与该长宽值最佳匹配,其余两个添加到可选尺寸数组中,并从对应数组中删除长宽值和可选尺寸;最后如果可选瓷砖切割匹配不能满足,则切割原始瓷砖,该种类瓷砖的数目加一,同时产生三个新的可选尺寸,其中一个与该长宽值最佳匹配,其余两个添加到可选尺寸数组中,并从对应数组中删除长宽值。最终得到的计算结果为:蓝贝露瓷砖9块、彩虹木纹瓷砖48块。

其他可行的实施例中,可以单独检测瓷砖种类或者瓷砖数目,本发明对此不进行具体的限定。

实施例2:

对室内家装平面设计图进行瓷砖种类及数目检测。第一步,在coreldraw软件中读取cdr格式的室内家装平面设计图,然后将文件中的内容另存为bmp格式的图片[如图7所示],图片的像素长度为10000,像素宽度为4852。在水平方向和竖直方向上分别提取水平尺寸标注线和竖直尺寸标注线,确定数字区域范围并归一化,水平方向:[0,0.64,5.3e-3,0.95],竖直方向[0.23,5.0e-3,0.84,6.2e-2]。分别计算任意两条相邻竖直短线段和水平短线段之间的距离。提取样例图片和名称,并进行匹配,图8(a)为俄罗斯金瓷砖,图8(b)为卡拉卡塔白瓷砖,图8(c)为云朵拉灰瓷砖。提取精确裁剪曲线最小包络矩形和图片,并进行匹配。

第二步,裁剪竖直方向的数字区域并顺时针旋转90度,结果如图9(a)所示;裁剪水平方向的数字区域,结果如图9(b)所示。对图9(a)的数字识别结果为2400,对图9(b)的数字识别结果为2230、870、920、2230、870、920。计算出所有可能的比例尺,通过滤波、筛选等一系列操作,求得的比例尺为253.96。对包络矩形对应的图片进行瓷砖种类匹配,对包络矩形的长宽值进行瓷砖尺寸匹配(瓷砖原始尺寸均为900mm×600mm),最终得到的计算结果为:俄罗斯金瓷砖3块、卡拉卡塔白瓷砖8块、云朵拉灰瓷砖68块。

需要说明的是,以上公开的仅为本发明的具体实例,根据本发明提供的思想,本领域的技术人员能思及的变化,都应落入本发明的保护范围内。

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