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

    %% MRI夋憸偺3師尦僈僂僔傾儞僼傿儖僞儕儞僌
clear; clc; close all;    % 弶婜壔

%% MRI夋憸偺撉崬傒\帵
mri = load('mri');          % 夋憸偺撉崬傒 (27枃偺MRI抐柺夋憸)
D = mri.D(:, :, :, 1:15);   % 15斣栚傑偱偺夋憸傪愗傝弌偟
figure; montage(D);      % D 偼丄128x128x1x15 偺攝楍乮x1偼丄僌儗乕僗働乕儖偺堊乯

%% 尦僨乕僞偺儃儕儏乕儉僨乕僞偺3師尦昞帵 %%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 懁柺偺昞帵
D = squeeze(D);      % 師尦傪尭傜偟丄128x128x27偺攝楍傊曄姺
vol = isosurface(D, 5);  % 堦斣奜偺懁柺丗抣5偺摍抣柺偺丄捀揰偲柺傪媮傔傞乮攚宨偼抣0乯
figure; patch(vol, 'FaceColor','red', 'EdgeColor','none');  % 摍抣柺傪昞帵
view(-40,24)                  % 帇揰偺埵抲
daspect([1 1 0.3])            % X,Y,Z曽岦偺傾僗儁僋僩斾偺愝掕
colormap(gray); box on; camlight; lighting gouraud; % 徠柧摍奺庬愝掕丂丂丂丂goraud偱怓偑妸傜偐偵曄壔偡傞傛偆偵

%% 忋抐柺偺昞帵
sec = isocaps(D, 5);   % 摍抣抐柺乮摍抣柺傪嶌偭偨偲偒偺抂偺愗抐柺乯偺捀揰圣婸搙傪媮傔傞
patch(sec, 'FaceColor','interp', 'EdgeColor','none'); shg; % 摍抣抐柺偺昞帵

%% 3師尦僈僂僔傾儞僼傿儖僞丒奺僗儔僀僗夋憸偺昞帵 %%%%%%%%%%%%%%%%%%%%%%%%%
sigma = [2 2 2];                       % 僈僂僔傾儞僼傿儖僞偺奺師尦曽岦偺昗弨曃嵎
volSmooth = imgaussfilt3(D, sigma);    % 3師尦僈僂僔傾儞僼傿儖僞偺揔梡
figure; montage(reshape(volSmooth, [128 128 1 15])); % 奺僗儔僀僗夋憸偺昞帵
%% 寢壥偺3師尦昞帵
vol = isosurface(volSmooth, 5);  % 堦斣奜偺懁柺丗抣5偺摍抣柺偺丄捀揰偲柺傪媮傔傞乮攚宨偼抣0乯
figure; patch(vol, 'FaceColor','red', 'EdgeColor','none');  % 摍抣柺傪昞帵
view(-40,24)                  % 帇揰偺埵抲
daspect([1 1 0.3])            % X,Y,Z曽岦偺傾僗儁僋僩斾愝掕
colormap(gray); box on; camlight; lighting gouraud; % 徠柧摍奺庬愝掕丂丂丂丂goraud偱怓偑妸傜偐偵曄壔偡傞傛偆偵
sec = isocaps(volSmooth, 5);     % 摍抣抐柺乮摍抣柺傪嶌偭偨偲偒偺抂偺愗抐柺乯偺捀揰圣婸搙傪媮傔傞
patch(sec, 'FaceColor','interp', 'EdgeColor','none'); shg; % 摍抣抐柺偺昞帵

%% 3師偺擟堄偺僼傿儖僞 (imfilter) %%%%%%%%%%%%%%%%%%%
F = ones(3,3,3)/27          % 3x3x3 偺僼傿儖僞學悢掕媊
volAve = imfilter(D, F);    % 3師尦暯嬒壔僼傿儖僞偺揔梡
figure; montage(reshape(volAve, [128 128 1 15])); % 奺僗儔僀僗夋憸偺昞帵
%% 寢壥偺3師尦昞帵
vol = isosurface(volAve, 5);  % 堦斣奜偺懁柺丗抣5偺摍抣柺偺丄捀揰偲柺傪媮傔傞乮攚宨偼抣0乯
figure; patch(vol, 'FaceColor','red', 'EdgeColor','none');  % 摍抣柺傪昞帵
view(-40,24)                  % 帇揰偺埵抲
daspect([1 1 0.3])            % X,Y,Z曽岦偺傾僗儁僋僩斾愝掕
colormap(gray); box on; camlight; lighting gouraud; % 徠柧摍奺庬愝掕丂丂丂丂goraud偱怓偑妸傜偐偵曄壔偡傞傛偆偵
sec = isocaps(volAve, 5);     % 摍抣抐柺乮摍抣柺傪嶌偭偨偲偒偺抂偺愗抐柺乯偺捀揰圣婸搙傪媮傔傞
patch(sec, 'FaceColor','interp', 'EdgeColor','none'); shg; % 摍抣抐柺偺昞帵

%% 3師尦偺岡攝嫮搙偺寁嶼 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[Gmag, Gaz, Gelev] = imgradient3(D);
sz = size(D);
figure;
montage(reshape(Gmag,sz(1),sz(2),1,sz(3)),'DisplayRange',[]);




%% Copyright 2015 The MathWorks, Inc.