为什么80%的码农都做不了架构师?>>>   

小波变换与小波包变换

人脸图像f(x,y) 的一层小波变换如下图所示:

图中LH 分别表示低通滤波器高通滤波器l(n)h(n) 分别表示它们相应的脉冲响应,2↓1表示降2采样fLLfHH分别表示双向低频和高频小波子空间图像,而fLHfHL分别表示一个方向低频、另一个方向高频的小波子空间图像。

若继续对fLL 做小波分解,则称为二层小波变换;若对4个子图都继续做小波分解,则称为二层小波包变换。对只含有低频成分的子图做小波分解,则称为不完全小波包变换

图像小波变换的Matlab代码

clc;
clear;
close all;Xa =[40,10,56,46];  % 56*2=112,46*2-92(图片分辨率为112*92)
Xh =[40,10,56,46];
Xv =[40,10,56,46];
Xd =[40,10,56,46];
for i = 1:40        % 40个人脸for j = 1:10    % 1人10个表情I = imread(strcat('D:\Faces\ORL\s',num2str(i),'\',num2str(j),'.bmp'));      [c1,s1]=wavedec2(double(I),1,'db1');    % 分别做4个方向的小波分解ca = appcoef2(c1,s1,'db1',1);ch = detcoef2('h',c1,s1,1);cv = detcoef2('v',c1,s1,1);cd = detcoef2('d',c1,s1,1);% A = uint8([wcodemat(ca,255),wcodemat(ch,255);wcodemat(cv,255),wcodemat(cd,255)]);% subplot(2,5,j),imshow(A,[],'InitialMagnification',100);for k = 1:56for l = 1:46Xa(i,j,k,l) = ca(k,l);Xh(i,j,k,l) = ch(k,l);Xv(i,j,k,l) = cv(k,l);Xd(i,j,k,l) = cd(k,l);endendend
endfor i = 1:1     % 查看第1个人的10个表情图的小波分解效果for j = 1:10xa = [56,46];xh = [56,46];xv = [56,46];xd = [56,46];for k = 1:56for l = 1:46xa(k,l) = Xa(i,j,k,l);xh(k,l) = Xh(i,j,k,l);xv(k,l) = Xv(i,j,k,l);xd(k,l) = Xd(i,j,k,l);endendA = uint8([wcodemat(xa,255),wcodemat(xh,255);wcodemat(xv,255),wcodemat(xd,255)]);subplot(2,5,j),imshow(A,[],'InitialMagnification',100);end
end

效果图

后记

本例仅给出图像1层小波变换,可以根据实际项目需求做n层图像小波分解,用于提取人脸图像特征。例如:

[c,s] = wavedec2(double(ca),1,'db1');
a = appcoef2(c,s,'db1',1);
% 构造基本分类器D1
for m = 1:28for n = 1:23D1(i,j,m,n) = a(m,n);end
end
h = detcoef2('h',c,s,1);
v = detcoef2('v',c,s,1);
d = detcoef2('d',c,s,1);

具体可以参考论文基于模糊积分的不完全小波包子空间集成人脸识别 翟俊海  王熙照  张素芳

Reference

Matlab小波变换的三级分解程序用于图像处理

帖中代码:

clc;clear;close all
I = imread('lena.bmp');
%subplot(221);
subplot(221),imshow(I,[],'InitialMagnification',100);
title('原始载体图像')%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%图像的一级小波分解
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[c1,s1]=wavedec2(double(I),1,'db1');
ca88 = appcoef2(c1,s1,'db1',1);
ch88 = detcoef2('h',c1,s1,1);
cv88 = detcoef2('v',c1,s1,1);
cd88 = detcoef2('d',c1,s1,1);
A88 = uint8([wcodemat(ca88,255),wcodemat(ch88,255);wcodemat(cv88,255),wcodemat(cd88,255)]);
%subplot(222);
subplot(222),imshow(A88,[],'InitialMagnification',100);
title('图像的一级小波分解');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%图像的二级小波分解
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[c,s]=wavedec2(double(I),2,'db1');
ca2 = appcoef2(c,s,'db1',2);
ch2 = detcoef2('h',c,s,2);
cv2 = detcoef2('v',c,s,2);
cd2 = detcoef2('d',c,s,2);
%ca1 = appcoef2(c,s,'db2',1);
ch1 = detcoef2('h',c,s,1);
cv1 = detcoef2('v',c,s,1);
cd1 = detcoef2('d',c,s,1);A1 = [ca2*4,ch2*4;cv2*4,cd2*4];
k=s(2,1)*2-s(3,1);
ch1 = padarray(ch1,[k k],1,'post');
cv1 = padarray(cv1,[k k],1,'post');
cd1 = padarray(cd1,[k k],1,'post');
%A = [A1,ch1*4; cv1*4,cd1*4];
A = uint8([wcodemat(A1,255),wcodemat(ch1*10,255); wcodemat(cv1*10,255),wcodemat(cd1*10,255)]);
% min = min(A(:));
% max = max(A(:));
%subplot(223);
subplot(223),imshow(A,[],'InitialMagnification',100);
title('图像的二级小波分解');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%图像的三级小波分解
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[c,s]=wavedec2(double(I),3,'db1');
ca3 = appcoef2(c,s,'db1',3);
ch3 = detcoef2('h',c,s,3);
cv3 = detcoef2('v',c,s,3);
cd3 = detcoef2('d',c,s,3);
ch2 = detcoef2('h',c,s,2);
cv2 = detcoef2('v',c,s,2);
cd2 = detcoef2('d',c,s,2);
ch1 = detcoef2('h',c,s,1);
cv1 = detcoef2('v',c,s,1);
cd1 = detcoef2('d',c,s,1);
A2 = [ca3*4,ch3*4;cv3*4,cd3*4];
k=s(2,1)*2-s(3,1);
ch2 = padarray(ch2,[k k],1,'post');
cv2 = padarray(cv2,[k k],1,'post');
cd2 = padarray(cd2,[k k],1,'post');
A1= [A2,ch2*4; cv2*4,cd2*4];
k=s(2,1)*4-s(4,1);
ch1 = padarray(ch1,[k k],1,'post');
cv1 = padarray(cv1,[k k],1,'post');
cd1 = padarray(cd1,[k k],1,'post');
AA = uint8([wcodemat(A1,255),wcodemat(ch1*4,255); wcodemat(cv1*4,255),wcodemat(cd1*4,255)]);
% min = min(A(:));
% max = max(A(:));
%subplot(224);
subplot(224),imshow(AA,[],'InitialMagnification',100);
title('图像的三级小波分解');

效果图:

转载于:https://my.oschina.net/keyven/blog/552050

MATLAB图像小波变换相关推荐

  1. 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】

    一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

  2. matlab图像融合评价,MATLAB 图像融合评估算法

    MATLAB 图像融合评价算法 function laplacian(ori_A,ori_B) path(path,'FusionEvaluation/') %Ori_A = imread('cloc ...

  3. matlab 图像操作函数的详解

    转自博客:http://blog.163.com/fei_lai_feng/blog/static/9289962200991713415422/ 一. 读写图像文件 1. imread imread ...

  4. 图像算法五:【图像小波变换】多分辨率重构、Gabor滤波器、Haar小波

    matlab设计: 与单纯运用某种自适应算法相比,基于小波分解的自适应滤波算法在收敛速度和稳定性上都有了很大的提高 小波变换: 示意:尺度越大,采用越大的时间窗,尺度越小,采用越短的时间窗,即尺度与频 ...

  5. matlab图像融合

    matlab图像融合 [r,c]=size(y1);            %根据低频融合算法进行图像融合 for i=1:r            %首先取两幅源图像相应的小波分解系数绝对值最大者的 ...

  6. matlab图像取反_matlab对图像操作函数的详解

    一. 读写图像文件 1. imread imread函数用于读入各种图像文件,如:a=imread('e:\w01.tif') 注:计算机E盘上要有w01相应的.tif文件. 2. imwrite i ...

  7. 【Matlab 图像】滤波器原理使用及测试效果

    滤波器使用及测试效果 滤波器1:低通滤波 原理 代码 效果 滤波器2:高斯平滑 原理 代码 效果 滤波器3:自适应中值滤波 原理 代码 效果 滤波器4:维纳滤波 原理 代码 效果 滤波器5:最大值滤波 ...

  8. 【Matlab 图像】边缘检测算法及效果演示

    [Matlab 图像]边缘检测算法及效果演示 边缘检测 检测图像中的边缘 Matlab 代码 代码效果如下 边缘算法:robert 边缘算法:sobel prewitt 边缘算法:laplacian ...

  9. 【Matlab 图像】bwlabel() 连通域及图像分割

    [Matlab 图像]bwlabel 连通域及图像分割 1. 函数含义: 2. 示例代码: 2.1 regionprops() 函数 2.1.1 语法如下: 2.1.2 说明如下: 2.2 sort( ...

最新文章

  1. hadoop错误,重新格式化namenode后,出现java.io.IOException Incompatible clusterIDs
  2. SQL 基礎語句-case
  3. 转代码判断邮箱是否合法
  4. 《UML面向对象设计基础》—第1章1.5节消息
  5. Cloud for Customer的主页加载逻辑
  6. 抓住尾部的StackOverFlowError
  7. android 相册 标签,在Android标签上,如何在图片下方显示文字?
  8. 【Linux入门学习之】Linux文件权限与目录配置
  9. 我们一般用的正则表达式合集和工具 any-rule
  10. oracle normal索引类型,Oracle中有多少种索引类型?
  11. PDF编辑(PDF替换指定页)---亲测实用有效!!!
  12. 其实,我只是一个工程师
  13. 获取所有权_住房所有权经济学深入研究
  14. .NET发邮件(验证码)
  15. 优秀孩子的父母都有这五个特点
  16. VideoCapture,mfc读取视频并使用滚动条
  17. java itextpdf 5 基础知识
  18. 打开浏览器时主页被锁定怎么也改不掉的一个好办法
  19. python随机生成二维列表_对python产生随机的二维数组实例详解
  20. android手机应用程序开发,Android手机应用程序开发标准

热门文章

  1. Linux 内存管理 | 物理内存、内存碎片、伙伴系统、SLAB分配器
  2. leetcode18. 四数之和
  3. leetcode189. 旋转数组
  4. 游戏服务器架构:网络服务器端程序线程划分
  5. (十七)深入浅出TCPIP之HTTP和HTTPS
  6. linux时间轮 Timing-Wheel的实现
  7. 关于mysql的一些时间格式和字符的问题
  8. 大数据学习(3)- 分布式文件系统HDFS
  9. 《Python Cookbook 3rd》笔记(1.19):转换并同时计算数据
  10. python 画风场 scipy_Python数据分析及可视化实例之Scipy