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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dbl.m

?? 快速傅立葉變換方法實現(xiàn)快速卷積
?? M
字號:
function [finalout]=dbl(FFTrv,FFTiv,IFFTiv,size1,size2,isreal1,isreal2,finetuning)
% [finalout]=dbl(FFTrv,FFTiv,IFFTiv,size1,size2,isreal1,isreal2)
% Determine the best parameters for Overlap-Add FFT-based convolution.
%
% INPUT
% FFTrv:      vector with costs of FFT for real 1d vectors
% FFTiv:      vector with costs of FFT for complex 1d vectors
% IFFTiv:     vector with costs of IFFT for complex 1d vectors
% size1:      size(first_image)
% size2:      size(second_image)
% isreal1:    1 if first image is real, 0 otherwise (complex)
% isreal2:    1 if second image is real, 0 otherwise (complex)
% finetuning: once theoretical parameters have been found, in order to
%             optimize the final output, a finer search is performed.
%             This step will is computationally expensive.
%
% OUTPUT
% out:    the optimized parameters:
%         out.inverse:     if 1 the two input have to be inverted
%         out.fftxfirst:   if one the image has to be fft first along
%                          x-dimension
%         out.ifftxfirst:  if one the product of spectra has to be ifft
%                          first along x-dimension. NOTE: Always set to 1.
%         out.nfftx:       the best length for fft transform along
%                          x-dimension
%         out.nffty:       the best length for fft transform along
%                          y-dimension
%         out.filterxfirst if 1 the filter has to be fft fisrt alng
%                          x-dimension
%
%
if isreal1 && isreal2
    % A real image, B real filter
    out{1} = test(FFTrv,FFTiv,FFTrv,FFTiv,IFFTiv,size1,size2);
    % B real image, A real filter
    out{2} = test(FFTrv,FFTiv,FFTrv,FFTiv,IFFTiv,size2,size1);
end
if isreal1 && ~isreal2
    % A real image, B complex filter
    out{1} = test(FFTrv,FFTiv,FFTiv,FFTiv,IFFTiv,size1,size2);
    % B complex image, A real filter
    out{2} = test(FFTiv,FFTiv,FFTrv,FFTiv,IFFTiv,size2,size1);
end
if ~isreal1 && isreal2
    % A complex image, B real filter
    out{1} = test(FFTiv,FFTiv,FFTrv,FFTiv,IFFTiv,size1,size2);
    % B real image, A complex filter
    out{2} = test(FFTrv,FFTiv,FFTiv,FFTiv,IFFTiv,size2,size1);
end
if ~isreal1 && ~isreal2
    % A complex image, B complex filter
    out{1} = test(FFTiv,FFTiv,FFTiv,FFTiv,IFFTiv,size1,size2);
    % B complex image, A complex filter
    out{2} = test(FFTiv,FFTiv,FFTiv,FFTiv,IFFTiv,size2,size1);
end
if nargin<8 || ((nargin == 8) && (finetuning == 0))
    [finalout] = selectout(out);
    return;
else
    disp('Optimization of parameters in progress... Please wait.');
    if out{1}.flops<out{2}.flops
        pos     = 1;
        inverse = 0;
        a       = rand(size1);
        b       = rand(size2);
        if ~isreal1
            a = a + i*rand(size1);
        end
        if ~isreal2
            b = b + i*rand(size2);
        end
    else
        pos     = 2;
        inverse = 1;
        a       = rand(size2);
        b       = rand(size1);
        if ~isreal2
            a = a + i*rand(size2);
        end
        if ~isreal1
            b = b + i*rand(size1);
        end
    end
    coeff = 1.2;
    m     = out{pos}.flopmatrix <= out{pos}.flops*coeff;
    pos   = find(m);
    [x,y] = ind2sub(size(m),pos);
    L = length(pos);
    time_req = zeros(L,1);
    h = waitbar(0,'Please wait...');
    for ii=1:L
        tic;
        fftolam(a,b,x(ii),y(ii));
        tr           = toc;
        time_req(ii) = tr;
        waitbar(ii/L)
    end
    close(h);
    [valmin,posval] = min(time_req);
    xok             = x(posval);
    yok             = y(posval);
    
    [fftxfirst,filterxfirst] = findpm(FFTrv,FFTiv,IFFTiv,size(a),size(b),isreal(a),isreal(b),xok,yok);
end
finalout.fftxfirst    = fftxfirst;
finalout.ifftxfirst   = 1;%out{pos}.ifftxfirst;
finalout.nfftx        = xok;
finalout.nffty        = yok;
finalout.filterxfirst = filterxfirst;
finalout.inverse      = inverse;
%--------------------------------------------------------------------------
%--------------------------------------------------------------------------
function [finalout] = selectout(out)
% If no further fine tuning is selected, this function is used to find the
% best parameters that have been just calculated.
if out{1}.flops < out{2}.flops
    pos = 1;
else
    pos = 2;
end
if pos == 1
    finalout.inverse = 0;
else
    finalout.inverse = 1;
end
finalout.fftxfirst    = out{pos}.fftxfirst;
finalout.ifftxfirst   = 1;%out{pos}.ifftxfirst;
finalout.nfftx        = out{pos}.nfftx;
finalout.nffty        = out{pos}.nffty;
finalout.filterxfirst = out{pos}.filterxfirst;
%--------------------------------------------------------------------------
%--------------------------------------------------------------------------
function [out] = test(fft_A_1,fft_A_2,fft_B_1,fft_B_2,ifft_1,sizeA,sizeB)
% This function detremines the number of flops for overlap-add method
% varying the length of vectors that have to be FFT- and IFFT- transformed.
% For example fft2 of a matrix NxM is equivalent to do N FFTs with vectors
% of length M and then M FFTs of vectors of length N. See fft2 in Matlab
% help.
ax = sizeA(1);
ay = sizeA(2);
bx = sizeB(1);
by = sizeB(2);

infinitevalue = 99*10^99;
val0          = infinitevalue;

costcomplexsum  = 2;
costcomplexprod = 6;

L = size(fft_A_1,1);

out.flopmatrix = 1.5270e+050*ones(L,L);


for ii=1:L
    for jj=1:L
        Lx    = ii-bx+1;
        Ly    = jj-by+1;
        if Lx>0 && Ly>0
            nx    = ceil(ax/Lx);
            ny    = ceil(ay/Ly);

            cv1 = nx*ny*(Lx*fft_A_1(jj,2) + jj*fft_A_2(ii,2) + jj*ifft_1(ii,2) + ii*ifft_1(jj,2) + ii*jj*(costcomplexsum+costcomplexprod)) + (bx*fft_B_1(jj,2) + jj*fft_B_2(ii,2));
            cv3 = nx*ny*(Ly*fft_A_1(ii,2) + ii*fft_A_2(jj,2) + jj*ifft_1(ii,2) + ii*ifft_1(jj,2) + ii*jj*(costcomplexsum+costcomplexprod)) + (bx*fft_B_1(jj,2) + jj*fft_B_2(ii,2));
            cv5 = nx*ny*(Lx*fft_A_1(jj,2) + jj*fft_A_2(ii,2) + jj*ifft_1(ii,2) + ii*ifft_1(jj,2) + ii*jj*(costcomplexsum+costcomplexprod)) + (by*fft_B_1(ii,2) + ii*fft_B_2(jj,2));
            cv7 = nx*ny*(Ly*fft_A_1(ii,2) + ii*fft_A_2(jj,2) + jj*ifft_1(ii,2) + ii*ifft_1(jj,2) + ii*jj*(costcomplexsum+costcomplexprod)) + (by*fft_B_1(ii,2) + ii*fft_B_2(jj,2));

            out.flopmatrix(ii,jj) = (cv1+cv3+cv5+cv7)/4;

            if cv1<val0
                val0         = cv1;
                fftxfirst    = 0;
                filterxfirst = 0;
                nfftx        = ii;
                nffty        = jj;
            end
            if cv3<val0
                val0         = cv3;
                fftxfirst    = 1;
                filterxfirst = 0;
                nfftx        = ii;
                nffty        = jj;
            end
            if cv5<val0
                val0         = cv5;
                fftxfirst    = 0;
                filterxfirst = 1;
                nfftx        = ii;
                nffty        = jj;
            end
            if cv7<val0
                val0         = cv7;
                fftxfirst    = 1;
                filterxfirst = 1;
                nfftx        = ii;
                nffty        = jj;
            end
        end
    end
end

out.flops        = val0;
out.fftxfirst    = fftxfirst;
out.nfftx        = nfftx;
out.nffty        = nffty;
out.filterxfirst = filterxfirst;
%--------------------------------------------------------------------------
%--------------------------------------------------------------------------
function [out]=fftolam(a,b,siz1,siz2)
% [out]=fftolam(a,b,siz1,siz2)
% Simple Overlap-add method FFT-based 2D convolution
% INPUT
% a:     first image (2D double matrix)
% b:     second image (2D double matrix)
% siz1:  the specified x-length for FFT along x-dimension (siz1 > size(b,1))
% siz2:  the specified x-length for FFT along y-dimension (siz2 > size(b,2))
% OUTPUT
% out:   2D convolution of a and b matrices: out = conv2(a,b);

[ax,ay]       = size(a);
[bx,by]       = size(b);
dimx          = ax+bx-1;
dimy          = ay+by-1;
nfftx         = siz1;
nffty         = siz2;
Lx            = nfftx-bx+1;
Ly            = nffty-by+1;
B             = fft2(b,nfftx,nffty);
out           = zeros(dimx,dimy);
x0 = 1;
while x0 <= ax
    x1   = min(x0+Lx-1,ax);
    y0   = 1;
    endx = min(dimx,x0+nfftx-1);
    while y0 <= ay
        y1                   = min(y0+Ly-1,ay);
        endy                 = min(dimy,y0+nffty-1);
        X                    = fft2(a(x0:x1,y0:y1),nfftx,nffty);
        Y                    = ifft2(X.*B);
        out(x0:endx,y0:endy) = out(x0:endx,y0:endy)+Y(1:(endx-x0+1),1:(endy-y0+1));
        y0                   = y0+Ly;
    end
    x0 = x0+Lx;
end
if ~(any(any(imag(a)))||any(any(imag(b))))
    out=real(out);
end
%--------------------------------------------------------------------------
%--------------------------------------------------------------------------
function [fftxfirst,filterxfirst]=findpm(FFTrv,FFTiv,IFFTiv,size1,size2,isreal1,isreal2,xok,yok)
% If the fine tuning option is selectd, this function determines the best parameters
% for overlap-add method.
ii = xok;
jj = yok;

ax = size1(1);
ay = size1(2);
bx = size2(1);
by = size2(2);
Lx = ii-bx+1;
Ly = jj-by+1;
nx = ceil(ax/Lx);
ny = ceil(ay/Ly);

costcomplexsum  = 2;
costcomplexprod = 6;

ifft_1          = IFFTiv;
if isreal2
    fft_B_1 = FFTrv;
    fft_B_2 = FFTiv;
else
    fft_B_1 = FFTiv;
    fft_B_2 = FFTiv;
end
if isreal1
    fft_A_1 = FFTrv;
    fft_A_2 = FFTiv;
else
    fft_A_1 = FFTiv;
    fft_A_2 = FFTiv;
end
if (bx*fft_B_1(jj,2) + jj*fft_B_2(ii,2))<(by*fft_B_1(ii,2) + ii*fft_B_2(jj,2))
    filterxfirst = 0;
else
    filterxfirst = 1;
end 

p1 = nx*ny*(Lx*fft_A_1(jj,2) + jj*fft_A_2(ii,2) + jj*ifft_1(ii,2) + ii*ifft_1(jj,2) + ii*jj*(costcomplexsum+costcomplexprod));
p2 = nx*ny*(Ly*fft_A_1(ii,2) + ii*fft_A_2(jj,2) + jj*ifft_1(ii,2) + ii*ifft_1(jj,2) + ii*jj*(costcomplexsum+costcomplexprod));
if p1<p2
    fftxfirst = 0;
else
    fftxfirst = 1;
end
%--------------------------------------------------------------------------
%--------------------------------------------------------------------------

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕字幕中文在线中不卡视频| 亚洲欧美激情插| 久久久一区二区| 久久久久久久久久看片| 精品区一区二区| 亚洲国产精品成人综合| 亚洲麻豆国产自偷在线| 奇米精品一区二区三区在线观看一| 国产做a爰片久久毛片| 一本一道综合狠狠老| 日韩一级黄色大片| 国产清纯美女被跳蛋高潮一区二区久久w| 精品久久久网站| 日韩毛片一二三区| 精品一区二区免费在线观看| 成人午夜精品一区二区三区| 欧美精品tushy高清| 国产精品乱码人人做人人爱 | 日本不卡一二三区黄网| 国产suv精品一区二区三区| 色天使色偷偷av一区二区| 欧美mv日韩mv| 亚洲一区成人在线| 成人的网站免费观看| 日韩欧美成人激情| 国产精品久久久久久久久免费樱桃| 亚洲精品视频观看| 成人午夜伦理影院| 精品国精品国产| 亚洲成人自拍偷拍| 一本色道久久综合亚洲91| 精品国产一区二区三区av性色| 亚洲最新在线观看| 成人精品国产一区二区4080| 欧美三区在线视频| 国产精品大尺度| 国产ts人妖一区二区| 日韩欧美国产高清| 亚洲国产aⅴ成人精品无吗| 91亚洲永久精品| 国产精品理论在线观看| 国产乱子伦一区二区三区国色天香| 777色狠狠一区二区三区| 亚洲国产wwwccc36天堂| 在线观看日韩电影| 一区二区三区欧美亚洲| 不卡免费追剧大全电视剧网站| 精品国产91洋老外米糕| 久久精品国产99| 日韩精品中文字幕在线一区| 免费在线观看一区| 精品久久国产字幕高潮| 麻豆91精品91久久久的内涵| 在线视频中文字幕一区二区| 亚洲视频在线观看一区| 91碰在线视频| 一区二区三区在线视频免费| 91久久国产最好的精华液| 亚洲猫色日本管| 欧美三片在线视频观看| 亚洲综合男人的天堂| 欧美日韩国产成人在线免费| 青青草成人在线观看| 日韩一级黄色片| 国产福利视频一区二区三区| 最新热久久免费视频| 在线观看av一区| 首页国产欧美日韩丝袜| 欧美一二三四在线| 国产成人精品影视| 亚洲欧美日韩久久| 欧美精品粉嫩高潮一区二区| 美女www一区二区| 欧美国产综合一区二区| 99视频一区二区| 亚洲欧美在线aaa| 色噜噜久久综合| 日韩1区2区3区| 久久久久久久久久久久久夜| 91亚洲国产成人精品一区二三| 亚洲国产日韩一区二区| 欧美mv和日韩mv国产网站| 成人蜜臀av电影| 天天操天天干天天综合网| 精品免费日韩av| av电影在线观看完整版一区二区| 亚洲一区二区三区四区五区中文| 日韩欧美中文一区| 91丨九色porny丨蝌蚪| 亚洲免费视频成人| 欧美videos大乳护士334| 97se亚洲国产综合自在线不卡| 日本免费新一区视频| 中国av一区二区三区| 欧美一区二区三区婷婷月色| 高清国产午夜精品久久久久久| 亚洲美女一区二区三区| 精品不卡在线视频| 欧美亚洲丝袜传媒另类| 国产成人无遮挡在线视频| 专区另类欧美日韩| 欧美大片一区二区| 91网址在线看| 高清在线成人网| 日本视频中文字幕一区二区三区| **欧美大码日韩| 91精品国产综合久久国产大片| 99精品久久免费看蜜臀剧情介绍| 久久国产日韩欧美精品| 亚洲视频每日更新| 久久久精品中文字幕麻豆发布| 欧美丰满嫩嫩电影| 粉嫩久久99精品久久久久久夜| 亚洲大片免费看| 亚洲少妇30p| 久久精品人人做| 91精品福利在线一区二区三区| 欧美亚洲综合久久| 色哟哟欧美精品| 久久成人羞羞网站| 日韩精品福利网| 亚洲一二三区视频在线观看| 亚洲码国产岛国毛片在线| 中文字幕在线一区免费| 国产精品欧美综合在线| 国产网站一区二区| 日韩视频123| 日韩欧美国产综合| 91精品国产色综合久久ai换脸| 在线观看成人小视频| 日本精品免费观看高清观看| 成人av资源网站| 欧美在线免费视屏| 欧美电影免费观看高清完整版在线观看| 欧美大片一区二区三区| 国产色产综合色产在线视频| 亚洲色图20p| 蜜桃精品视频在线观看| 国产91精品精华液一区二区三区 | 国产麻豆视频一区| 99精品欧美一区| 91精品国产91综合久久蜜臀| 国产三级一区二区| 亚洲老司机在线| 久久超碰97中文字幕| 东方欧美亚洲色图在线| 欧美日韩的一区二区| 欧美国产欧美综合| 五月天亚洲精品| 国产成人精品免费| 欧美日韩国产美| 亚洲国产精品激情在线观看| 亚洲最大色网站| 国产精品1区2区3区| 在线免费不卡电影| 国产欧美一区二区三区鸳鸯浴 | 欧美性猛交xxxx乱大交退制版| 欧美刺激脚交jootjob| 亚洲精品成人悠悠色影视| 美女性感视频久久| 欧美亚洲日本一区| 国产免费观看久久| 毛片一区二区三区| 欧美日韩在线一区二区| 久久久久97国产精华液好用吗| 视频一区中文字幕| 97精品视频在线观看自产线路二| 亚洲精品一区二区三区精华液| 一区二区三区在线免费| 国产精品99久久久久久久女警 | 欧美日韩一级片网站| 国产精品午夜在线观看| 蜜臀久久99精品久久久久久9 | 91视频xxxx| 中文字幕欧美区| 国产麻豆精品久久一二三| 欧美区一区二区三区| 亚洲激情自拍视频| 99久久99久久综合| 日本一区二区三区免费乱视频| 免费欧美在线视频| 欧美一区永久视频免费观看| 亚洲电影第三页| 欧美亚洲综合色| 亚洲激情自拍视频| 色综合视频一区二区三区高清| 中文字幕av一区二区三区免费看 | 美女任你摸久久| 7777精品伊人久久久大香线蕉超级流畅 | 欧美日韩一级大片网址| 一区二区三区日韩欧美| 99re66热这里只有精品3直播 | 蜜臀av在线播放一区二区三区| 欧美视频在线观看一区二区| 亚洲精品日日夜夜| 在线区一区二视频| 亚洲国产毛片aaaaa无费看 | 97精品久久久午夜一区二区三区 | 美女视频一区二区| 精品久久久网站|