亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? colwavelift.m

?? 暫時只支持jpeg2000支持的 cdf97 和spline53 可以這樣來測試: x=imread( E:studyjpeg2000imageslena.tif ) % see the de
?? M
字號:
function [y, opty] = colwavelift(x, optx, L, direction, mode)
%COLWAVELIFT  performs a single-level one-dimensional wavelet 
%decomposition/construction based on lifting method.
% 
% x, optx: 1-D column array or 2-D matrix.
%   If 2-D matrix is used, the computation is carried on every COLUMNs.
%   optx can be omitted. If not, x is regarded as the even subsequence
%   of the original signal to be transformed, while optx is the odd
%   subsequence, which has the column numbers with x.
%
% L: 1-by-1 structure with two fields lamdaz and K.
%   K is two-element vector [K0, K1], which is the lifting gains.
%   lamdaz is 1-by-M structure if M lifting units are used.
%     lamdaz's two fields coeff and zorder denote the transfer
%     function of every lifting units lamda(Z)
%   e.g. for a wavelet transform with 3 lifting units as
%     lamda1 = a1+a2*z, lamda2 = b1+b2*z^-1, lamda3 = c1*z^(-1)+c2*z
%     and the lifting gains K0 and K1
%   L is to be organized as
%     lamdaz = struct('coeff', {[a1, a2], [b1, b2], [c1, c2], ...
%                    'zorder', {[ 0,  1], [ 0, -1], [-1, 1 ]} );
%     L = struct('lamdaz', lamdaz, 'K', [K0, K1]);
%   With the structure, the lifting process is convenient to reuse.
%
% direction:  'd', 'f', 'dec' or 'forward' 
%                          to indicate decomposition/forward lifting;
%             'r', 'i', 'b', 'rec', 'inverse' or 'backward'
%                          for reconstruction/inverse lifting.
%
% mode: 'lossless' to perform nonlinear approximate lifting for the sake
%                  of lossless compression applications
%       'lossy' to perform common linear lifting structure
%
% Output opty can be omitted. If not, y is denoted the even subsequence
%   of the obtained signal after the lifting process, while opty is the
%   odd subsequence.
%
% Syntax can be used to call COLWAVELIFT:   
%   y = colwavelift(x, L, 'd', 'lossy');
%   y = colwavelift(x0, x1, L, 'd', 'lossy');
%   [y0, y1] = colwavelift(x, L, 'd', 'lossy');
%   [y0, y1] = colwavelift(x0, x1, L, 'd', 'lossy');
%
% Reference:
%   [1] D.S.Taubman et al., JPEC2000 Image Compression: F. S. & P.,
%       Chinese Edition, section 6.4, 6.5, 10.3 and 10.4
%   [2] Pascal Getreuer, waveletcdf97.m from Matlab file Exchange website
%
% Contact information: 
%   Email/MSN messenger:  wangthth@hotmail.com
%
% Tianhui Wang at Beijing, China,  Aug 5, 2006
%                  Last Revision:  Aug 6, 2006

%---------------------- input arguments checking  ----------------------%
error(nargchk(4, 5, nargin));
if nargin == 4
    mode = direction;
    direction = L;
    L = optx;
end
% check optx
if nargin == 5
    if size(optx, 2) ~= size(x, 2)
        error('COLWAVELIFT:InArgErr', ['The first two arguments must' ...
        ' have the same column numbers.']);
    end
    if ~isreal(optx) || ~isnumeric(optx) || (ndims(optx) > 2)
        error('COLWAVELIFT:InArgErr', ['The second arguments must' ...
        ' be a real, numeric 2-D or 1-D matrix.']);
    end
end
% check x
if ~isreal(x) || ~isnumeric(x) || (ndims(x) > 2)
    error('COLWAVELIFT:InArgErr', ['The first argument must' ...
    ' be a real, numeric 2-D or 1-D matrix.']);
end
% check direction
if ischar(direction) && ismember(direction, {'d', 'dec', 'f', 'forward'})
    direction = 'd';
elseif ischar(direction) && ismember(direction, {'r', 'rec', ...
        'b', 'backward', 'i', 'inverse'})
    direction = 'r';
else
    error('COLWAVELIFT:InArgErr', ['For the last argument, use ''d'' ' ...
        'to denote decomposition/forward lifting \n or ''r'' for ' ...
        'reconstruction/inverse lifting.']);
end
% check mode
if ~ischar(mode) || ~ismember(mode, {'lossy', 'lossless'})
	error('COLWAVELIFT:InArgErr', ['The last argument must be either' ...
        ' ''lossy'' or ''lossless'' to decide the reversibility.']);
end
% check L
% a thorough check on L is too lengthy. see the comment lines 
% for the way L is organized
if ~isstruct(L)
    error('COLWAVELIFT:InArgErr', ['Use a Matlab data type' ...
        ' ''structure'' to denote the lifting structure. \n Type' ...
        ' ''help colwavelift'' to see the way the structure shall be' ...
        ' organized.']);
end
%-----------------------  input pretreatment ---------------------------%
% use notation y y0 y1 and clear x optx
if nargin == 4 % without optx
    y0 = x(1:2:end, :);
    y1 = x(2:2:end, :);
    y = x;
else % nargin == 5, ie, with optx
    y0 = x;
    y1 = optx;
    y = zeros(size([y0; y1]));
    y(1:2:end, :) = y0;
    y(2:2:end, :) = y1;
end
clear x optx;
sy = size(y);
% for unit-length seqence, skip lifting precess, ie, return y = x
if size(y, 1) > 1
    ry0 = size(y0, 1);  % y y0 y1 are changing during extension and
    ry1 = size(y1, 1);  % lifting and inverse lifting processes, while 
                        % sy ry0 ry1 remain unchanged for use
    len = length(L.lamdaz);
    % default plus/minus switch for core lifting process
    eval('plusminus = 1;');
%---------------------    symmetric extension    -----------------------%
% Difficulty lies in the boundary handling. For the sake of the
% adaptability of lifting structure L, more general but more complex
% treatment is employed here. Note for a single realization of FWT, eg. 
% for cdf9/7 or spline5/3, simpler algorithm can be used.    
    % compute the lift and right shifts needed for x0 or x1
    temp = [L.lamdaz.zorder];
    rshift = - sum( temp(find(temp<0)) ) * 2;
    lshift = sum(temp) * 2 + rshift;
    if ry1 ~= ry0
        rshift = rshift + 1;
    end
    % extension
    for i = 1: max(lshift, rshift)
        y = [y(2*i, :); y; y(sy(1)-1, :)];
    end
    if rshift > lshift
        y = y(rshift-lshift+1:end, :);
    elseif rshift < lshift
        y = y(1:end+rshift-lshift, :);
    end
    % get even and odd subsequences with extensions to be lifted
    y0 = y(1:2:end, :);
    y1 = y(2:2:end, :);
    clear y;    
%---------  additional input pretreatment for inverse lifting  ---------%
% algorithm: modify the input of inverse lifting to include the inverse 
% process in the same framework(core lifting process) with forward lifting.
    if strcmp(direction, 'r')
        % move lifting gains to front
        y0 = y0 / L.K(1);  L.K(1) = 1;
        y1 = y1 / L.K(2);  L.K(2) = 1;
        % if lamdas' number is even, x0 and x1 shall be exchanged and 
        % after forward lifting exploited, corresponding output y0 and y1
        % are to be exchanged back
        if rem(len,2) == 0
            temp = y0;
            y0 = y1;
            y1 = temp;
        end
        % reversely place the lamdas
        for i = 1: floor(len/2)
            temp = L.lamdaz(i).coeff;
            L.lamdaz(i).coeff = L.lamdaz(len-i+1).coeff;
            L.lamdaz(len-i+1).coeff = temp;            
            temp = L.lamdaz(i).zorder;
            L.lamdaz(i).zorder =  L.lamdaz(len-i+1).zorder;
            L.lamdaz(len-i+1).zorder = temp;
        end
        % set plus/minus switch for the core lifting process
        eval('plusminus = -1;');
    end
%-----------------------   core lifting process  -----------------------%        
    for i = 1: len
        % lamdaz(i) ** y_(rem(i-1,2)). ** denotes convolution here 
        eval('yconv = zeros(size(y0));');
        for j = 1: length(L.lamdaz(i).zorder)
            % the use of circshift is only to achieve concise writing and
            % the overflowed samples on both sides can be simply dropped
            eval(['yconv = yconv +  circshift(y' num2str(rem(i-1,2)) ...
                    ', -L.lamdaz(i).zorder(j)) * L.lamdaz(i).coeff(j);']); 
        end
        % lossy: y_(rem(i,2)) = y_(rem(i,2))+ lamdaz(i) ** y_(rem(i,2))
        % lossless: 
        % y_(rem(i,2)) = y_(rem(i,2)) + floor(0.5+lamdaz(i)**y_(rem(i,2)))
        % change + to - for reconstruction/inverse lifting 
        if strcmp(mode, 'lossy')
            eval(['y' num2str(rem(i,2)) ' = y' num2str(rem(i,2)) ...
                ' + yconv * plusminus;']);
        else % 'lossless'
        	eval(['y' num2str(rem(i,2)) '= y' num2str(rem(i,2)) ...
                ' + floor(yconv + .5) * plusminus;']);
        end
    end
%----------  additional post-treatment for inverse lifting  ------------%
    if strcmp(direction, 'r') && rem(len,2) == 0
        temp = y0;
        y0 = y1;
        y1 = temp;
    end
%-----------------------   de-extension    -----------------------------%
	% remove the extended part and multiply by gains
    y0 = y0(1+lshift/2 : end-floor(rshift/2), :) * L.K(1);
    y1 = y1(1+lshift/2 : end-floor(rshift/2), :) * L.K(2);
    % delete the column having added for odd-length input
    if ry1 < ry0
        y1 = y1(1:end-1, :);
    elseif ry1 > ry0
        y0 = y0(1:end-1, :);
    end
end
%--------------------------   output process   -------------------------%
if nargout == 1
    y = zeros(sy);
    y(1:2:end, :) = y0;
    if sy(1) > 1
        y(2:2:end, :) = y1;
    end
elseif nargout == 2
    y = y0;
    opty = y1;
else
    error('COLWAVELIFT:OutArgErr', ['Invalid output argument numbers. '...
        'Use ''help wavecdf97lift'' for help.']);
end
% EOF

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆123| 美女诱惑一区二区| 国产亚洲一区字幕| 日韩一区二区三区电影在线观看| av成人免费在线观看| 国产99久久精品| 国产精品99久久不卡二区| 久久国产精品区| 久久精品国产色蜜蜜麻豆| 天堂影院一区二区| 日韩精品免费视频人成| 日本三级亚洲精品| 九九国产精品视频| 国内久久精品视频| 国产成+人+日韩+欧美+亚洲| 国产福利一区二区三区| 成人自拍视频在线观看| 99久久婷婷国产综合精品电影 | 91污片在线观看| av激情综合网| 色综合久久九月婷婷色综合| 色香蕉久久蜜桃| 欧美日韩一区二区在线观看视频| 欧美色成人综合| 日韩欧美国产一区二区三区 | 视频一区视频二区在线观看| 日韩—二三区免费观看av| 免费在线视频一区| 国产精品综合在线视频| 一本到不卡精品视频在线观看| 欧美影院精品一区| 精品剧情v国产在线观看在线| 国产网站一区二区| 一区二区三区产品免费精品久久75| 亚洲最新在线观看| 久久国产精品99久久人人澡| 国产成人精品亚洲日本在线桃色| a级高清视频欧美日韩| 欧美日韩在线电影| 国产网站一区二区| 亚洲成av人片在线| 高清不卡在线观看| 欧美日韩精品一区二区天天拍小说| 日韩欧美电影一区| 中文字幕日韩一区| 久久99精品网久久| 色婷婷亚洲综合| ww亚洲ww在线观看国产| 精品一区二区在线播放| fc2成人免费人成在线观看播放| 欧美日韩激情在线| 国产精品人成在线观看免费| 日韩av中文在线观看| 波多野结衣精品在线| 91麻豆精品国产自产在线| 国产精品不卡一区二区三区| 久久99久国产精品黄毛片色诱| 成人免费黄色大片| 精品久久久久久久久久久久久久久| 欧美韩国日本综合| 蜜桃视频在线观看一区二区| 色综合久久综合网欧美综合网 | 久久精品国产亚洲高清剧情介绍 | 99re8在线精品视频免费播放| 日韩视频永久免费| 亚洲综合视频网| 不卡的av在线| 国产女主播视频一区二区| 麻豆精品视频在线观看免费| 欧美视频三区在线播放| 中文字幕欧美一区| 国产.欧美.日韩| 久久久精品tv| 国产在线不卡视频| 日韩一区二区三区高清免费看看| 亚洲午夜久久久久久久久电影院| 91亚洲永久精品| 亚洲欧美一区二区久久| 成人黄页毛片网站| 中文字幕va一区二区三区| 国内成人自拍视频| 精品福利一区二区三区免费视频| 日本视频一区二区三区| 中文字幕永久在线不卡| 成人午夜av电影| 国产女同性恋一区二区| 成人中文字幕在线| 国产精品美女久久久久久久久 | 国产精品美女www爽爽爽| 国产精品香蕉一区二区三区| 久久精品无码一区二区三区| 国产精品一区二区男女羞羞无遮挡 | 三级成人在线视频| 精品视频在线看| 日本亚洲最大的色成网站www| 欧美高清视频不卡网| 青青草精品视频| 久久女同性恋中文字幕| av在线不卡网| 亚洲第四色夜色| 精品久久久久久亚洲综合网 | 激情成人综合网| 国产女人aaa级久久久级| 91网址在线看| 日日欢夜夜爽一区| 久久精品视频在线免费观看| 成人午夜又粗又硬又大| 91原创在线视频| av一区二区久久| 亚洲精品乱码久久久久| 欧美日韩高清一区二区不卡| 日韩av电影免费观看高清完整版| 欧美电视剧在线观看完整版| 9i在线看片成人免费| 亚洲一区二区三区四区在线观看 | 国产精品乱码一区二三区小蝌蚪| 91在线国内视频| 日本伊人色综合网| 中文一区在线播放| 69av一区二区三区| 不卡一区二区中文字幕| 天天综合天天综合色| 国产欧美精品一区二区色综合| 欧美性色黄大片| 东方欧美亚洲色图在线| 婷婷中文字幕一区三区| 国产精品拍天天在线| 久久精品一区二区三区不卡| 成人免费毛片app| 日日摸夜夜添夜夜添精品视频| 亚洲国产成人在线| 91精品国产欧美日韩| 色视频欧美一区二区三区| 久久99精品国产.久久久久| 亚洲区小说区图片区qvod| 精品美女被调教视频大全网站| 在线视频中文字幕一区二区| 国产高清精品网站| 蜜芽一区二区三区| 亚洲精品一二三| 国产精品天天看| 亚洲精品一区二区在线观看| 欧美猛男男办公室激情| 91视频91自| 波多野结衣一区二区三区| av亚洲精华国产精华精华| 国产一区二区导航在线播放| 日韩av一区二| 五月激情六月综合| 亚洲动漫第一页| 亚洲综合激情网| 欧美一区二区福利在线| 欧美亚洲高清一区| 色综合久久99| 日本道精品一区二区三区| www.色精品| 成人av在线电影| av电影在线观看完整版一区二区| 国产69精品一区二区亚洲孕妇| 精品一区二区三区免费播放| 久久国产麻豆精品| 美女视频一区在线观看| 欧美a一区二区| 久久电影国产免费久久电影| 九九九精品视频| 国产尤物一区二区在线| 国产二区国产一区在线观看| 国产成人精品亚洲日本在线桃色| 国产东北露脸精品视频| 成人精品免费网站| 91蝌蚪国产九色| 欧美探花视频资源| 69av一区二区三区| 日韩三级电影网址| 国产人伦精品一区二区| 国产精品萝li| 亚洲妇熟xx妇色黄| 美女视频网站黄色亚洲| 国产精品自拍网站| 91日韩精品一区| 国产精品少妇自拍| 国产香蕉久久精品综合网| 欧美激情一区在线| 亚洲精品va在线观看| 日本成人中文字幕在线视频| 美女一区二区视频| 不卡在线视频中文字幕| 欧美影院精品一区| 久久免费国产精品| 一区二区中文字幕在线| 日日夜夜一区二区| 一本色道久久综合亚洲aⅴ蜜桃 | 成人h动漫精品一区二区| 色综合网站在线| 3751色影院一区二区三区| 久久综合色综合88| 亚洲成人激情av| 国产美女精品一区二区三区| 色狠狠综合天天综合综合| 久久影视一区二区|