罗 柱
(广西师范大学附属外国语学校 广西 桂林 541004)
龙 婧
(桂林师范高等专科学校 广西 桂林 541199)
在探究物体热胀冷缩性质的教学实验中,教师通常会以铜球和金属环为例,通过加热和冷却后的铜球能否通过金属环来验证金属是否具有热胀冷缩的性质.实验结论一般总结为:铜球冷却时可以通过金属环,加热后不能通过金属环,再次冷缩后又能通过金属环,说明铜球具有热胀冷缩的性质.
然而,笔者让学生进行分组实验时,有学生没有加热金属球,而是加热了金属环,并提出这样一个问题:加热金属环时,它同时向环内和环外膨胀,那金属环的内径(孔径)是增大了,还是缩小了呢?
由计算公式可知,lt使金属杆变长了,而dt使金属杆变厚了(宽度和高度变大).假设用这段金属杆制成一个封闭的金属环,我们容易知道,杆的长度和厚度决定着环内孔径大小.在杆的厚度不变情况下,杆越长,金属环的周长越长,环内孔径就越大;同理在杆的长度不变情况下,杆越厚(宽度和高度越大),金属环的宽度就越大,环内孔径就越小.
如图1所示,假设金属环的宽度为D,中间孔的直径为d,由热胀冷缩性质可知,沿着轴向A0At方向的膨胀使圆环周长增大,导致环内孔径变大,而沿着径向B0Bt方向的膨胀使圆环宽度增大,导致环内孔径变小.设线膨胀系数为α,温度变化量为Δt,由线膨胀公式可计算出:
图1 金属环宽度D与环内孔径d的3种关系
在轴向A0At方向上,环内孔径的增长量Δd1为
在径向B0Bt方向上,环内孔径的缩小量Δd2为
由上面分析可知,Δd1使孔径变大,Δd2使孔径缩小,而dαΔt和DαΔt的大小关系又取决于d和D的大小关系,可分为下面3种情况:
(1)当d=D,即圆环内孔径d等于圆环宽度D时,Δd1=Δd2,环内孔径的增长量和缩小量相等,表现为圆环孔径不变.
(2)当d>D,即圆环内孔径d大于圆环宽度D时:Δd1>Δd2,环内孔径的增长量大于缩小量,表现为圆环孔径变大.
(3)当d 综上,课本上的演示实验符合d>D的情况,所以,即便是加热金属环,最终看到的现象依然是金属球可以通过金属环. (1)根据前面分析的3种情况,当出现d (2)只加热金属球,不加热金属环,对于知识基础比较薄弱的学生而言,他们甚至会怀疑金属球和金属环并不是同一类物质,从而会质疑实验结论的普适性. (3)经过文献查询,一般金属的线膨胀系数大约在10-5/℃数量级,再加上膨胀系数随着温度的变化而变化,这意味着教学实验中金属环的膨胀量很难用常规测量工具进行实时测量,从而增加了通过测量膨胀数值来验证实验结果的挑战性. 基于以上不足,我们对原有实验做了改进. OpenCV由Intel公司开发,是一种数字图像处理和计算机视觉的函数库,主要应用领域包括:物体识别、图像分割、人脸识别、动作识别等.本文正是基于它的图像识别与分割功能,通过实时获取热胀冷缩实验中金属环的动态图像,经过调用一些函数方法识别出金属环的内外轮廓,并用像素点的多少来表示内外轮廓的“面积”大小.当金属环发生热胀冷缩时,摄像头获取图片的轮廓信息也会随之改变,其中,构成内轮廓的像素点数量变化即代表了金属环内孔径大小的变化. 传统实验一般采用酒精灯加热物体,而本研究采用了PTC恒温加热平台,如图2所示. 图2 基于OpenCV图像识别技术的PTC恒温加热平台 该恒温加热平台的优点在于能够恒温加热金属环,方便我们进行后期数据处理与定量计算,同时该平台的加热面更有利于摄像头对被测物体进行图像识别与信息处理,从而获得更加高效和精确的实验结果. 基于OpenCV图像识别技术的重点是对被测物体的图像信息进行数字信息处理,因受周围环境因素的影响,我们通过摄像头获取的图像信息包含有各种噪声,加上一些被测物体图像信息与周围环境信息对比度较低,从而致使我们获取的目标图像发生畸变.因此,为了消除图像中无关的噪声干扰,提高图像对比度,简化数据处理类别、增强可用信息,相对精准地对图像进行特征分割和特征提取,往往需要以下几个步骤: 3.2.1 图像灰度化 图像灰度化处理是指将彩色图像转化为灰度图像的过程.彩色图像中每个像素的颜色由R、G、B 3个分量决定,每个分量取值范围为0~255,因此一个像素点大概有1 650万种颜色变化范围.如果R=G=B时,彩色表示为一种灰度颜色,此时的图像便是灰度图,其中R=G=B的值叫做灰度值,灰度图像每个像素值的变化范围为0~255,它依然能表示图像的色度以及亮度特征的分布.我们在图像轮廓提取时并不需要分析R、G、B 3个分量信息,因此,将彩色图像转化为灰度图像有利于减少信息处理量,从而提高数据的运算速度.文章中通过调用cv2.cvtColor函数,使用gray=cv2.cvtColor(roi,cv2.COLOR_BGR2GRAY)等语句实现了RGB图像转换成灰度图像. 3.2.2 图像降噪——高斯滤波 图像滤波是指消除图像中不需要的噪声,选择性的保留可用信息.我们可以通过滤波器增强或者降低图像中某个波段的频率,从而获取需要的信息.常用的滤波方式有均值滤波、中值滤波、高斯滤波、双边滤波等,本文采用的是高斯滤波,下面将介绍高斯滤波. 高斯滤波又称高斯模糊,高斯滤波后图像被平滑的程度取决于标准差.它的输出是领域像素的加权平均,同时离中心越近的像素权重越高.因此,相对于均值滤波,它的域像平滑效果更柔和,而且边缘保留的也更好[2].我们设置一个大小为k*k的卷积核,则卷积核上对应像素点G(x,y)的计算公式为 其中,σ是正态分布的标准差,一般情况下,卷积核越大,σ越大,我们得到的图像就越模糊.本文中通过调用高斯函数cv2.GaussianBlur完成图像高斯模糊. 3.2.3 图像二值化、边缘检测与轮廓提取 图像边缘的灰度值往往与周围环境不同,因此可以作为提取轮廓的基础特征.图像二值化是指将整个图像的灰度值转化成0(黑色)和255(白色)两种,也就是把当前所拥有的256个灰度等级的图像选取合适的阈值进行黑白化处理[3]. 图像二值化的基本思路是首先设置一个灰度阈值,然后将目标图像中的每个像素点的灰度值与灰度阈值进行比较,再输出判断结果为0或255.假设某像素点的灰度值为f(x,y),灰度阈值为m,则图像二值化的过程可以表示为 一般情况下,我们可以通过调用cv2.threshold函数来进行图像二值化处理,但是参考阈值往往需要多次尝试才能到达比较好的二值化效果.本文最终采用的是cv2.adaptiveThreshold函数,它能根据输入图像信息自动选取合适的灰度阈值,从而达到图像二值化的效果. 图像的轮廓可以看成是图像边缘上具有相同灰度值的连续点组成,在图像二值化以后,比较常用的边缘检测方法有:Laplace边缘检测算子、Canny边缘检测算子等,而常用的cv2.findContours和cv2.drawContours函数也可以用来提取边缘轮廓,本文就是用这两个函数来实现轮廓提取,下面说明轮廓提取后,如何判断环内外径的变化. 3.2.4 筛选金属环内外轮廓,用像素点数量变化表示环内外孔径变化 通过cv2.drawContours函数可以绘制出金属环的内外轮廓,如图3所示,通过图像识别之后的大圆代表金属环的外轮廓,小圆代表金属环的内轮廓.再通过cv2.contourArea函数可以获取内外轮廓的“面积”,值得注意的是这里的“面积”实际上表示的是大圆和小圆图像内所包含像素点的数量. 图3 提取金属环内外轮廓并计算出轮廓内像素点的数量 为了验证本文最前面提到的3种情况,在上述实验过程中,笔者选取了符合3种情况的金属垫片作为研究对象.下面以D>d的情况对比实验数据进行说明.当垫片圆环内孔径d小于圆环宽度D时,加热前,电脑显示窗口打印的像素点数量为:内轮廓的面积(像素点数量)为1 665.5,外轮廓的面积(像素点)为20 547.5.通过热风枪定温500 ℃加热3 min后,内轮廓的面积(像素点数量)为1606.5,外轮廓的面积(像素点)为20 973.5. 以上数据表明,随着加热实验的进行,内轮廓的像素点数量在不断减少,外轮廓的像素点数量在不断增加,这说明垫片的孔径(内径)在变小,而外径却在增大,实验现象符合我们前面的理论推导. 本文以学生在分组实验时提出“加热金属环时它的孔径(内径)是变大了还是缩小了”的问题展开讨论,通过建立数学模型,展开理论分析,分别讨论了圆环宽度D与环内孔径d的3种大小关系对实验结果的影响.在分析了传统实验存在的不足后,笔者进一步提出了通过图像识别技术来改进实验的思路.通过摄像头实时提取被测物体的轮廓并换算出轮廓内像素点数量的变化,从而将被测物体微小的形变量放大成代表图像信息的像素数量变化.在本实验中,学生可以同时观测到金属环外径和内径的大小变化量,从而解决了“孔径变大还是变小”的疑难问题.3 基于OpenCV图像识别技术的金属环热胀冷缩实验改进设计
3.1 原有实验存在的不足之处
3.2 基于OpenCV图像识别技术的金属环热胀冷缩实验原理分析与验证
4 总结