资源简介
完整MATLAB代码,曲波变换分解重构,用于图像处理。
代码片段和文件信息
function x = ifdct_wrapping(C is_real M N)
% ifdct_wrapping.m - Inverse Fast Discrete Curvelet Transform via wedge wrapping - Version 1.0
% This is in fact the adjoint also the pseudo-inverse
%
% Inputs
% C Cell array containing curvelet coefficients (see
% description in fdct_wrapping.m)
% is_real As used in fdct_wrapping.m
% M N Size of the image to be recovered (not necessary if finest
% = 2)
%
% Outputs
% x M-by-N matrix
%
% See also fdct_wrapping.m
%
% By Laurent Demanet 2004
% Initialization
nbscales = length(C);
nbangles_coarse = length(C{2});
nbangles = [1 nbangles_coarse .* 2.^(ceil((nbscales-(nbscales:-1:2))/2))];
if length(C{end}) == 1 finest = 2; else finest = 1; end;
if finest == 2 nbangles(nbscales) = 1; end;
if nargin < 2 is_real = 0; end;
if nargin < 4
if finest == 1 error(‘Syntax: IFCT_wrapping(CMN) where the matrix to be recovered is M-by-N‘); end;
[N1N2] = size(C{end}{1});
else
N1 = M;
N2 = N;
end;
M1 = N1/3;
M2 = N2/3;
if finest == 1;
bigN1 = 2*floor(2*M1)+1;
bigN2 = 2*floor(2*M2)+1;
X = zeros(bigN1bigN2);
% Initialization: preparing the lowpass filter at finest scale
window_length_1 = floor(2*M1) - floor(M1) - 1 - (mod(N13)==0);
window_length_2 = floor(2*M2) - floor(M2) - 1 - (mod(N23)==0);
coord_1 = 0:(1/window_length_1):1;
coord_2 = 0:(1/window_length_2):1;
[wl_1wr_1] = fdct_wrapping_window(coord_1);
[wl_2wr_2] = fdct_wrapping_window(coord_2);
lowpass_1 = [wl_1 ones(12*floor(M1)+1) wr_1];
if mod(N13)==0 lowpass_1 = [0 lowpass_1 0]; end;
lowpass_2 = [wl_2 ones(12*floor(M2)+1) wr_2];
if mod(N23)==0 lowpass_2 = [0 lowpass_2 0]; end;
lowpass = lowpass_1‘*lowpass_2;
scales = nbscales:-1:2;
else
M1 = M1/2;
M2 = M2/2;
bigN1 = 2*floor(2*M1)+1;
bigN2 = 2*floor(2*M2)+1;
X = zeros(bigN1bigN2);
window_length_1 = floor(2*M1) - floor(M1) - 1;
window_length_2 = floor(2*M2) - floor(M2) - 1;
coord_1 = 0:(1/window_length_1):1;
coord_2 = 0:(1/window_length_2):1;
[wl_1wr_1] = fdct_wrapping_window(coord_1);
[wl_2wr_2] = fdct_wrapping_window(coord_2);
lowpass_1 = [wl_1 ones(12*floor(M1)+1) wr_1];
lowpass_2 = [wl_2 ones(12*floor(M2)+1) wr_2];
lowpass = lowpass_1‘*lowpass_2;
hipass_finest = sqrt(1 - lowpass.^2);
scales = (nbscales-1):-1:2;
end;
% Loop: pyramidal reconstruction
Xj_topleft_1 = 1;
Xj_topleft_2 = 1;
for j = scales
M1 = M1/2;
M2 = M2/2;
window_length_1 = floor(2*M1) - floor(M1) - 1;
window_length_2 = floor(2*M2) - floor(M2) - 1;
coord_1 = 0:(1/window_length_1):1;
coord_2 = 0:(1/window_length_2):1;
[wl_1wr_1] = fdct_wrapping_window(coord_1);
[wl_2wr_2] = fdct_wrapping_window(coord_2);
lowpass_1 = [wl_1 ones(12*floor(M1)+1) wr_1];
lowpass_2 = [wl_2 ones(12*floor(M2)+1) wr_2];
lowpass_next = lowpass
- 上一篇:bp神经网络预测下一年的数据
- 下一篇:基于块匹配的视频序列的运动补偿
相关资源
- 烟花算法进行函数优化通用matlab代码
- 超效率dea,BCCCCR三个模型matlab代码
- 样本熵的matlab代码
- 一维二维扩散模型Matlab代码
- [MATLAB]数字图像处理—直方图均衡、直
- 数字图像处理GUI
- 多线性规划MatLab代码与数据全
- 单层感知器Matlab代码-或运算
- 曲面拟合MATLAB代码
- pointgrey相机初始化MATLAB代码
- 图像处理的matlab程序
- 数字图像处理——Matlab
- 使用不同去隔行方法进行隔行变逐行
- 基于线性Bregman迭代的矩阵补全MATLAB代
- 基于MATLAB的SAD模板匹配算法
- 论文研究-双阈值分割于本色布疵点检
- MATLAB在数字图像处理中的应用-MATLAB在
- 指纹识别程序Gabor滤波+详细注释+代码
- 指纹图像预处理程序
- 图像预处理相关的matlab代码
- 改进的均值滤波matlab代码
- TVP-VAR模型的MATLAB代码
- SATD算法Matlab代码
- matlab开发-RungeKuttaNystrom
- LMDMATLAB代码
- 图像亚像元位移操作的MATLAB代码
- 图片相似度matlab代码
- SSIM MATLAB代码
- 基于视频的车流量检测 MATLAB代码
- 模糊c均值聚类 FCM算法的MATLAB代码
评论
共有 条评论