www.gusucode.com > IPCV_Eval_Kit_R2019a_0ce6858工具箱源码程序matlab > IPCV_Eval_Kit_R2019a_0ce6858/code/demo_files/I3_01_1_parfor.m

    clear all;clc;close all;imtool close all

%% 夋憸偺撉崬傒P搙偲怓嵎惉暘偺暘棧
I = imread('saturn.png');
figure; imshow(I);

%% 婸搙偵懳偟偰DCT傪寁嶼
YCbCr = rgb2ycbcr(I);      % YCbCr怓嬻娫傊曄姺
fun = @(block_struct) dct2(block_struct.data);  % 柍柤娭悢偺僴儞僪儖掕媊
tic;
DCTy = blockproc(YCbCr(:,:,1), [8 8],fun);
t0=toc
imtool(log(abs(DCTy)+1),[]);                     % 懳悢昞帵

%% 2師尦棧嶶僐僒僀儞曄姺 (Y惉暘偲Cb惉暘)
tic;
for i = 1:2
  DCTycb(:,:,i) = blockproc(YCbCr(:,:,i), [8 8],fun);
end
t1=toc

%% 暲楍寁嶼梡偺 MATLAB 僙僢僔儑儞偺僾乕儖傪奐偔
parpool

%% 暲楍張棟偱崅懍壔
tic;
parfor i = 1:2
  DCT(:,:,i) = blockproc(YCbCr(:,:,i), [8 8],fun);
end
t2=toc

%% 暲楍壔偵傛傞崅懍壔妱崌偺寁嶼乮2夞栚埲崀偱妋擣乯
t2/t1

%% 暲楍寁嶼梡偺 MATLAB 僙僢僔儑儞偺僾乕儖傪暵偠傞
delete(gcp('nocreate'))

%% 


% Copyright 2018 The MathWorks, Inc.