毕业设计-基于机器视觉的红枣纹理检测- OpenCV

目录

前言

课题背景和意义

实现技术思路

一、纹理特征描述与分类算法

二、 OpenCV 红枣纹理特征检测

实现效果图样例

最后


前言


    大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

对毕设有任何疑问都可以问学长哦!

选题指导: https://blog.csdn.net/qq_37340229/article/details/128243277

大家好,这里是海浪学长毕设专题,本次分享的课题是

基于机器视觉的红枣纹理检测- OpenCV 

课题背景和意义

纹理普遍存在于我们的客观世界里,其直观意义十分清晰,它可以反映物体表面或结构的基本属性,而且已经逐渐发展成为计算机视觉研究中的一个重要研究课题。在图像处理中,纹理的概念广泛而且模糊,到目前为止还没有一个定义被广泛接受。一般认为,纹理是图像色彩或灰度在空间上的重复或变化,对于随机纹理,它也具有统计学上的意义。纹理研究引起了国内外专家学者的广泛关注和浓厚的研究兴趣,其算法和应用领域也多种多样,目前主要集中在遥感、医学的图像分析,动、静态目标识别,工业检测,文本分割以及基于内容的图像检索等领域。但对 红枣品质检测以及分级的研究鲜有报道,许多外文文献都是中国研究人员所写,很难对国外红枣产业以及技术发展有所深入了解。虽然国外有 50 多个国家从中国引进栽培枣树,然而除韩国还有部分经济栽培以外,多数国家都没有规模种植,大多作为自家食用或者观赏作物,没有带来显著的经济效益。从另一方面可以看出,红枣在国外市场竞争力较弱,中国红枣走向世界仍需技术革新与发展。

实现技术思路

一、纹理特征描述与分类算法

介绍
纹理是物体表面具有的一种属性及重要特征之一,人们可以通过自身的视觉系统对物体表面纹理进行识别。

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第1张图片

纹理具有很强烈的视觉效果,沟纹类的纹理具有一定粗糙性,粒度感强。色彩类纹理具有方向性和周期性,一般比较规则。同时,纹理是一个区域特征,与观察尺度相关。从人们的视觉感知来说,纹理有两个要素:一个是像素灰度或颜色的变化,另一种是立体空间的变化。这些都可以称为具有规律性或随机性的纹理基元。

灰度共生矩阵的纹理描述及归一化
纹理在图像空间中其灰度值会交替反复变化,相距一定距离的像素间会存在一定的灰度相关性。基于灰度直方图的统计特性是纹理分析中,常用的方法之一。这种度量中的一类是以灰度值统计矩为基础的,关于均值的第 n 阶矩可用下式表示:

 其中,Z 表示灰度的随机变量,P(z)是区域内灰度级的直方图,L 是可能的灰度级数,而且

由于灰度共生矩阵的六个纹理描述子的量纲不统一,所以需进行归一化处理,消除量纲差异,采用的归一化映射如下:

除了[0,1]区间归一化,还有其他的归一化方式。 [-1,1]区间归一化的映射具体如下所示:

x 表示原始数据 ,y 是归一化结果数据,ps 是一个结构体能够保存归一化过程的映射情况。Mapminmax 函数所采用的映射是:

形态学的纹理描述

数学形态学(Mathematics Morphology)在集合代数的基础上运用集合论的方法定量描述了图像中目标的几何结构。其基本思想和方法对图像处理的理论和技术产生了重大的影响,可以作为分析图像中目标的几何特征的工具 ,利用具有一定形状的结构元素去对比衡量来提取图像中的相关目标形状,最终实现图像的识别与分析。形态学基本运算:

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第2张图片

 腐蚀和膨胀是处理二值图像过程中常用的两种基本的数学形态学算法,在此基础上引出了其他几种常用的算法。最常见的有开运算、闭运算、形态学梯度、顶帽变换、黑帽变换、击中击不中变换以及细化等。其中黑帽变换可以突出较暗的轮廓,黑帽变换=闭运算结果图-原图,其在红枣上的处理效果如图:

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第3张图片

BP 神经网络分类算法

BP 神经网络全称为 Error Back Propagtion,简称 BP,是一种通过误差的反向传播来进行训练和学习的算法。它是人工神经网络(artificial neural nets,ANN)和前向神经网络中的核心。

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第4张图片

模糊神经网络分类算法

模糊神经网络以模糊集、模糊逻辑为主,以神经网络为辅,模糊化神经网络,即通过神经网络的组织结构对输入的信息进行模糊化处理。本质上就是将 Hopfield 神经网络或前向反馈神经网络等常规的神经网络的输入信号和权值进行模糊化。ANFIS 结构如图所示:

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第5张图片

 支持向量机分类算法

支持向量机(support vector machines,SVM)是一种用于解决分类和回归问题的经典方法 。在二分类问题中,找到距离两类边缘最大的分界面是支持向量机的设计初衷,这个分界面被称为最优超平面,如图

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第6张图片

当存在异常离群点时,分类问题变得线性不可分。SVM 中核函数可以将线性不可分问题,映射到高维空间而变得线性可分。其中径向基核函数公式如下:

低维数据经核函数处理后得到的高维数据可能仍存在离群点,因此引入惩罚因子 C。惩罚因子 C 表示对离群点的重视程度,C 无限大时表示不放弃任何离群点,对于线性不可分问题会变得无解。SVM 模型的目标函数如下:

二、 OpenCV 红枣纹理特征检测

 基于离散小波变换的图像去噪与增强

1)小波分解与重构
小波变换通过一些如伸缩和平移等简单运算,对信号或函数进行自适应的多尺度方向上的分析,能够同时满足在时域和频域中的信号处理需求。
离散小波变换(Discrete Wavelet Transform, DWT)适合应用在数字图像处理中 其可以定义为信号 f (t) 与小波基 φab ( x) 的内积:

平移和伸缩变换母小波得到小波基φab ( x) :

数字图像可以被看作二维信号,对数字图像信号进行一次二维小波分解就可以得到四个子代图像:低频信号 LLi 的整幅图像、高频信号的水平方 HLi 、竖直 LHi 以及对角线HHi ,其中 L 和 H 分别代表低通滤波器和高通滤波器,下标 i 表示分解的尺度,每次分解后得到的四个子代图像是原图像尺寸的一半,所以每个子代图像是原图面积大小的1/4。所以,如果对图像进行小波变换 N 级分解,那么可以得到 1 个低频子代图像,水平、竖直、对角线方向各 N 个高频子代图像,共 3N+1 个子代图像。运用二维小波对一幅图像进行三级变换后的结构如图:

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第7张图片

第 i 级小波分解后的低频、水平、竖直和对角线方向系数分别用 cAi cHi cV icDi 表示,那么小波分解的过程如图:

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第8张图片

图像重构正好与分解相反,如果用 Ai Hi Vi Di 分别表示图像的低频、水平、竖直和对角线方向子代图像,那么由各系数重构所得图像可以表示为:

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第9张图片

小波重构过程如图:

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第10张图片

2 )红枣图像的去噪与增强

图像增强可以提高图像的视觉品质,也可以突出图像中某些有用的特征信息,有利于人眼感官的理解以及计算机可视化技术的图像处理分析。虽然图像增强不能增加图像数据本身包含的信息,但是能够突出特定特征,在处理中更易识别,从而有利于之后的操作处理。利用单尺度二维离散小波对哈密红枣图像进行单尺度分解及重构:

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第11张图片

OpenCV 统计学的红枣特征纹理提取

1)红枣的灰度共生矩阵纹理统计
依据灰度共生矩阵算法,对红枣灰度图进行纹理描述子提取,即统计均值、标准差、平滑度、三阶矩、一致性和熵共六个特征量。
2)红枣纹理 BP 神经网络分类算法
以哈密干枣的灰度共生矩阵的六个纹理描述子作为 BP 神经网络的输入特征向量,运用梯度下降法、共轭梯度法和拟牛顿法分别训练 BP 神经网络,隐含层节点数分两类,第一类为一层隐含层节点数 10,第二类为两层隐含层节点数为[10,10]。 拟牛顿法等训练算法的收敛速度和训练后 BP 神经网络的精度是评价算法优劣的指标,如图:

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第12张图片

 
3)红枣纹理 ANFIS 分类算法
ANFIS 算法可以将模型的输入和输出模糊化,元素与集合不再是绝对的隶属关系, 而是可以取从 0 1 间的任一数值。对 180 个哈密大枣样本组成的训练集进行训练,得到的预测结果如图:

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第13张图片

用训练好的 ANFIS 模型对 90 个哈密大枣样本组成的测试集进行预测,得到的预测结果如图

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第14张图片

OpenCV 形态学的连通域提取
1) 二进制阈值获取红枣二值图

 具体二值化过程如流程图:

其中小波重构用的是二维离散小波变换,对灰度图进行去噪和增强。

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第15张图片

通过分析灰度直方图 3-13,二进制阈值选取 150,即灰度图像素大于等于 150 则为 1,小于 150 则为 0,效果如图:

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第16张图片

2) 红枣轮廓提取及质心的确定

在得到红枣二值图以后,可以通过形态学的腐蚀和膨胀进行轮廓提取。在实验过程中,以直径为 20 像素的圆形结构进行形态学运算时,得到的部分图像存在缺陷,如图

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第17张图片

当以直径为 50 像素的圆形结构进行形态学运算时,得到的图像满足要求,具体如图:

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第18张图片

质心的获取可以运用区域标记算法,但在获取红枣图像质心前,需要将红枣目标变为白色,因为区域标记算法识别的是白色区域而非黑色区域。具体如图:
b图为 a 图反色运算后得到的红枣轮廓图,c 图用红色星号标记出了红枣的质心。

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第19张图片

 3) 红枣特征纹理提取及质心的确定 

图像之间进行差运算可以使背景变为 0(黑色),如图所示,c 图由 a 与 b 图 作差得到,即 c=a-b。经实验验证,对 c 图以直径为 8 像素的圆形结构进行形态学运算即可得到满足实验要求的特征纹理图像,如图:

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第20张图片

特征纹理在图像中表现为多个连通区域,区域标记算法可以得到各个连通区域的质心,从而为分类模型建立做好准备,效果如图:

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第21张图片

实现效果图样例

以 OpenCV 函数库为核心对于红枣进行数字图像处理:

毕业设计-基于机器视觉的红枣纹理检测- OpenCV_第22张图片

我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。

毕设帮助,疑难解答,欢迎打扰!

最后

你可能感兴趣的:(opencv毕业设计,机器视觉毕业设计,图像识别毕业设计,计算机视觉,目标检测,opencv,深度学习,图像处理)