⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spherevmr.m

📁 toolbox of BVQX, This is the access between BV and matlab. It will help you to analysis data from BV
💻 M
字号:
function vmr = spherevmr(c, sl, ic)
% spherevmr  - create a 256x256x256 VMR for spherical region growing
%
% FORMAT:       vmr = spherevmr([center [, slope, intercept])
%
% Input fields:
%
%       center      optional center coordinate (default: 128, 128, 128)
%       slope       value slope (default: 1)
%       intercept   value for center coordinate (default: 0)
%
% Output fields:
%
%       vmr         VMR

% Version:  v0.7b
% Build:    7092614
% Date:     Sep-26 2007, 2:15 PM CEST
% Author:   Jochen Weber, Brain Innovation, B.V., Maastricht, NL
% URL/Info: http://wiki.brainvoyager.com/BVQXtools

% argument check
if nargin < 1 || ...
   ~isa(c, 'double') || ...
    numel(c) ~= 3 || ...
    any(isnan(c) | c < 0 | c > 255)
    c = [128, 128, 128];
else
    c = c(:)';
end
if nargin < 2 || ...
   ~isa(sl, 'double') || ...
    numel(sl) ~= 1 || ...
    isnan(sl) || ...
    sl < -100 || ...
    sl > 100 || ...
    sl == 0
    sl = 1;
end
if nargin < 3 || ...
   ~isa(ic, 'double') || ...
    numel(ic) ~= 1 || ...
    isnan(ic) || ...
    ic < -200 || ...
    ic > 200
    ic = 0;
end

% prepare coordinates for slice
[cx, cz] = ndgrid(single(0:255), single(0:255));
cx = [cx(:) - c(2), cz(:) - c(3)];
cz = single(1:256) - c(1);
co = ones(65536, 1);

% create v16 data
v16d = single([]);
v16d(256, 256, 256) = 0;

% iterate over slices
for zc = 1:256
    cdist = sl * sqrt(sum([cx, cz(zc) * co] .^ 2, 2)) + ic;
    cdist(cdist < 0) = 0;
    v16d(:, :, zc) = reshape(cdist, [256, 256]);
end

% put into output
vmr = BVQXfile('new:vmr');
vmr.VMRData16 = uint16(round(v16d));

% recompute VMR
mn = min(v16d(:));
if mn > 100
    v16d = v16d - mn;
end
mx = max(v16d(:));
if mx > 225
    v16d = v16d ./ (mx / 225);
end
vmr.VMRData = uint8(round(v16d));

% bless object
bless(vmr, 1);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -