理论教育 自主水下航行器导航与控制技术-模板匹配实验结果

自主水下航行器导航与控制技术-模板匹配实验结果

时间:2023-08-26 理论教育 版权反馈
【摘要】:调用OpenCV阈值函数,对灰度图的光源进行阈值检测。调用OpenCV的函数threshold(),其对输入图片有五种类型的操作,原理如表8-4所示。本实验采取的是第四种检测方法,当灰度图有高亮的部分即光源检测后其值为输入的灰度值,其他部分输出0的灰度值为黑色。当提取出图片中源的轮廓时对所有光源轮廓进行面积计算,选出面积最大的光源。图8-9原图图8-10阈值化后的图像图8-11进行边缘检测图像图8-12输出轮廓面积及质心坐标

自主水下航行器导航与控制技术-模板匹配实验结果

摄像机捕获到图片时采集到的图片为RGB格式,先要将图片转换为灰度图,再对函数进行高斯滤波、均值滤波和形态学开运算,去除图像的噪点。调用OpenCV阈值函数,对灰度图的光源进行阈值检测。调用OpenCV的函数threshold(),其对输入图片有五种类型的操作,原理如表8-4所示。

表8-4 阈值检测函数原理

表8-4中,src(x,y)代表输入图像某个像素点的灰度值;dst(x,y)代表经过函数处理后输出的图像像素的灰度值;max val为图像像素最大灰度值255为白色,0为图像像素最小灰度值为黑色;thresh为函数设定的阈值。本实验采取的是第四种检测方法,当灰度图有高亮的部分即光源检测后其值为输入的灰度值,其他部分输出0的灰度值为黑色。这样可以将摄像机捕获到的图像中的光源与背景区分开来。接着再用canny算子检测图像的边缘轮廓,将图像中光源轮廓提取出来。其算法原理是分别对图像的x方向和y方向各求一阶导数,然后将其组合为4个方向的导数。如果方向导数达到了局部最大值,则将这些点将作为边缘的候选点,然后在设定两个上下限阈值。如果一个像素的梯度大于上限阈值则被认为是边缘轮廓像素;如果低于下阈值则抛弃这个边缘候选点;如果其介于上下阈值之间,当其与边缘轮廓像素相连时则认为是边缘轮廓像素,当其不与边缘轮廓相连时这不认为它是边缘轮廓像素。通过这个算法能很好地提取图像的边缘轮廓。当提取出图片中源的轮廓时对所有光源轮廓进行面积计算,选出面积最大的光源。这样可以排除其他细小光源的干扰。计算输出轮廓质心坐标作为控制输入。算法流程图如图8-8所示。

图8-8 引导算法流程图

实验中各流程效果如图8-9~图8-12所示:图8-9为实验原图,光源位于图片当中;在图片8-10中通过阈值化成功将光源提取出来并检测到其边缘(图8-11);最后排除了右上角的干扰光源找到目标光源并输出其面积和坐标(图8-12)。可以看出计算机准确地找到了面积最大的光源并输出其质心坐标和面积值。

(www.daowen.com)

图8-9 原图

图8-10 阈值化后的图像

图8-11 进行边缘检测图像

图8-12 输出轮廓面积及质心坐标

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈