掌桥专利:专业的专利平台
掌桥专利
首页

一种基于OpenCV图像处理库识别方法

文献发布时间:2024-04-18 19:58:30


一种基于OpenCV图像处理库识别方法

技术领域

本申请涉及一种图像处理识别方法,尤其是涉及一种基于OpenCV图像处理库识别方法。

背景技术

以前都是人工进行身份对比,利用人眼对比人与身份的验证,从而得到对比结果。这种方法是最古老最原始的方法,但是毕竟是人工处理,判断的准确性有待提高。由于是人力检测,对比所需要的时间比较长,就需要设计一套系统来代替人力完成这方面的工作。人脸识别系统的开发可以帮助完成这项工作,可以代替人工完成这项操作,操作方面简单上手,在每个需要识别身份的岗位中都可以进行使用,可以完成大量的数据识别。

Intel 在 1999 年时建立了 OpenCV,如今 Willow Garage 提供技术支持。OpenCV是一个(开源)的跨平台计算机视觉库,可在 Linux、Windows 以及 Mac OS 的操作系统上。低量级别高效还是在 C 函数和不少 C++ 类组成,在基础之上 Python、Ruby、MATLAB 等做为语言基础,做到了图像处理与计算机视觉方面上很多相同的算法,不用特别依靠外面的数据库,支持外部数据库。OpenCV 为 Intel 提供透明的接口。有特别的优化处理器 APP 库,OpenCV 在启动过程中会自动加载一些数据库。OpenCV 有下列一些特点:

1) 开源并且免费

2) 代码优化能力强、运行计算速度快

3) 方便灵活的用户接口

4) Windows Linux Mas OS 跨平台

5) 图像和矩阵运算能力强大

6) 结构统一和功能众多

OpenCV 是一个开源的可以跨平台运行的计算机视觉库,可以跨平台,整体语言 C函数和 C++语言组成,整体设计理念是用最快的速度进行编译。

发明内容

本申请所需要解决的技术问题是提供一种基于OpenCV图像处理库识别方法,该识别方法简单,不需要进行大量的样本训练。

本申请采用的技术方案如下:一种基于OpenCV图像处理库识别方法,包括图像获取模块、图像处理模块和图像识别模块,所述图像识别模块调用OpenCV模板匹配函数cv::matchTemplate(),所述模块匹配函数的第一个参数是源图像,第二个参数是模板图像,第三个参数是匹配的结果图像,第四个参数是用于指定比较的方法,从训练集中选出36个训练样本拼接成一副图像构成所述源图像,所述模板图像为待识别的图像,所述第四个参数采用归一化的相关性系数匹配方法函数cv::TM_CCOEFF_NORMED进行获取,并利用cv::minMaxLoc()函数找到匹配结果图像的最大值点,就能完成图像识别。

本申请可进一步设置为:所述图像获取模块采用高清晰的激光打印机打印出棋盘格模板,将所述棋盘格模板粘贴在平整透明的硬质底板上,所述硬质底板边沿预留超过一个所述棋盘格宽度的空白区域,在进行拍摄时,摄像机平面与所述棋盘格模板平面呈四十五度角。

本申请可进一步设置为:所述图像处理模块包括以下步骤:a.调用cv::FindChessboardComers()函数提取每一幅棋盘格图片的角点坐标值;b.调用cv::DrawChessboardComers()函数把检测到的所有的角点信息标记在标定靶标上;c.调用cv::CalibrateCamera2()函数对多个靶标图像的角点进行处理,得到内外参数;调用cv::ProjectPoints2函数,利用标定到的内外参数值计算三维点的二维映射点的坐标,从而得到误差值。

本申请可进一步设置为:所述图像处理模块还包括图像预处理,对图像进行2次膨胀操作后再进行1次腐蚀操作。

本申请的有益效果是:在训练集中选出36个训练样本拼接成的一副图像构成源图像,采用归一化的相关性系数匹配方法函数cv::TM_CCOEFF_NORMED进行获取得到用于指定比较的方法,作为第四个参数,cv::minMaxLoc()函数找到匹配结果图像的最大值点,最后调用模板匹配函数cv::matchTemplate()就能完成图像识别,识别方法简单,不需要进行大量的样本训练。

附图说明

以下将结合附图和优选实施例来对本申请进行进一步详细描述,但是本领域技术人员将领会的是,这些附图仅是出于解释优选实施例的目的而绘制的,因此不应当作为对本申请范围的限制。此外,除非特别指出,附图示意在概念性地表示所描述对象的组成或构造并可能包含夸张性显示,并且附图也并非一定按比例绘制。

图1为本申请方法流程示意图。

具体实施方式

下面结合附图,对本申请作详细的说明。

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。

一种基于OpenCV图像处理库识别方法,包括图像获取模块、图像处理模块和图像识别模块,图像识别模块调用OpenCV模板匹配函数cv::matchTemplate(),模块匹配函数的第一个参数是源图像,第二个参数是模板图像,第三个参数是匹配的结果图像,第四个参数是用于指定比较的方法,从训练集中选出36个训练样本拼接成一副图像构成源图像,模板图像为待识别的图像,第四个参数采用归一化的相关性系数匹配方法函数cv::TM_CCOEFF_NORMED进行获取,并利用cv::minMaxLoc()函数找到匹配结果图像的最大值点,就能完成图像识别。

图像灰度是把黑色和白色之间按对数关系分成特定阶数。通常的八位图像的灰度分为 256 阶,常见的彩色 RGB 图像是由红绿蓝三个通道组成的。R、G 和 B 这三个通道都是以灰度表示的,这三个通道的灰度值分别代表红绿蓝在图像中的比重。通常所提到的灰度图像是只有一个通道的图像,该通道的灰度值代表从黑色到白色的程度。模板匹配函数cv::matchTemplate()在待匹配图像中找到和源图像灰度相近的区域即是图像匹配的目标区域,识别方法简单,不需要进行大量的样本训练。

具体实施例中,图像获取模块采用高清晰的激光打印机打印出棋盘格模板,将棋盘格模板粘贴在平整透明的硬质底板上,硬质底板边沿预留超过一个棋盘格宽度的空白区域,在进行拍摄时,摄像机平面与棋盘格模板平面呈四十五度角。考虑到靶标的平整程度对标定精度的影响远远大于随机噪声产生的影响,采用以上方法,能对角点更好地进行检测。

具体实施例中,图像处理模块包括以下步骤:a.调用cv::FindChessboardComers()函数提取每一幅棋盘格图片的角点坐标值;b.调用cv::DrawChessboardComers()函数把检测到的所有的角点信息标记在标定靶标上;c.调用cv::CalibrateCamera2()函数对多个靶标图像的角点进行处理,得到内外参数;调用cv::ProjectPoints2函数,利用标定到的内外参数值计算三维点的二维映射点的坐标,从而得到误差值。该方法运行比较稳定,多次执行程序,能够成功寻找到标定板的角点,读取标定结果方便快捷,可以投入实用,且并未出现内存泄露等问题,标定过程中可以自主、快速地完成标定操作。并避免了使用Matlab标定工具箱进行标定的过程中,需要人工标记四个角点时引入的误差,从节省资源的角度和精度要求的角度出发,改进的算法更适合应用在其他机器视觉系统中。

具体实施例中,图像处理模块还包括图像预处理,对图像进行2次膨胀操作后再进行1次腐蚀操作,得到更为清晰的连续图像边缘信息。调用OpenCV函数获取己标定摄像机的基础矩阵,并对双目图像采用基于窗口的稀疏点匹配,在提取匹配特征是稀疏点匹配时,选择轮廓点为提取的特征点,为了得到更好的匹配效果,对Canny算子提取到轮廓进行了一次膨胀操作,然后对两图进行匹配,最后进行插值处理。

以上对本申请进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请及核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

相关技术
  • 一种基于声信号特征库的风机桨叶故障识别方法
  • 一种基于因果特征抽取的域自适应跨库语音情感识别方法
  • 一种基于扩展数据库与融合模型的窃电行为识别方法
技术分类

06120116503606