基于手机拍照的道路裂纹尺寸估计方法与流程

文档序号:12061289阅读:来源:国知局

技术特征:

1.一种基于手机拍照的道路裂纹尺寸估计方法,其特征在于包括以下步骤:

步骤一、利用智能手机对道路裂纹进行拍照,采集裂纹照片及拍照时的手机传感器数据;手机气压传感器、加速度传感器和磁力传感器作为计算手机摄像头离裂纹距离的数据依据;将所有手机传感器数据整理成三元组<裂纹照片,传感器名称,传感器数值>;其中加速度传感器、磁力传感器的传感器数值格式是一个三维向量<x,y,z>,气压传感器是手机所在位置的气压值<baro>;

步骤二、对步骤一中采集到的裂纹照片进行包括中值滤波平滑、sobel算子锐化和灰度处理,然后使用OTSU算法进行图像分割,从路面背景中分割出裂纹;处理后的二值化矩阵记为G;

步骤三、对二值化矩阵G进行数学形态学先闭后开处理,处理后的矩阵记为M,然后对矩阵M进行膨胀腐蚀和细化操作,提取裂纹骨架,处理后的矩阵记为N;

步骤四、对于网状裂纹,扫描步骤三得到的矩阵M的每一行,找到裂纹的最大纵坐标点y1和最小纵坐标点y2;扫描矩阵M的每一列,找到裂纹的最大横坐标点x1和最小横坐标点x2;使用公式(1)计算网状裂纹在照片中的面积s:

s=(y1-y2)*(x1-x2) (1)

对于竖裂,扫描矩阵M的每一行,计算每一行的裂纹像素点个数,乘以每一个像素的长度,即为该行的裂纹宽度;然后对求得的每一行裂纹的宽度求平均得到竖裂的平均宽度;求竖裂的长度时,扫描步骤三得到的矩阵N,计算裂纹骨架的像素点个数,乘以每一个像素的长度,即为竖裂的长度;扫描矩阵M的每一列,得到该列的裂纹宽度,求平均得到横裂的平均宽度;扫描矩阵N得到横裂的长度;

步骤五、计算摄像头到裂纹的距离的三个参数,手机到地面的垂直距离h、手机的前后倾斜角α、手机的左右旋转角β;通过公式(2)计算摄像头到裂纹的距离od:

od=h/(cos|α|cos|β|) (2)

手机到地面的垂直距离h通过公式(3)计算,pm是手机所在位置的气压值,通过手机的气压传感器得到,pg是地面的气压值:

<mrow> <mi>h</mi> <mo>=</mo> <mn>44300</mn> <mo>*</mo> <mo>&lsqb;</mo> <mrow> <mn>1</mn> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mfrac> <msub> <mi>p</mi> <mi>m</mi> </msub> <msub> <mi>p</mi> <mi>g</mi> </msub> </mfrac> <mo>)</mo> </mrow> <mfrac> <mn>1</mn> <mn>5255</mn> </mfrac> </msup> </mrow> <mo>&rsqb;</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

手机的前后倾斜角α、左右旋转角β通过加速度传感器和磁力传感器计算,通过android开发API获取;

步骤六、根据步骤四得到裂纹在照片中的尺寸大小,步骤五得到摄像头到裂纹的距离以及手机的焦距,通过凸透镜成像公式(4)(5),推导出公式(6)计算裂纹实际物理尺寸,d是物距,i是像距,f是焦距,imagesize是像的大小,physicalsize是裂纹的实际物理尺寸;

<mrow> <mfrac> <mn>1</mn> <mi>d</mi> </mfrac> <mo>+</mo> <mfrac> <mn>1</mn> <mi>i</mi> </mfrac> <mo>=</mo> <mfrac> <mn>1</mn> <mi>f</mi> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mfrac> <mrow> <mi>p</mi> <mi>h</mi> <mi>y</mi> <mi>s</mi> <mi>i</mi> <mi>c</mi> <mi>a</mi> <mi>l</mi> <mi>s</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> </mrow> <mrow> <mi>i</mi> <mi>m</mi> <mi>a</mi> <mi>g</mi> <mi>e</mi> <mi>s</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> </mrow> </mfrac> <mo>=</mo> <mfrac> <mi>f</mi> <mrow> <mi>i</mi> <mo>-</mo> <mi>f</mi> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mi>p</mi> <mi>h</mi> <mi>y</mi> <mi>s</mi> <mi>i</mi> <mi>c</mi> <mi>a</mi> <mi>l</mi> <mi>s</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> <mo>=</mo> <mfrac> <mrow> <mi>f</mi> <mrow> <mo>(</mo> <mi>d</mi> <mo>-</mo> <mi>f</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mi>f</mi> <mo>*</mo> <mi>d</mi> <mo>-</mo> <mi>f</mi> <mrow> <mo>(</mo> <mi>d</mi> <mo>-</mo> <mi>f</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>*</mo> <mi>i</mi> <mi>m</mi> <mi>a</mi> <mi>g</mi> <mi>e</mi> <mi>s</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> <mo>.</mo> </mrow>

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