summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdoardo Pasca <edo.paskino@gmail.com>2017-08-23 16:51:18 +0100
committerEdoardo Pasca <edo.paskino@gmail.com>2017-08-23 16:51:18 +0100
commitcc3a464ec587e95ddfd421cd3836a7677dfb9744 (patch)
treecaf6c2c65b83c704b09ca2fafc7c9c8e1a49f207
parenta2ca45848e354f376c53ecd3fed946d64c1ff3aa (diff)
downloadregularization-cc3a464ec587e95ddfd421cd3836a7677dfb9744.tar.gz
regularization-cc3a464ec587e95ddfd421cd3836a7677dfb9744.tar.bz2
regularization-cc3a464ec587e95ddfd421cd3836a7677dfb9744.tar.xz
regularization-cc3a464ec587e95ddfd421cd3836a7677dfb9744.zip
export/import data from hdf5
Added file to export the data from DemoRD2.m to HDF5 to pass it to Python. Added file to import the data from DemoRD2.m from HDF5.
-rw-r--r--demos/exportDemoRD2Data.m35
-rw-r--r--src/Python/test/readhd5.py28
2 files changed, 63 insertions, 0 deletions
diff --git a/demos/exportDemoRD2Data.m b/demos/exportDemoRD2Data.m
new file mode 100644
index 0000000..028353b
--- /dev/null
+++ b/demos/exportDemoRD2Data.m
@@ -0,0 +1,35 @@
+clear all
+close all
+%%
+% % adding paths
+addpath('../data/');
+addpath('../main_func/'); addpath('../main_func/regularizers_CPU/');
+addpath('../supp/');
+
+load('DendrRawData.mat') % load raw data of 3D dendritic set
+angles_rad = angles*(pi/180); % conversion to radians
+size_det = size(data_raw3D,1); % detectors dim
+angSize = size(data_raw3D, 2); % angles dim
+slices_tot = size(data_raw3D, 3); % no of slices
+recon_size = 950; % reconstruction size
+
+Sino3D = zeros(size_det, angSize, slices_tot, 'single'); % log-corrected sino
+% normalizing the data
+for jj = 1:slices_tot
+ sino = data_raw3D(:,:,jj);
+ for ii = 1:angSize
+ Sino3D(:,ii,jj) = log((flats_ar(:,jj)-darks_ar(:,jj))./(single(sino(:,ii)) - darks_ar(:,jj)));
+ end
+end
+
+Sino3D = Sino3D.*1000;
+Weights3D = single(data_raw3D); % weights for PW model
+clear data_raw3D
+
+hdf5write('DendrData.h5', '/Weights3D', Weights3D)
+hdf5write('DendrData.h5', '/Sino3D', Sino3D, 'WriteMode', 'append')
+hdf5write('DendrData.h5', '/angles_rad', angles_rad, 'WriteMode', 'append')
+hdf5write('DendrData.h5', '/size_det', size_det, 'WriteMode', 'append')
+hdf5write('DendrData.h5', '/angSize', angSize, 'WriteMode', 'append')
+hdf5write('DendrData.h5', '/slices_tot', slices_tot, 'WriteMode', 'append')
+hdf5write('DendrData.h5', '/recon_size', recon_size, 'WriteMode', 'append') \ No newline at end of file
diff --git a/src/Python/test/readhd5.py b/src/Python/test/readhd5.py
new file mode 100644
index 0000000..1e19e14
--- /dev/null
+++ b/src/Python/test/readhd5.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Wed Aug 23 16:34:49 2017
+
+@author: ofn77899
+"""
+
+import h5py
+import numpy
+
+def getEntry(nx, location):
+ for item in nx[location].keys():
+ print (item)
+
+filename = r'C:\Users\ofn77899\Documents\GitHub\CCPi-FISTA_reconstruction\Demos\DendrData.h5'
+nx = h5py.File(filename, "r")
+#getEntry(nx, '/')
+# I have exported the entries as children of /
+entries = [entry for entry in nx['/'].keys()]
+print (entries)
+
+Sino3D = numpy.asarray(nx.get('/Sino3D'))
+Weights3D = numpy.asarray(nx.get('/Weights3D'))
+angSize = numpy.asarray(nx.get('/angSize'), dtype=int)[0]
+angles_rad = numpy.asarray(nx.get('/angles_rad'))
+recon_size = numpy.asarray(nx.get('/recon_size'), dtype=int)[0]
+size_det = numpy.asarray(nx.get('/size_det'), dtype=int)[0]
+slices_tot = numpy.asarray(nx.get('/slices_tot'), dtype=int)[0] \ No newline at end of file