关键词:Matlab;GUI界面;App Designer;图像分类;特征提取;
背景
纤维图像特征提取与分类是一个涉及图像处理和模式识别的领域,它在材料科学、纺织工程、生物医学成像以及任何需要对纤维结构进行分析的领域都有广泛的应用。纤维可能重叠、交叉或纠缠在一起,使得分割和特征提取变得复杂。不同类型的纤维具有不同的特性,需要开发能够适应这种多样性的算法。自动化纤维图像的分析过程,减少人工干预,提高效率和准确性。
图像获取:纤维图像通常通过显微镜(如光学显微镜、电子显微镜或共聚焦显微镜)获取。图像可以是二维的,也可以是三维的,取决于显微镜的类型和成像技术。图像预处理:由于实际获取的图像可能包含噪声、模糊、对比度不足等问题,因此需要进行预处理以提高图像质量。预处理步骤可能包括去噪、对比度增强、二值化、滤波等。图像分割:图像分割是将图像中的纤维与背景分离的过程。可以使用阈值分割、边缘检测、区域生长或更高级的机器学习方法来实现。特征提取:特征提取是从分割后的纤维图像中提取有助于分类的定量属性。常见的特征包括纤维的长度、宽度、弯曲度、纹理、方向等。图像分类:分类是根据提取的特征将纤维图像分配到不同的类别中。可以使用传统的机器学习算法(如支持向量机、决策树、随机森林)或深度学习方法(如卷积神经网络)进行分类。应用领域:纺织工业,用于评估纤维的质量,如强度、柔软度和耐久性。生物医学,在组织工程中分析细胞外基质的纤维结构。材料科学,研究复合材料中的纤维排列和取向。法医学,通过分析纤维来辅助犯罪现场调查。
图1 天然纤维分类
Harris特征点检测
Harris角点检测算法是一种在计算机视觉中用于识别图像角点的流行技术。角点是图像中两条边缘或边界的交点,它们在图像分析中扮演着关键角色,因为它们通常标志着物体的角落或边界的转折点。Harris算法通过分析图像中每个像素点周围的局部邻域来检测这些角点。
算法的第一步是计算图像中每个像素点的梯度幅度和方向。这通常通过应用Sobel算子或其他梯度算子来完成,这些算子能够提供图像在x和y方向上的梯度信息。随后,算法构造一个2x2的特征响应矩阵,该矩阵的元素是基于高斯权重的像素梯度的加权和,反映了像素邻域内梯度的变化情况。
接下来,算法计算特征响应矩阵的特征值。角点响应函数R是基于这些特征值计算的,它由矩阵的行列式和迹的加权差定义。这个响应函数能够量化每个像素点作为角点的可能性。如果响应函数R的值高于某个阈值,那么该点就被认为是一个角点。
为了提高检测的准确性,算法还包括非极大值抑制过程,这个过程确保了在每个角点候选点的邻域内,只有响应函数值最大的点会被保留为最终的角点。Harris角点检测算法因其对光照变化和噪声的鲁棒性,以及不依赖于图像的特定边缘方向的特性,在计算机视觉领域得到了广泛应用,包括在特征匹配、物体识别和三维重建等任务中。
测试流程原理
图片输入和图片预处理模块:
控制面板包含图片输入按钮。预处理按钮用于处理输入的图片并展示处理后的结果。用户输入图片后,进行预处理,然后进入下一页面。
图像分割和特征提取模块:
使用算法对纤维图像进行分割。提取图像中所需特征并进行标记。输出分割和特征提取后的图像,然后进入下一页面。
纤维图片数据库和自动分类器模块:
包含多张处理后的纤维图片及其对应的纤维名称、类别和相关参数。设计纤维特征分类函数。图像分割和特征提取完成后,将所得图片与数据库中的图片进行对比。通过纤维识别方程筛选出最合适的纤维图片。
输出模块:
输出原始图片。输出特征分割和提取后的图片。输出原始图片对应的纤维种类。
图2 图像分类方法流程图
实验结果
笔者基于上述的方法编写了MATLB代码,搭建了App Designer GUI软件界面,能够快速地实现纤维图像提取与自动分类。读取纤维图片,自动输入纤维种类,显示纤维图像,经过灰度处理,再通过二值化+细化,利用Harris角点检测算法进行特征点提取,进行匹配相似性计算,从而最终输入分类结果,显示纤维种类。笔者写的部分代码和UI界面如图3所示。
图3 Matlab App Designer GUI分类界面
笔者提供了麻棉、麻粘和再生棉等数据库,总共包括接近50张图片,预处理和图像分割和特征提取须(包括从灰度图到细化+特征点提取都要有),软件自动化检测结果如图4所示。
图4 软件自动化检测结果
最后,有相关需求欢迎通过公 众号“320科技工作室”与我们联络