Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
function gt6DMakeFigureForPaper( vol, varargin )
% gtCSMakeFigureForPaper( vol, varargin )
% conf = struct( ...
% 'cmap', jet, ...
% 'filename', '', ...
% 'plane', 'xy', ...
% 'layer', 1, ...
% 'clims', [], ...
% 'borders', 'no', ...
% 'colorbar', 'no');
%
conf = struct( ...
'cmap', jet, ...
'filename', '', ...
'plane', 'xy', ...
'layer', 1, ...
'clims', [], ...
'borders', 'no', ...
'colorbar', 'no', ...
'sample_shape', []);
conf = parse_pv_pairs(conf, varargin);
switch(conf.plane)
case {'xy', 'XY'}
slice = vol(:, :, conf.layer);
case {'yx', 'YX'}
slice = vol(:, :, conf.layer)';
case {'yz', 'YZ'}
slice = squeeze(vol(conf.layer, :, :));
case {'zy', 'ZY'}
slice = squeeze(vol(conf.layer, :, :))';
case {'xz', 'XZ'}
slice = squeeze(vol(:, conf.layer, :));
case {'zx', 'ZX'}
slice = squeeze(vol(:, conf.layer, :))';
end
if (~isempty(conf.sample_shape))
shape = conf.sample_shape;
if (numel(shape) == 2)
shape = [round(([size(vol, 1), size(vol, 2)] - shape) / 2), shape];
end
shape = [shape(1:2) shape(1:2)+shape(3:4)];
slice = (slice - min(slice(:))) / (max(slice(:)) - min(slice(:)));
slice = repmat(slice, [1 1 3]);
red_vec = reshape([1 0 0], [1 1 3]);
slice(shape(1):shape(3), shape(2), :) = repmat(red_vec, [(shape(3)-shape(1)+1) 1 1]);
slice(shape(1):shape(3), shape(4), :) = repmat(red_vec, [(shape(3)-shape(1)+1) 1 1]);
slice(shape(1), shape(2):shape(4), :) = repmat(red_vec, [1 (shape(4)-shape(2)+1) 1]);
slice(shape(3), shape(2):shape(4), :) = repmat(red_vec, [1 (shape(4)-shape(2)+1) 1]);
end
f = figure('colormap', conf.cmap);
ax = axes('Parent', f);
im = imagesc(permute(slice, [2 1 3]), 'Parent', ax);
if (~isempty(conf.clims))
set(ax, 'CLim', conf.clims)
end
set(f, 'Units', 'centimeters')
if (strcmpi(conf.borders, 'no'))
set(f, 'Position', [0 0 12 12])
set(f, 'Paperposition', [0 0 12 12])
set(ax, 'Units', 'normalized')
set(ax, 'Position', [0 0 1 1])
else
set(ax, 'Units', 'centimeters')
if (strcmpi(conf.colorbar, 'no'))
set(f, 'Position', [0 0 14 13.5])
set(f, 'Paperposition', [0 0 14 13.5])
else
set(f, 'Position', [0 0 15 14])
set(f, 'Paperposition', [0 0 15 14])
cb = colorbar('peer', ax, 'location', 'EastOutside');
set(cb, 'Units', 'centimeters')
set(cb, 'Position', [13.35 1 0.65 12])
end
set(ax, 'Position', [1 1 12 12])
end
if (~isempty(conf.filename) && strcmpi(conf.filename, 'preview'))
[filename, filedir] = uigetfile({'*.png'; '*.eps'});
if (filename)
conf.filename = fullfile(filedir, filename);
else
conf.filename = [];
end
end
if (~isempty(conf.filename))
[~, ~, ext] = fileparts(conf.filename);
if (isempty(ext))
saveas(f, [conf.filename '.eps']);
saveas(f, [conf.filename '.png']);
else
saveas(f, conf.filename);
end
end
end