基于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等。

相关推荐
Kaltistss4 分钟前
98.验证二叉搜索树
算法·leetcode·职场和发展
知己如祭8 分钟前
图论基础(DFS、BFS、拓扑排序)
算法
mit6.82417 分钟前
[Cyclone] 哈希算法 | SIMD优化哈希计算 | 大数运算 (Int类)
算法·哈希算法
c++bug20 分钟前
动态规划VS记忆化搜索(2)
算法·动态规划
哪 吒22 分钟前
2025B卷 - 华为OD机试七日集训第5期 - 按算法分类,由易到难,循序渐进,玩转OD(Python/JS/C/C++)
python·算法·华为od·华为od机试·2025b卷
-凌凌漆-25 分钟前
【Qt】QStringLiteral 介绍
开发语言·qt
程序员爱钓鱼25 分钟前
Go语言项目工程化 — 常见开发工具与 CI/CD 支持
开发语言·后端·golang·gin
澪-sl1 小时前
基于CNN的人脸关键点检测
人工智能·深度学习·神经网络·计算机视觉·cnn·视觉检测·卷积神经网络
军训猫猫头1 小时前
1.如何对多个控件进行高效的绑定 C#例子 WPF例子
开发语言·算法·c#·.net
success1 小时前
【爆刷力扣-数组】二分查找 及 衍生题型
算法