基于Gabor小波特征提取和PSO-SVM的胃溃疡分类(MATLAB R2018a)

Gabor滤波器是在测不准原则下能够在时域和频域中唯一能取得最佳的联合分辨率函数(测不准原则:是指在时域与频域中都要获得任何的测量精度那是不可能同时实现的,要使时域分辨率有所提高,必须牺牲频域的分辨率,反之亦然),进而Gabor小波滤波器则是由Gabor滤波器演化而来的,它结合Gabor滤波器多角度和小波滤波器的多尺度的优点,而且它的多通道滤波与人类的视觉系统相似,因为人类的视觉系统针对于不同的视觉信号它的频率还有方向是有不同的感觉特质的,该视觉系统是把我们的视网膜上形成的图像分成好多滤波以后的图像,这些滤波后的图像每一个都刻画描述了视网膜上形成的像在一定范围内的成分,这样的局部的范围研究者们通常就称之为通道。由于多通道滤波与人类的视觉系统相似,所以纹理的特征提取中它具有很大的作用。

Gabor在1046年那一年,为了从信号的Fourier变换提取出局部的信息,从而引入了时间局部化的窗函数,得到了窗口Fourier变换。由于窗口Fourier变换仅仅依赖于部分的时间信号,所以人们把现在的窗口Fourier变换又称为短时Fourier变换,这个变换又称为Gabor变换。称为Gabor变换主要是因为这类变换是1946年由Gabor首先引用的,虽然他当时引入的研究者们现在称之为Gabor变换并不是现今的这种形式,而是窗函数取Gauss函数的特殊情形。由Gabor函数形成的Gabor滤波器其实是一类特殊的加有Gauss窗的Fourier变换,其中窗函数对于图像则决定了其在空间域中的局限特质,如果研究者移动了窗函数窗口的中心,那他就可以获得不同的位置上图像的空间域的信息。除此之外,因为经过Gabor变换后Gauss函数仍旧是Gauss函数,这样子不管是在空间域上还是在频率域上Gabor变换都是局部的。如此说来,如果人们用Gabor变换针对纹理图像来进行纹理分析时,那么就可以既满足空间域上的局部性又可以满足频率域上的局部性。

研究者们常常把各种各样的图像当做是二维的离散序列,正因为如此,在研究中常用二维的Gabor函数所形成的二维的Gabor滤波器来进行图像的纹理特征提取。另外还有一个特别重要的原因就是Gabor函数与人类还有其他的哺乳动物的视觉表皮皮层细胞的感受视野相似,再加上非常好的空间局部特性和方向选择特性,可以捕捉到纹理图像在不同的频率不同的方向上的边缘和局部特性。

鉴于此,采用Gabor小波特征提取和PSO-SVM方法对胃溃疡进行分类,运行环境为MATLAB R2018a。

Matlab 复制代码
% 训练SVM模型
model = svmtrain(train_wine_labels,train_wine,cmd);
[predict1] = svmpredict(train_wine_labels,train_wine,model);
%
[train_wine_labels n]=sort(train_wine_labels);%对结果进行排序,使得画出来的结果图只管一点

figure;
hold on;
stem(train_wine_labels,'o');
plot(predict1(n),'r*');
xlabel('训练集样本','FontSize',12);
ylabel('类别标签','FontSize',12);
legend('实际训练集分类','预测训练集分类');
title('训练集分类结果','FontSize',12);
grid on;

%% SVM网络预测
[predict_label,accuracy] = svmpredict(test_wine_labels,test_wine,model);
% 打印测试集分类准确率
total = length(test_wine_labels);
right = sum(predict_label == test_wine_labels);


%% 结果分析
[test_wine_labels n]=sort(test_wine_labels);

figure;
hold on;
stem(test_wine_labels,'o');
plot(predict_label(n),'r*');
xlabel('测试集样本','FontSize',12);
ylabel('类别标签','FontSize',12);
legend('实际测试集分类','预测测试集分类');
title('测试集分类结果','FontSize',12);
完整代码:https://mbd.pub/o/bread/mbd-Y52YlJ1p
grid on;

担任《Mechanical System and Signal Processing》《中国电机工程学报》《控制与决策》等期刊审稿专家,擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

相关推荐
冷雨夜中漫步8 小时前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
颜酱9 小时前
图结构完全解析:从基础概念到遍历实现
javascript·后端·算法
m0_7369191010 小时前
C++代码风格检查工具
开发语言·c++·算法
yugi98783810 小时前
基于MATLAB强化学习的单智能体与多智能体路径规划算法
算法·matlab
2501_9449347310 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
啊森要自信10 小时前
CANN ops-cv:面向计算机视觉的 AI 硬件端高效算子库核心架构与开发逻辑
人工智能·计算机视觉·架构·cann
DuHz10 小时前
超宽带脉冲无线电(Ultra Wideband Impulse Radio, UWB)简介
论文阅读·算法·汽车·信息与通信·信号处理
Polaris北极星少女10 小时前
TRSV优化2
算法
黎雁·泠崖10 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
代码游侠11 小时前
C语言核心概念复习——网络协议与TCP/IP
linux·运维·服务器·网络·算法