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

    clear all;clc;close all;imtool close all

%% 夋憸偺撉崬傒
I = imread('saturn.png');
figure; imshow(I);

%% YCbCr怓嬻娫傊曄姺
YCbCr = rgb2ycbcr(I);
Y = YCbCr(:,:,1);      % 偙偙偱偼Y偺傒DCT曄姺
imshow(Y);shg

%% 2師尦棧嶶僐僒僀儞曄姺
fun = @(block_struct) dct2(block_struct.data);  % 柍柤娭悢偺僴儞僪儖:僇僢僐撪偵柍柤娭悢偺堷悢丅僗僥乕僩儊儞僩偼1偮偺傒壜丅
DCT = blockproc(Y, [8 8],fun);   % fun偵僽儘僢僋峔憿懱傪搉偡:昁梫偵墳偠偰'BorderSize'傪巜掕
imtool(log(abs(DCT)+1),[]);      % 寢壥偺昞帵

%% 廔椆










%% 暋悢偺CPU僐傾傪梡偄偨暲楍寁嶼僆僾僔儑儞乮Parallel Computing Toolbox昁梫乯
%  暲楍寁嶼梡偺 MATLAB 僙僢僔儑儞偺僾乕儖傪奐偔
parpool

%% 暲楍僆僾僔儑儞柍偟
tic;   % 張棟帪娫偺應掕
DCT = blockproc(Y, [8 8],fun);   % fun偵僽儘僢僋峔憿懱傪搉偡
t1=toc

%% 暲楍寁嶼僆僾僔儑儞傪僆儞
tic;
DCT = blockproc(Y, [8 8],fun, 'UseParallel', true);
t2=toc

%% 幚峴懍搙夵慞偺妱崌傪寁嶼
t2/t1

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

%% 
% Copyright 2014 The MathWorks, Inc.