VTK »

Pliki

Podstawowe źródło informacji

Strona wiki http://www.vtk.org/Wiki/VTK_XML_Formats oraz dokument PDF opisują formaty plików używane przez bibliotekę VTK. Najprostszą wersją pików jest Simple Legacy Format zaś bardziej rozbudowaną wersją są pliki oparte na standardzie XML.

Tworzenie plików VTK z poziomu Matlaba

Dane typu Regularne Macierz

Przykład funkcji, która zapisuje zawartość macierzy (domyślnie 3D) do pliku o rozszerzeniu *.vtk :

function saveVol2Vtk (vol,spac,origin,filename)

fid = fopen([filename,'.vtk'], 'w');

fprintf(fid, '# vtk DataFile Version 3.0\nmatlab2vtk output\nASCII\nDATASET STRUCTURED_POINTS\n')
fprintf(fid, 'DIMENSIONS % i % i % i \n', size(vol));
fprintf(fid, 'SPACING % 6.6f % 6.6f % 6.6f \n', spac);
fprintf(fid, 'ORIGIN  % 6.6f % 6.6f % 6.6f \n', origin);
fprintf(fid, 'POINT_DATA %i \n', size(vol(:),1) );
fprintf(fid, 'SCALARS scalars float\nLOOKUP_TABLE default\n');
fprintf(fid, '\t% 6.6f % 6.6f % 6.6f % 6.6f % 6.6f \n', vol);

fclose(fid);

Przykład pliku wynikowego, po zapisie saveVol2Vtk(ones (4,3,2),[1,1,1],[0,0,0],'plik'):

# vtk DataFile Version 3.0
matlab2vtk output
ASCII
DATASET STRUCTURED_POINTS
DIMENSIONS  4  3  2
SPACING  1.000000  1.000000  1.000000
ORIGIN   0.000000  0.000000  0.000000
POINT_DATA 24
SCALARS scalars float
LOOKUP_TABLE default
         1.000000  1.000000  1.000000  1.000000  1.000000
         1.000000  1.000000  1.000000  1.000000  1.000000
         1.000000  1.000000  1.000000  1.000000  1.000000
         1.000000  1.000000  1.000000  1.000000  1.000000
         1.000000  1.000000  1.000000  1.000000

Funkcja może być przydatna przy eksporcie danych z Matlaba do programów używających VTK, np. danych medycznych lub wyników obliczeń czy symulacji.

Uwaga! Przy dużych macierzach, plik wynikowy może być baaaaaardzo duży :)

Dane typu PolyData

Przykład funkcji, która zapisuje "ścieżkę 3D" wyznaczoną przez macierz współrzędnych punktów [x;y;z] do pliku o rozszerzeniu *.vtk :

function save2Vtk (W,filename)

offset = 0; % przesunięcie w numeracji kolejnych komurek
s = 1;      % wartość skalarna przypisywana punktom
W=W';
points = W;
line = [0:size(points,2)-2; 1:size(points,2)-1]';
line = (line+offset*ones(size(line)));
lines = cat(2,ones(size(line,1),1)*2,line);
sclars = s*ones(size(points,2),1);

fid = fopen([filename,'.vtk'], 'w');

fprintf(fid, '# vtk DataFile Version 3.0\nmatlab2vtk output\nASCII\nDATASET POLYDATA\n')
fprintf(fid, 'POINTS %i float\n', size(points,2));
fprintf(fid, '\t% 6.6f % 6.6f % 6.6f \n', points);

fprintf(fid, '\nLINES %i %i \n', size(points,2), length(lines(:)));
fprintf(fid, '\t% i % i % i \n', lines');

fprintf(fid, '\nPOINT_DATA %i \n', size(points,2) );
fprintf(fid, 'SCALARS scalars float\nLOOKUP_TABLE default\n');
fprintf(fid, '\t%i \t%i \t%i \t%i \t%i \n', sclars');

fclose(fid);
 

HomePage

Dydaktyka

Materiały do pobrania

Praca naukowa

Programowanie

Projekty

Lista stron


edit

Page last modified on 30.03.2011, 03:29 - Powered by PmWiki

|