Haar小波(代码)
来源:互联网 发布:大数据技术入门 编辑:程序博客网 时间:2024/05/16 01:36
Haar wavelet Code
包括Haar小波变换以及其逆变换
clear all;clc;%prepare imageoriginalimage = imread('lena.bmp');grayimage = rgb2gray(originalimage);image = double(grayimage);[n,m] = size(image);%lena 512*512max = log2(n);cycle = 2;%进行变换的次数.for count1=1:1:cycle a = [];%average d = [];%detail temp_a = []; temp_d = []; for count2=1:1:n/2^count1 %column %因为正交归一,有1/sqrt(2) temp_a = (image(1:1:n/2^(count1-1),(count2-1)*2 + 1) + image(1:1:n/2^(count1-1),2*count2))/sqrt(2); temp_d = (image(1:1:n/2^(count1-1),(count2-1)*2 + 1) - image(1:1:n/2^(count1-1),2*count2))/sqrt(2); a = [a temp_a]; d = [d temp_d]; end image(1:1:n/2^(count1-1),1:1:n/2^(count1-1)) = [a d];%改变低频部分,当count1 = 1时,改变所有 a = []; d = []; temp_a = []; temp_d = []; for count2=1:1:n/2^count1 %row %因为有正交归一,有1/sqrt(2) temp_a = (image((count2-1)*2 + 1,1:1:n/2^(count1-1)) + image(count2*2,1:1:n/2^(count1-1)))/sqrt(2); temp_d = (image((count2-1)*2 + 1,1:1:n/2^(count1-1)) - image(count2*2,1:1:n/2^(count1-1)))/sqrt(2); a = [a;temp_a]; d = [d;temp_d]; end image(1:1:n/2^(count1-1),1:1:n/2^(count1-1)) = [a;d];endfigure;imshow(image,[]);title('Haar tranformation')%逆变换 故先行后列for count1 = cycle:-1:1 temp_a0 = [];%V1(2x) temp_a1 = [];%V1(2x-1) temp = []; for count2 = 1:1:n/2^count1 %column %因为有正交归一,有1/sqrt(2) temp_a0 = (image(count2,1:1:n/2^(count1-1))+image(count2+n/2^count1,1:1:n/2^(count1-1)))/sqrt(2); temp_a1 = (image(count2,1:1:n/2^(count1-1))-image(count2+n/2^count1,1:1:n/2^(count1-1)))/sqrt(2); temp = [temp;temp_a0;temp_a1]; end image(1:1:n/2^(count1-1),1:1:n/2^(count1-1)) = temp; temp_a0 = [];%V1(2x) temp_a1 = [];%V1(2x-1) temp = []; for count2 = 1:1:n/2^count1 %column %因为有正交归一,有1/sqrt(2) temp_a0 = (image(1:1:n/2^(count1-1),count2)+image(1:1:n/2^(count1-1),count2+n/2^count1))/sqrt(2); temp_a1 = (image(1:1:n/2^(count1-1),count2)-image(1:1:n/2^(count1-1),count2+n/2^count1))/sqrt(2); temp = [temp temp_a0 temp_a1]; end image(1:1:n/2^(count1-1),1:1:n/2^(count1-1)) = temp;endfigure;imshow(image,[]);title('Haar inverse')
效果图
分解两次
还原
0 0
- Haar小波(代码)
- 形态Haar小波的OpenCV代码
- Haar小波变换代码实现
- Haar小波
- Haar小波变换
- Haar小波
- 图像Haar小波变换
- Haar小波变换基本原理
- 一维的Haar小波变换
- 图像处理 离散haar小波变换
- 使用CUDA计算Haar小波变换
- Haar小波变换的快速实现
- 一维的Haar小波变换
- 一维的Haar小波变换
- 一维的Haar小波变换
- 一维的Haar小波变换
- Haar小波变换的推演说明
- SSE2实现HAAR小波变换(dwt2与idwt2)
- 一、runtime之元素认知(一)
- leetcode227-Basic Calculator II(简单计算器的实现)
- Spring框架之<context:property-placeholder />元素
- instancetype代替id进行实例化
- 《LeetBook》leetcode题解(6): ZigZag Conversion[E]
- Haar小波(代码)
- [POJ 1470]Closest Common Ancestors[离线LCA]
- 解析AngularJS表达式
- 设计模式 (4)类图一
- Java查表法实现CRC32校验算法
- Java入门 第一季第三章 常用的运算符
- angularjs插值字符串
- *hdu4269 (贪心)
- 【GDOI模拟】染色配对