一种圆筒试验底片自动判读方法与流程

文档序号:18747857发布日期:2019-09-24 20:26阅读:262来源:国知局
一种圆筒试验底片自动判读方法与流程

本申请属于火炸药实验室实验测量技术领域,涉及一种底片判读方法,特别涉及一种圆筒试验底片自动判读方法。



背景技术:

圆筒试验在爆轰领域中非常重要,它是专门用于确定炸药爆轰产物jwl状态方程和评估炸药作功能力的标准化实验。圆筒试验在国内外都得到了广泛应用,一般将炸药样品装在特定尺寸的标准圆筒内,用高速扫描相机记录定常滑移爆轰驱动下圆筒壁的径向膨胀距离与时间的变化关系,并利用经验公式计算圆筒壁的膨胀速度和比动能等表征炸药作功能力的特征量。

圆筒试验传统的底片判读方法是使用工具显微镜,首先通过人工目测确定圆筒壁的起跳点位置,然后沿膨胀迹线每隔一定径向距离读出边界点的横坐标和纵坐标,再根据图像放大比和高速扫描相机的扫描速度计算出圆筒壁的膨胀距离r-r0和对应的膨胀时间t,从而得到一系列的(rj-r0)-tj数据。使用工具显微镜这种底片判读方法存在以下问题:1)工作量大,且不可避免地要受人为因素影响;2)起跳点难于识别和判读,边界判读对准误差大,结果重复性差;3)判读点是人为确定的一系列离散点,无法充分获取底片信息。

为了提高判断判读效率和结果的重复性,完整获取底片信息,陈朗等采用计算机图像处理的方法对底片进行整体式判读(“含铝炸药圆筒试验及爆轰产物jwl状态方程研究”《火炸药学报》,2001年第3期,p13-p15),即首先对底片整体扫描形成电子图片,而后人为利用软件取点的方法对边界进行判读,因此,对底片质量要求较高,当照明光源光强动态变化而致圆筒膨胀边界不甚清晰时,判读精度将大幅降低,且判读结果亦受人为因素的影响。为进一步排除底片判读过程中人为因素影响,徐辉等通过边界处理程序寻找图形像素中黑密度变化曲线中斜率极大值位置对边界进行判读,获取圆筒外界面膨胀迹线(“标准圆筒试验数据处理和不确定度评定方法”,北京理工大学学报,2010年第30卷第5期,p626-p630),但该方法对噪声较为敏感,对于噪声较多的图像,容易造成边缘点的误判;而目前为降低圆筒试验的安全风险,常采用脉冲氙灯照明光源替代炸药激发氩气弹光源,但脉冲氙灯照明光源会使得底片中产生较多的颗粒状噪点,使得判读精度降低。



技术实现要素:

针对现有技术存在的问题,本申请提供了一种圆筒试验底片判读方法,不但判读速率大幅提升,并且可适应噪点及不同的照明光源,在提升判读效率的同时,也提升了判读精度。

本申请提供的一种圆筒试验底片自动判读方法,首先将原始底片通过高精度底片扫描仪转换成数字图像,对数字图像进行去噪、灰度拉伸和边缘增强处理;其次,通过局部放大技术精确标定图像中目标边缘若干个点,据此进行水平校正、计算目标边缘斜率及定位边缘检测带;然后,在竖直方向上搜索检测带范围内图像黑像素变化曲线中斜率的最大值位置,即目标边缘;最后,通过本申请提出的非边缘点剔除算法将一些不在目标边缘上的检测点剔除,剩下的边缘点进行分段三次hermite插值,拟合出光滑的目标边缘曲线,从而判定起跳点,输出目标边缘坐标数据,并由图像放大比和扫描速度得到圆筒壁膨胀位移和时间数据。

所述一种圆筒试验底片自动判读方法,包括以下步骤:

步骤一,将原始底片通过高精度扫描仪转换成数字源图像i,并通过下式进行灰度变换;

其中,r,g,b分别为i的红绿蓝分量,g为灰度化后图像;

步骤二,对灰度图像g进行中值滤波和线性灰度拉伸;

h(x,y)=median[t[g(x,y)]|0<x<n,0<y<n];

其中,t为灰度拉伸变换函数,n为中值滤波模板大小,取奇数;

步骤三,对图像h做非线性各向异性扩散边缘增强,得到边缘增强图enh;

步骤四,对图像enh利用radon变换进行水平校正,得到图像enhh;

步骤五,在图像enhh上,对若干目标边缘上的点进行局部放大标定,即以部分边缘上的点为中心,以60pixel为宽度的正方形图像区域进行局部放大取点,以便得到更精确的边缘点;以上边缘线为例,共标定6个特殊边缘点,分别记为:(txi,tyi),i=1,2,3,4,5,6;其中第1个边缘点为读数起点(最左端点),第2个点为边线起跳点,第3个点为读数终点(最右端点),第4个点介于第1和第2个点之间,第5、6个点介于第2和第3个点之间;

步骤六,利用步骤五中标定的点(tx2,ty2)、(tx3,ty3)、(tx5,ty5)和(tx6,ty6)计算上边线倾斜段的斜率,具体计算公式如下:

同理,下边线倾斜段的斜率由下式近似给出:

步骤七,定位上下边缘检测范围,即检测带;

步骤八,在竖直方向上搜索检测带范围内图像黑像素变化曲线中斜率的最大值位置,即为边缘点;

步骤九,依据倾斜段斜率,剔除非边缘点;

步骤十,剩下的边缘点进行分段三次hermite插值,拟合出光滑的目标边缘曲线;

步骤十一,起跳点判读;

进一步,所述步骤七具体步骤如下:

(1)给定检测带宽度width,计算检测范围半径

(2)计算上边线的检测带边界线,i=1,2,3,4,5,分别记为topy1、topy2;

(3)计算下边线的检测带边界线,i=1,2,3,4,5,分别记为boty1、boty2;

进一步,所述步骤八具体步骤如下:

(1)给定检测带上下边界坐标,以上边线的检测带为例:检测带上边界(x,topy1),检测带下边界(x,topy2);

(2)搜索竖直方向上检测带范围内图像黑像素变化曲线中斜率的最大值位置,具体算法如下:

其中的topposition保存搜索到的黑像素变化曲线中斜率的最大值位置,即边界点;同理,也可得到下边线的初始边缘点botposition;

进一步,所述步骤九具体步骤如下:

对上边缘线:

(1)通过如下方法确定基准点basepoint:

设定水平段过滤阈值pix_thresh=(0.01/25.4)×dpi,其中dpi为扫描仪扫描分辨率;公式中的0.01为毫米单位,即在误差可控范围(<0.05mm)内将过滤掉水平段上误差大的检测点;

计算先验的水平段平均值:hormean=round((ty1+ty4+ty2)/3);记toppositi的o纵n坐标为toppositiony,则tophordiff=|toppositiony-hormean|;然后过滤水平段上误差大的检测点,即index=find(tophordiff<=pix_thresh);

剔除误差大的点后,平均剩余点的纵坐标便为基准点basepoint,即basepoint=mean(toppositiony(index));

(2)利用先验斜率剔除检测边缘线上的干扰点,具体算法如下:输入:上边缘线坐标数据(toppositionx,toppositiony),基准点basepoint,先验斜率tk,斜率修正阈值thresh_tk←0.005;

过程:

输出:(newtoppositionx,newtoppositiony)←(toppositionx,toppositiony)。

对下边缘线:

(1)通过如下方法确定基准点basepoint:

设定水平段过滤阈值pix_thresh=(0.01/25.4)×dpi,其中dpi为扫描仪扫描分辨率;

计算先验的水平段平均值:hormean=round((by1+by4+by2)/3);记botpositio的n纵坐标为botpositiony,则bothordiff=|botpositioyn-hormean|;然后过滤水平段上误差大的检测点,即index=find(bothordiff<=pix_thresh);

剔除误差大的点后,平均剩余点的纵坐标便为基准点basepoint,即basepoint=mean(botpositiony(index));

(2)利用先验斜率剔除检测边缘线上的干扰点,具体算法如下:

输入:上边缘线坐标数据(botpositionx,botpositiony),基准点basepoint,先验斜率bk,斜率修正阈值thresh_bk←-0.005;

过程:

输出:(newbotpositionx,newbotpositiony)←(botpositionx,botpositiony)。

进一步,所述步骤十具体步骤如下:

(1)经过步骤九将非边缘点剔除之后,对剩下的边缘点每两点之间进行分段线性插值补全,具体算法如下:

输入:(newtoppositionx,newtoppositiony);

(newbotpositionx,newbotpositiony);

过程:

21:将单元数组getdata转换成矩阵形式:

getdata_mat←cell2mat(getdata);

输出:xcoor←round(getdata_mat(:,1));

ycoor←round(getdata_mat(:,2))。

(2)对边缘坐标点(xcoor,ycoor)进行分段三次hermite插值,拟合出光滑的目标边缘曲线,算法描述如下:

step1:将被插值函数f(x)的插值节点由小到大排序,即:

[x1,x2,l,xn]←sort(xcoorj),j=1,2,l,length(xcoor);

step2:构造区间端点处的一阶导数:中间节点相应的导数可以用左右相邻两个区间段的一阶差商进行加权的方式近似计算。

不同于中间节点,本申请将端点导数值取为相邻区间段的一阶差商,即δk;

step3:以相邻的两个节点为端点的区间上使用三次hermite插值近似得到f(x),即:

设f(x)在节点xk,xk+1处的函数值为fk,fk+1;在节点xk,xk+1处的一阶导数为fk',fk+1';两点三次hermite插值多项式为:

f(x)≈h3(x)=fkαk(x)+fk+1αk+1(x)+fk'βk(x)+fk+1'βk+1(x)

容易解得:

利用分段三次hermite插值得到光滑的边缘曲线坐标为(nxcoor,nycoor);

进一步,所述步骤十一具体步骤如下:

(1)对nycoor作差分,得到diffnycoor;

(2)找出diffnycoor的值为1(上边线为1,下边线为-1)的那些位置,记为index;

(3)设定起跳点突变阈值threshval=round(0.079/(1/dpi*25.4));

(4)计算起跳点位置startposition=index(threshval)。

本申请的优点及积极效果为:

1)使用范围广,可适应氩气弹、炸药加透镜、脉冲氙灯等不同光源;

2)判读精度高,通过对底片进行去噪、灰度拉伸和边缘增强处理,能够有效剔除不在判读边界上的检测点,确保了判读精度;

3)判读效率大幅提升,传统人工判读1张底片需要耗费1天时间,采用本申请仅需5分钟。

附图说明

图1是本申请提供的一种圆筒试验底片自动判读方法流程图。

图2是分别采用本申请判读方法及人工判读图像质量较好底片得到的平均线对比图。

图3是分别采用本申请判读方法及人工判读图像质量较差底片得到的平均线对比图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明,需要说明的是本申请不局限于以下具体实施例,凡在本申请技术方案基础上进行的同等变换均在本申请的保护范围内。

遵从上述技术方案,如图1-图3所示。

如图1所示,本申请实施例提供的一种圆筒试验底片自动判读方法包括以下步骤:

首先:将原始底片通过高精度底片扫描仪转换成数字图像,对数字图像进行去噪、灰度拉伸和边缘增强处理;

其次:通过局部放大技术精确标定图像中目标边缘若干个点,据此进行水平校正、计算目标边缘斜率及定位边缘检测带;

再次:在竖直方向上搜索检测带范围内图像黑像素变化曲线中斜率的最大值位置,即目标边缘;

最后:通过本申请提出的非边缘点剔除算法将一些不在目标边缘上的检测点剔除,剩下的边缘点进行分段三次hermite插值,拟合出光滑的目标边缘曲线,从而判定起跳点,输出目标边缘坐标数据,并由图像放大比和扫描速度得到圆筒壁膨胀位移和时间数据。

本申请实施例提供的一种圆筒试验底片自动判读方法具体包括以下步骤:

步骤一,将原始底片通过高精度扫描仪转换成数字源图像i,并通过下式进行灰度变换;

其中,r,g,b分别为i的红绿蓝分量,g为灰度化后图像;

步骤二,对灰度图像g进行中值滤波和线性灰度拉伸:

h(x,y)=median[t[g(x,y)]|0<x<n,0<y<n];

其中,t为灰度拉伸变换函数,n为中值滤波模板大小,取奇数;

步骤三,对图像h做非线性各向异性扩散边缘增强,得到边缘增强图enh;

步骤四,对图像enh利用radon变换进行水平校正,得到图像enhh;

步骤五,在图像enhh上,对若干目标边缘上的点进行局部放大标定,即以部分边缘上的点为中心,以60pixel为宽度的正方形图像区域进行局部放大取点,以便得到更精确的边缘点;以上边缘线为例,共标定6个特殊边缘点,分别记为:(txi,tyi),i=1,2,3,4,5,6;其中第1个边缘点为读数起点(最左端点),第2个点为边线起跳点,第3个点为读数终点(最右端点),第4个点介于第1和第2个点之间,第5、6个点介于第2和第3个点之间;

步骤六,利用步骤五中标定的点(tx2,ty2)、(tx3,ty3)、(tx5,ty5)和(tx6,ty6)计算上边线倾斜段的斜率,具体计算公式如下:

同理,下边线倾斜段的斜率由下式近似给出:

步骤七,定位上下边缘检测范围,即检测带;

步骤八,在竖直方向上搜索检测带范围内图像黑像素变化曲线中斜率的最大值位置;

步骤九,依据倾斜段斜率,剔除非边缘点;

步骤十,剩下的边缘点进行分段三次hermite插值,拟合出光滑的目标边缘曲线;

步骤十一,起跳点判读。

下面结合具体实施例对本申请的应用原理作进一步的描述。

实施例1:对质量较好的底片图像进行边缘坐标检测;

执行步骤1~11:

步骤1,对rgb格式底片源图像i采用加权平均法灰度化;

步骤2,对灰度图像g进行中值滤波,滤波模板大小3×3,线性灰度拉伸;

步骤3,对图像h做非线性各向异性扩散边缘增强,得到边缘增强图enh;

步骤4,对图像enh利用radon变换进行水平校正,得到图像enhh;

步骤5,在图像enhh上,对若干目标边缘上的点进行局部放大标定;

步骤6,利用步骤5中标定的点(tx2,ty2)、(tx3,ty3)、(tx5,ty5)和(tx6,ty6)计算上边线倾斜段的斜率;

步骤7,定位上下边缘检测范围,即检测带;

步骤8,在竖直方向上搜索检测带范围内图像黑像素变化曲线中斜率的最大值位置;

步骤9,依据倾斜段斜率,剔除非边缘点;

步骤10,剩下的边缘点进行分段三次hermite插值,拟合出光滑的目标边缘曲线;

步骤11,起跳点判读。

实验结果:水平段距离(圆筒壁直径)7.42mm,与使用工具显微镜的判读结果7.43mm相差0.01mm。并从图2看出,本申请与人工使用工具显微镜判读的平均线非常吻合。

实施例2:对图像质量比较差、边缘弱的底片图像进行边缘坐标检测;同样执行步骤1~11;

实验结果:水平段距离(圆筒壁直径)7.51mm,与使用工具显微镜的判读结果7.53mm相差0.02mm。并从图3看出,同样地,本申请与人工使用工具显微镜判读的平均线非常吻合。

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