本发明属于测量技术领域,特别涉及一种基于图像分析的非接触性面积测量方法。
背景技术:
目前,对于面积的测算方法普遍应用的是:方格纸法、基于数字图像分析的测量法以及基于图像测量技术的接触面积测量方法,方格纸法虽然便宜而且快捷,但是缺点也十分明显无法测到一个较为精准的面积数值而且必须要接触到被测量物体,而且测量误差较大;基于数字图像分析的测量法可以得到很准确的结果,但是需要预先对测量系统进行调试,相机与测量平面都有严格的参数要求,且一旦搭建成功无法自由移动;另外基于图像测量技术的接触面积测量方法,虽然可以满足在不同环境下对目标图像进行测量,而且所需设备廉价,但使用这种方法必须要对被测量目标进行接触,而有些环境下的测量工作是不允许与被测目标直接接触的。
由此看来,现有的面积测量方法对测量环境要求较高或者无法得到精确的测量结果,对于一些不规则形状或者空间面积的测量以及高温或高压条件下不能直接接触的特殊环境的面积测算则无法实现,不能满足非接触性环境的面积测算需求。
技术实现要素:
为了克服现有方法所存在的不足,本发明提供了一种相机无需与被测物体直接接触并且测算精度高、自由度高的基于图像分析的非接触性面积测量方法。
本发明所采用的技术方案是:
基于相机的图形面积测量方法由以下步骤组成:
(1)对相机进行标定提取相机的内参矩阵K和旋转变量[R t];
(2)用相机对被测目标进行任意角度拍摄,用图像分离算法去除背景提取出所采集的图像中的目标图像;
(3)提取目标图像的像素点,将每一个像素点对应的四个角点坐标值存入链表中,构成查询链表;
(4)利用小孔成像公式和步骤(1)的内参矩阵对查询链表中的每一个角点坐标进行还原,并更新查询链表;
(5)利用更新的查询链表中分布在同一个像素点的四个角点计算出该像素点对应的面积,并对所有像素点对应的面积求和,得到被测目标的实际面积。
上述步骤(1)具体方法是:
(1.1)制作棋盘标定板;
(1.2)从不同角度对标定板进行拍照,获取图像;
(1.3)利用MATLAB标定箱或基于Opencv的标定算法对步骤(1.2)的图像进行标定,得到该相机的内参矩阵K和旋转变量[R t]。
上述图像分离算法是流水冲蚀算法或阈值法。
上述步骤(4)具体是由以下操作实现:
(4.1)根据小孔成像公式km=K[R t]M,令H=K[R t],即得到H-1km=M;
(4.2)根据H-1km=M计算得到查询链表中的每一个像素点的角点图像坐标对应的实际坐标,其中M为查询链表中像素点对应的四个角点的实际坐标集;m为查询链表中像素点对应的四个角点的图像坐标集;
(4.3)将所得每一个像素点的角点图像坐标对应的实际坐标存入查询链表中。
本发明所涉及的基于图像分析的非接触性面积测量方法,是基于小孔成像原理通过对相机进行预先标定,采集目标物体的图像,对其进行目标分离处理,实现了连续的高精度测量,精度可达像素级别,而且本发明的相机无需与被测物直接接触,获取图像时没有角度要求,可以从任意角度拍照,自由度极高,适用于高温、高压或无法近距离测量的环境,此外,本发明操作简单、低消耗,数据处理可以自动化完成,适于工业化推广应用,特别是在农业中对不同植物叶片面积的测量以及医疗中对病变面积的测量、国界领海划分等有积极意义。
附图说明
图1为本发明的面积测量方法流程图。
图2为标定板图像。
具体实施方式
现结合附图和实施例对本发明的技术方案进一步说明,但是本发明不仅限于下述的实施情形。
本实施例以测量树叶面积为例,利用相机和计算机实现对长在树上的一片树叶的面积测量,相机采用MV-750高分辨率摄像头,参见图1,具体方法由以下步骤实现:
步骤(1):对相机进行标定提取相机的内参矩阵K和旋转变量[R t],具体为:
(1.1)制作10cm×20cm的棋盘标定板;
(1.2)从不同角度对标定板进行拍照,获取20张图像,参见图2;
(1.3)利用MATLAB标定箱对步骤(1.2)的图像进行标定,得到该相机的内参矩阵和旋转变量[R t]。
步骤(2):用相机在任意角度对树叶进行拍摄,将所拍的照片用流水冲蚀算法进行图像处理,去除背景,提取出所采集的图像中的目标树叶图像;
在图像中边界代表着一个特征区域的终点和一个特征区域的起点,边界所分开区域的内部特征一致,不同区域的内部特征有较大的差别,边界识别正是通过这些差别来实现的,这种差别包括灰度,颜色等。本实施例中利用了灰度值得差异,利用目标树叶图像与背景的明显灰度值差异,将目标树叶图像分离出来。
步骤(3):提取目标树叶图像的2438个像素点,将每一个像素点对应的四个角点坐标值存入链表中,构成查询链表;
图像中的每个像素实际上代表一个小方块,它由4个角点组成,这4个角点在一般情况下不是长方形,而是一个四边形,利用4点坐标,就能求到这4个角点所组成的像素点的面积,因此需先将所提取的像素点对应的角点坐标存入链表中。
步骤(4)利用小孔成像公式和步骤(1)的内参矩阵对查询链表中的每一个角点坐标进行还原,并更新查询链表;具体是:
(4.1)根据小孔成像公式km=K[R t]M,令H=K[R t],即得到H-1km=M;
由于图像平面上的一个点通过单应性矩阵H变换,变换到现实平面中为一个点,即只能够知道现实平面中一些零散点的坐标,因此,得到每一个像素点对应的四个角点坐标值还无法直接确定树叶在现实平面中的面积。
(4.2)利用公式H-1km=M,分别计算查询链表中2438个像素点的角点图像坐标对应的实际坐标,其中M为查询链表中每个像素点对应的四个角点的实际坐标集;m为查询链表中每个像素点对应的四个角点的图像坐标集;
(4.3)将所得每一个像素点的角点图像坐标对应的实际坐标存入查询链表,即更新查询链表。
步骤(5):利用更新的查询链表中分布在同一个像素点的四个角点计算出该像素点对应的面积,并对所有像素点对应的面积求和,得到目标树叶的实际面积。
上述步骤(1.3)中,对标定板的图像进行标定时还可以采用基于Opencv的标定算法进行标定,来替换MATLAB标定箱,两者均可。此外,在步骤(2)中的图像分离算法具体还可以用阈值法进行图像分离,其目的就是去除背景,提取目标图像。对于上述实施例中未详细描述的处理过程均属于常规方法。