-
Notifications
You must be signed in to change notification settings - Fork 6
/
cemrg2carto.m
58 lines (50 loc) · 1.67 KB
/
cemrg2carto.m
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
function cemrg2carto(infile, outfile, vtktitle)
% CEMRG2CARTO Converts a VTK for loading into Carto
% Usage:
% op = cemrg2carto(infile, outfile)
%
% Where:
% infile - a VTK file created by CEMRG
% outfile - a VTK file formatted for Carto
%
% CEMRG2CARTO Converts a VTK file created by CEMRG into a VTK file that can
% be loaded into Carto. The two main functions are to convert cell data to
% point data and to add the correct header based on patient name and ID.
%
% Author: Steven Williams (2016)
% Modifications -
%
% Info on Code Testing:
% ---------------------------------------------------------------
%
% ---------------------------------------------------------------
%
% ---------------------------------------------------------------
% code
% ---------------------------------------------------------------
if strcmpi(infile, 'openfile')
[filename, pathname] = uigetfile('*.vtk', 'Select VTK file to open ...');
infile = [pathname filename];
end
if infile==0
disp('Operation cancelled');
return
end
h = waitbar(0, 'Load VTK file');
hVtk = VTKReader(infile);
waitbar(.2, h, 'Read VTK data');
hVtk.readAllData();
waitbar(.5, h, 'Get anatomy from VTK file');
tr = hVtk.getTriRep();
waitbar(.8, h, 'Convert cell data to point data');
pointdata = trFaceToVertData(tr, hVtk.CellData{1});
close(h);
if exist('vtktitle')==0
answer = inputdlg({'firstname', 'surname', 'ID'});
vtktitle = ['PatientData ' answer{1} ' ' answer{2} ' ' answer{3}];
end
if strcmpi(outfile, 'openfile')
[filename, pathname] = uiputfile('*.vtk', 'Select VTK file to save ...');
outfile = [pathname filename];
end
writeTriRep2VTK(tr, pointdata, 'title', vtktitle, 'outputfile', outfile);