APP下载

图像识别在静电场描绘实验中的应用

2019-07-01何小风

物理实验 2019年6期
关键词:理论值静电场外圈

何小风

(武汉理工大学 物理科学与技术系,湖北 武汉 430000)

静电场描绘实验对于学生具象化理解静电场非常有帮助. 静电场描绘的实验仪器采用在纸上扎孔的形式记录相应的电势点,再把电势相同的点用光滑的曲线连起来构成等势线. 教师在对学生的操作评分时,如果像学生一样逐个测量等势圆的半径会非常浪费时间. 目前的解决方法是让学生在坐标纸上打点[1]或者按照1∶1的比例将打点的纸扫描成图,通过计算机去测量[2]:这样很方便地得到所有点的坐标,然后再得出半径. 这种方法虽然准确,但是也很费时,因为一旦打点数目较多,工作量会很大. 基于这些问题,本文引入了计算机图像识别技术来处理打点的纸,从而快速、准确地解决了这个问题.

1 实验和软件的介绍

静电场描绘实验仪器的主体部分如图1所示. 圆心接正极,一般设置为10.00 V,圆环接负极,为0 V. 不同型号的仪器所用的导电层材料可能不同. 当然还有其他结构的静电场描绘仪器,本文主要以图1所示类型的静电场来进行程序的编写.

图1 静电场描绘仪器核心部件原理图

学生通过图1的实验仪器得到的操作结果如图2所示. 图2最外圈的点是图1中圆环的内环也即0 V等势线的点,其余的4圈由外到内依次是1.00 V,3.00 V,5.00 V,7.00 V等势线的点. 最外圈主要用于后续对实际半径的计算,内4圈才是真正作为对学生操作的考核标准.

图2 学生上课时完成的打点图

OpenCV(Open source computer vision library)[3]是开源的用于计算机视觉的库. OpenCV有很多图形处理函数,可以很方便地达到预期的处理效果. 而且OpenCV是基于计算机底层函数编写的,运行速度快. 基于这些优点,本文主要采用OpenCV来进行程序的编写.

2 图像处理流程

获得图2所示的图片后,使用Canny算子[4]获取有效区域,提取各有效区域的轮廓并得到其圆心坐标,以最外圈的半径和圆心标定所有点的实际坐标.

2.1 Canny算子获取有效区域

先利用OpenCV的cvtColor函数[5]将图2转换成灰度图. 原图是彩色图,有RGB 3个通道,数据量较大,通过转换成灰度图后只有1个通道,减小了数据量,可以加快程序运行速度. 然后用OpenCV的Canny函数[6]调用刚刚得到的灰度图,可以得到二值图(只有黑白2色),其中黑色为背景,白色为有效区域. 最后用闭运算[4]弥合各区域的缺陷点,使其成为完整的圆形,这步使用OpenCV的morphologyEx函数[7]实现,将函数的第2个参量设置为cv2.MORPH_CLOSE.

2.2 获取各点坐标值

将2.1最终得到的图形作为参数赋给OpenCV的findContours函数[8],即可获得图形中所用不连通的区域的外轮廓,也即所需要的各点轮廓. 然后对各点区域计算其形心坐标,即为该点的坐标. 将得到的所有的点画在图上,以红色点作为标识,如图3所示.

图3 程序识别出所有点,以红点作为标识

2.3 计算各点实际坐标

2.2得到的各点坐标并非实际坐标,而是图形的像素坐标,需要将其转换成实际坐标. 图2中最外圈的点为实验仪器电源负极也即圆环形电极的内圈,它的半径是定值,可测量,以它作为标准,本实验所用仪器[9]圆环电极的内径为R0=70.0 mm.

接下来选取图2最外圈的点来拟合圆,得出圆的半径和圆心. 选取最常用的“米”字型的8个点进行圆拟合. 在所有坐标点中找以下8个点:x坐标的最大值和最小值,y坐标的最大值和最小值,x+y的最大值和最小值,x-y的最大值和最小值. 找到这8个点后将它们画到图形中以黑色点标识,如图4所示.

图4 程序识别出最外圈的8个特征点,用于拟合圆心和最外圈半径,以黑色点作为标识

这8个点用最小二乘法拟合圆[10]. 拟合后的结果并不理想,可以看到圆向左偏,如图5所示.

图5 蓝色线是以最外圈的8个点进行最小二乘法拟合所得到的圆

再以这8个点的x和y坐标的平均值作为圆心O,以8个点到圆心O的距离的平均值作为半径,得到的圆如图6所示.

图6 蓝色线是以最外圈的8个点求平均值所得到的圆

比较图5和图6可以看到,平均值法明显要优于最小二乘法拟合得到的结果,所以采用这种方法得到的圆心O的坐标和最外圈像素半径R. 最后,用每个点到圆心O的像素距离,乘以最外圈实际半径R0=70.0 mm,再除以最外圈像素半径R,即可得到每个点到圆心O的实际距离.

3 各等势线半径计算

运用教材上的理论公式[9]计算各等势线的半径理论值,以相邻2条等势线半径理论值的平均值作为分界进行归类,计算每条等势线上所有点到圆心O距离的平均值作为该等势线半径的测量值. 分别以各等势线半径的理论值和测量值为半径在原图中画出等势线,如图7所示,红色线是以测量值为半径,蓝色线是以理论值为半径,最外圈的2条线由于误差很小重合了. 计算半径的理论值与测量值的相对偏差,结果如表1所示.

表1 各等势线半径测量值与理论值的比较

图7 各等势线拟合图

通过图7中各点和等势线的分布情况以及表1中计算得到的各等势线的半径、点数、相对偏差等信息,可以看到图像识别得到的结果准确率比较高.

4 结束语

程序的代码由于使用的是OpenCV的函数,运行速度很快,平均每张图片评分所需时间在1 s左右. 本程序仍然存在不足之处. 首先是图形目标区域外噪声点对结果的影响较大. 目标区域外的噪声点会导致最外圈拟合时与真实值的偏差很大,从而使得整个后续的计算都会偏离正确值. 对于这个问题,目前的解决方法是让学生在拍摄图片时尽量不要带噪点. 在下一步的程序中,尝试加入去噪声的代码进行优化. 其次是本程序目前仅适用同心圆形状的静电场,对于其他类型的静电场暂时无法正确计算. 在接下来的工作中,将逐步解决其他类型的静电场的计算.

猜你喜欢

理论值静电场外圈
全陶瓷轴承外圈裂纹位置识别方法
航空发动机高速轴承外圈开裂分析
一道静电场课后习题的拓展与变式
静电场中的“守恒定律”及应用
扩招百万背景下各省区高职院校新增招生规模测度研究
组合变形实验中主应力方位角理论值的确定
智斗灰太狼
“静电场”测试题(A)
静电场测试题
ASME规范与JB/T4730对接焊缝超声检测的灵敏度差异探讨