基于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 进阶爬虫:解析知识星球 API
开发语言·爬虫·python
季明洵8 小时前
反转字符串、反转字符串II、反转字符串中的单词
java·数据结构·算法·leetcode·字符串
赴前尘8 小时前
记一次golang进程执行卡住的问题排查
开发语言·后端·golang
whale fall8 小时前
如何在同一台电脑里安装32 位 Python 和 64 位 Python
开发语言·笔记·python·学习
2401_841495649 小时前
【Python高级编程】近似串匹配
python·算法·动态规划·字符串·数组·时间复杂度·空间复杂度
lingggggaaaa9 小时前
安全工具篇&魔改二开&CheckSum8算法&Beacon密钥&Stager流量&生成机制
学习·算法·安全·web安全·网络安全·免杀对抗
Python+JAVA+大数据9 小时前
SQL玩出算法竞赛高度!郑凌云数独算法:递归CTE+位运算DFS回溯全解析
数据库·sql·算法·搜索引擎·深度优先·dfs
.清和.9 小时前
【js】Javascript事件循环机制
开发语言·javascript·ecmascript
MicroTech20259 小时前
量子主成分分析(QPCA):微算法科技(NASDAQ :MLGO)重构图像降维与特征提取的技术
科技·算法·重构
历程里程碑9 小时前
滑动窗口------滑动窗口最大值
大数据·python·算法·elasticsearch·搜索引擎·flask·tornado