当前位置: 首页 > news >正文

小波纹理特征提取 MATLAB 程序

小波纹理特征提取 MATLAB 程序。这套方法源自 Chang & Kuo (1993) 的“Texture Analysis with Tree-structured Wavelet Transform”,是 Brodatz 纹理分类、遥感影像、医学图像 中最常用的小波特征方案之一。


一、小波纹理特征的核心思想

  1. 对图像做多尺度小波分解(DWT)
  2. 在每个子带(LH, HL, HH)上提取统计量
  3. 将这些统计量拼接成特征向量

为什么用小波做纹理?

  • 空间局部性(比 Fourier 好)
  • 多分辨率(捕捉粗细纹理)
  • 方向选择性(水平 / 垂直 / 对角)

二、小波分解结构(3 层为例)

LL3 LH3 HL3 HH3
  • LL:低频(近似)
  • LH:水平边缘(垂直纹理)
  • HL:垂直边缘(水平纹理)
  • HH:对角边缘(点状/角状纹理)

纹理信息主要集中在 LH / HL / HH 子带


三、纹理特征定义(最常用 8 维)

对每个子带(LH, HL, HH),计算:

特征含义
均值(Mean)能量水平
标准差(Std)对比度
能量(Energy)均匀性
熵(Entropy)复杂性

3 子带 × 4 特征 = 12 维(论文常用 8~24 维)


四、MATLAB 实现(自包含)

主程序:wavelet_texture_feature.m

%% wavelet_texture_feature.m% 基于小波变换的纹理特征提取% 输入: 灰度图像 I% 输出: featureVec (N×1)functionfeatureVec=wavelet_texture_feature(I,waveletName,level)ifnargin<2,waveletName='db4';endifnargin<3,level=3;end% 转为灰度ifsize(I,3)==3I=rgb2gray(I);endI=im2double(I);% ===== 1. 小波分解 =====[C,S]=wavedec2(I,level,waveletName);featureVec=[];% ===== 2. 逐层提取细节子带特征 =====forl=1:level% 提取 LH, HL, HH[H,V,D]=detcoef2('all',C,S,l);% 对每个子带计算特征featureVec=[featureVec;...subband_features(H);...subband_features(V);...subband_features(D)];endend%% --------------------------------------------------%% 子带特征计算函数functionfeat=subband_features(subband)% 防止空矩阵ifisempty(subband)feat=zeros(4,1);return;end% 1. 均值mu=mean(subband(:));% 2. 标准差sigma=std(subband(:));% 3. 能量energy=sum(subband(:).^2);% 4. 熵p=abs(subband(:));p=p/(sum(p)+eps);% 归一化entropy=-sum(p.*log2(p+eps));feat=[mu;sigma;energy;entropy];end

五、使用示例(纹理分类 / Brodatz)

%% demo_wavelet_texture.mclear;clc;close all;% 读取纹理图像(Brodatz / 自建)I1=imread('texture1.png');% 如 D16 (wood)I2=imread('texture2.png');% 如 D17 (water)% 提取特征f1=wavelet_texture_feature(I1,'db4',3);f2=wavelet_texture_feature(I2,'db4',3);fprintf('特征维度: %d\n',length(f1));% 可视化特征figure('Color','white')subplot(1,2,1)bar(f1);title('Texture 1 Features');xlabel('Feature Index');grid onsubplot(1,2,2)bar(f2);title('Texture 2 Features');xlabel('Feature Index');grid on%% 相似度比较(欧氏距离)dist=norm(f1-f2);fprintf('纹理特征欧氏距离: %.4f\n',dist);

六、特征可视化(小波子带)

%% visualize_wavelet_decomp.mI=imread('texture1.png');ifsize(I,3)==3,I=rgb2gray(I);endI=im2double(I);[C,S]=wavedec2(I,3,'db4');% 重构各子带A3=wrcoef2('a',C,S,'db4',3);H3=wrcoef2('h',C,S,'db4',3);V3=wrcoef2('v',C,S,'db4',3);D3=wrcoef2('d',C,S,'db4',3);figure('Color','white','Position',[100100800600])subplot(2,2,1),imshow(A3),title('LL3 (Approximation)')subplot(2,2,2),imshow(H3),title('LH3 (Horizontal)')subplot(2,2,3),imshow(V3),title('HL3 (Vertical)')subplot(2,2,4),imshow(D3),title('HH3 (Diagonal)')

参考代码 基于小波的纹理特征提取代码www.youwenfan.com/contentcsw/82760.html

七、特征增强方案

1. 多尺度能量比(MSE)

Eratio=ELH(l)ELL(l)E_{ratio} = \frac{E_{LH}^{(l)}}{E_{LL}^{(l)}}Eratio=ELL(l)ELH(l)

2. 小波包特征(更精细)

wp=wpdec(I,3,'db4');E=wenergy(wp);

3. 旋转不变特征

  • 对 LH/HL/HH 取能量 + 熵的平均
  • 或做复数小波(DT-CWT)

八、与 GLCM / LBP 的对比

方法优点缺点
GLCM统计意义明确计算慢、对尺度敏感
LBP旋转不变、快对噪声敏感
小波纹理多尺度、方向性强需选小波基

工程经验

  • 医学影像 →小波 + GLCM
  • 工业缺陷 →小波 + LBP
  • 遥感分类 →小波包 + SVM

九、SVM / KNN 分类接口

%% 训练分类器features=[f1';f2'];labels=[1;2];model=fitcecoc(features,labels);% SVM% 预测新样本f_test=wavelet_texture_feature(testImg,'db4',3)';pred=predict(model,f_test);
http://www.jsqmd.com/news/1146065/

相关文章:

  • 欧洲消暑品类跨境爆单复盘:Temu卖家高效铺货实操方案
  • Claude 3.5 Sonnet vs GPT-4o 多模态能力对比:5项真实任务实测与成本分析
  • 【零基础搭建】 OpenClaw 小龙虾,打造可自主操作电脑的数字助手(含安装包)
  • 2026小红书去水印方法教程:官方无水印保存与安全免费工具
  • 基因表达载体的构建伯远生物
  • 本地AI开发第0步:Node.js环境搭建与nvm版本管理实战
  • MoneyPrinterTurbo:从零到一的AI短视频自动化生成实践
  • 145、EIoU 到 SIoU 的替换对比:角度惩罚对旋转和倾斜目标的增益分析
  • AI风口来袭:小白程序员如何精准定位,稳入大模型赛道?速收藏!
  • 广州增城标识标牌生产制造商哪家好
  • 170、多 Agent 协作系统:AutoGen、CrewAI 的原理、角色分工与通信协议
  • 强化学习生成机器人演示数据:从仿真到实机的高质量轨迹构建方法
  • 几何感知控制屏障函数:伯恩斯坦SDF实现毫秒级碰撞规避
  • 从曝光、触达到留存:现代企业必备的全链路商务营销工具
  • 为什么信奥赛学霸做题那么快?不是智商高,而是他们的大脑里,存放的方法更多!
  • 2026微博去水印方法官方合规教程:图片视频工具实操与侵权风险说明
  • QRazyBox终极指南:3步修复任何损坏的二维码,免费开源工具让你轻松恢复数据
  • 数据质量监控规则怎么配?一条完整规则从定义到告警
  • 三步搞定游戏语言障碍:LunaTranslator零基础入门指南
  • 三步骤在Linux上安装Photoshop CC 2022:告别专业软件缺失的困扰 [特殊字符]
  • 多模态对齐技术解析:从显式DTW到隐式注意力,3种方法解决模态语义鸿沟
  • 从业20年,我这样看2026年水果店收银系统品牌选择
  • FastAPI订单防超卖实战:从数据库锁到Saga分布式事务,这一篇给你理清了
  • RISC-V IDE MRS2调试秘籍(三):通过栈帧可视化模块定位栈溢出、栈内存非法篡改等运行时错误
  • 10-30V直流,每轴1.9A RMS——六轴控制集成度做到这个水平,只需一块TMCM-6214
  • GLM-5.2本地部署配置推荐:8×H200、8×H20、8×B200与Q4方案
  • 如何在Mac上轻松运行Windows应用:Whisky完整使用指南与实战教程
  • Scikit-learn 1.4.2 SVM 实战:690条数据划分600/90,RBF核函数准确率88.9%
  • 2026最新6款AI编程助手基础版免费实测合集
  • 收藏必备!小白程序员轻松入门大模型开发:AI Agent与RAG核心干货解析