14.3.1 处理图像得到应变数据

14.3.1 处理图像得到应变数据

(1)读取图像并切分

首先,读取实验中采集得到的原始图像并显示,如图14-17所示。

之后,将图像切分为两部分,每部分只含有一个标记点。最简单的做法是将图像一分为二,一种更好的做法是以标记点为中心,从图像中切出一个合适大小的区域。这样做至少有两个好处:一是大大减少计算量,二是可以减小其他图像区域对重心计算的影响。

切分图像用imcrop命令来实现。为了更好地应用该函数,先要了解该函数中定义图像区域的方法。

图14-17 实验中使用数字相机采集到的原始图像

imcrop中图像区域由一个向量来定义,称为区域向量。区域向量由4个数字组成,即[x0 y0wh],其具体含义如图14-18所示。

用imcrop切分图像区域有两种方法:一是给定区域向量切分,函数返回切分后的图像矩阵;二是交互式操作切分,函数返回切分后图像矩阵,同时返回区域向量。本部分介绍第二种方法。

运行本实例的程序范例,并手动给出要切分的区域,程序会切分出所需的图像并绘制一个边框在所切分的区域上,如图14-19所示。

图14-18 选取需要计算的标记点区域

图14-19 选取需要计算的标记点区域

(2)计算含标记点图像区域的灰度重心

对于切分后的图像区域,根据前面的原理计算其灰度重心。需要注意的是,对于本例中的黑色标记点,须在计算前先将图像反色(图14-20(a)),使标记点变为白色(图14-20(b))。具体的程序实现如图14-20 (c)所示。

图14-20 图像反色及确定灰度中心

下面进行灰度重心的计算。按照14.1节的原理,可编写图像区域灰度重心计算的函数。

按上述方法分别处理两个图像区域,可计算得到两个标记点的灰度重心坐标。利用两个坐标可以计算两点间的距离,进而计算应变。但是,直接用两个图像区域的灰度重心坐标相减计算距离的做法是错误的,因为这两个坐标计算结果是在不同的坐标系中得到的,必须将其转换到同一坐标系中才能计算。两个图像区域与整体图像坐标系的关系如图14-21所示。

利用图像区域切分的区域向量,可以很容易完成坐标系的转换,将标记点坐标转换到整体坐标系之后,便可计算两个标记点之间的距离了。至此,完成了一幅图像的全部处理。

用一个循环语句按同样的方法处理所有图像后,就可实现应变的计算了。其流程如图14-22所示。

图14-21 两个图像区域与整体图像坐标系的示意图

图14-22 处理全部图像得到应变结果的流程图