Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
DCT
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Jira
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
graintracking
DCT
Commits
5efd3551
Commit
5efd3551
authored
10 years ago
by
Nicola Vigano
Browse files
Options
Downloads
Patches
Plain Diff
Phantom generation: small cleanup
Signed-off-by:
Nicola Vigano
<
nicola.vigano@esrf.fr
>
parent
49a5b482
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
7_fed2/gtFedTestLoadData_v2.m
+18
-104
18 additions, 104 deletions
7_fed2/gtFedTestLoadData_v2.m
with
18 additions
and
104 deletions
7_fed2/gtFedTestLoadData_v2.m
+
18
−
104
View file @
5efd3551
...
@@ -180,62 +180,48 @@ for ii = 1:nbl
...
@@ -180,62 +180,48 @@ for ii = 1:nbl
bl
(
ii
)
.
thetatype
=
grain
.
allblobs
.
thetatype
(
lbl
(
ii
));
bl
(
ii
)
.
thetatype
=
grain
.
allblobs
.
thetatype
(
lbl
(
ii
));
% Initial strained signed plane normal in SAMPLE reference
% Initial strained signed plane normal in SAMPLE reference
bl
(
ii
)
.
plsam
=
grain
.
allblobs
.
pl
(
lbl
(
ii
),
:);
bl
(
ii
)
.
plsam
=
grain
.
allblobs
.
pl
(
lbl
(
ii
),
:);
% Initial strained non-signed plane normal in SAMPLE reference
% Initial strained non-signed plane normal in SAMPLE reference
bl
(
ii
)
.
plorig
=
grain
.
allblobs
.
plorig
(
lbl
(
ii
),
:);
bl
(
ii
)
.
plorig
=
grain
.
allblobs
.
plorig
(
lbl
(
ii
),
:);
% Initial strained signed plane normal in the diffraction position in
% Initial strained signed plane normal in the diffraction position in
% LAB reference
% LAB reference
bl
(
ii
)
.
pl0
=
grain
.
allblobs
.
pllab
(
lbl
(
ii
),
:);
bl
(
ii
)
.
pl0
=
grain
.
allblobs
.
pllab
(
lbl
(
ii
),
:);
% Initial strained diffraction angles and rotation matrix
% Initial strained diffraction angles and rotation matrix
bl
(
ii
)
.
th0
=
grain
.
allblobs
.
theta
(
lbl
(
ii
));
% initial theta
bl
(
ii
)
.
th0
=
grain
.
allblobs
.
theta
(
lbl
(
ii
));
% initial theta
bl
(
ii
)
.
sinth0
=
sind
(
bl
(
ii
)
.
th0
);
% initial sin(theta)
bl
(
ii
)
.
sinth0
=
grain
.
allblobs
.
sintheta
(
lbl
(
ii
));
% initial sin(theta)
bl
(
ii
)
.
eta0
=
grain
.
allblobs
.
eta
(
lbl
(
ii
));
% initial eta
bl
(
ii
)
.
eta0
=
grain
.
allblobs
.
eta
(
lbl
(
ii
));
% initial eta
bl
(
ii
)
.
om0
=
grain
.
allblobs
.
omega
(
lbl
(
ii
));
% initial omega
bl
(
ii
)
.
om0
=
grain
.
allblobs
.
omega
(
lbl
(
ii
));
% initial omega
bl
(
ii
)
.
omind
=
grain
.
allblobs
.
omind
(
lbl
(
ii
));
% initial omega index (1..4)
bl
(
ii
)
.
omind
=
grain
.
allblobs
.
omind
(
lbl
(
ii
));
% initial omega index (1..4)
bl
(
ii
)
.
S0
=
g
tFedRotationTensor
(
bl
(
ii
)
.
om0
,
lab
.
rotcomp
);
% initial rotation tensor
bl
(
ii
)
.
S0
=
g
rain
.
allblobs
.
srot
(:,
:,
lbl
(
ii
)
);
% initial rotation tensor
% Initial strained diffraction vector in LAB reference
% Initial strained diffraction vector in LAB reference
bl
(
ii
)
.
dvec0
=
grain
.
allblobs
.
dvec
(
lbl
(
ii
),
:);
bl
(
ii
)
.
dvec0
=
grain
.
allblobs
.
dvec
(
lbl
(
ii
),
:);
% Initial strained diffraction vector in SAMPLE reference
% Initial strained diffraction vector in SAMPLE reference
bl
(
ii
)
.
dvecsam
=
grain
.
allblobs
.
dvecsam
(
lbl
(
ii
),
:);
bl
(
ii
)
.
dvecsam
=
grain
.
allblobs
.
dvecsam
(
lbl
(
ii
),
:);
gc_lab
=
gtGeoSam2Lab
(
gc
', bl(ii).S0'
,
parameters
.
labgeo
,
parameters
.
samgeo
,
false
);
% Calculate initial mean diffraction parameters of blob based on grain center
% Initial centroid in image
bl
(
ii
)
.
u0im
=
gtFedPredictUVW
(
eye
(
3
),
bl
(
ii
)
.
dvec0
', gc_lab'
,
...
% Initial centroid u in image
bl
(
ii
)
.
u0im
=
gtFedPredictUVW
(
bl
(
ii
)
.
S0
,
bl
(
ii
)
.
dvec0
'
,
gc
,
...
lab
.
detrefpos
,
lab
.
detnorm
,
lab
.
Qdet
,
lab
.
detrefuv
,
bl
(
ii
)
.
om0
,
...
lab
.
detrefpos
,
lab
.
detnorm
,
lab
.
Qdet
,
lab
.
detrefuv
,
bl
(
ii
)
.
om0
,
...
lab
.
omstep
)
'
;
lab
.
omstep
)
'
;
if
isempty
(
bl
(
ii
)
.
u0im
)
if
isempty
(
bl
(
ii
)
.
u0im
)
blobsdiffaway
=
[
blobsdiffaway
,
ii
];
blobsdiffaway
=
[
blobsdiffaway
,
ii
];
else
else
bl
(
ii
)
.
dfac0
=
gtFedPredictDiffFac
(
bl
(
ii
)
.
S0
,
bl
(
ii
)
.
dvec0
'
,
...
% Padding around blob volume
gc
,
lab
.
detrefpos
,
lab
.
detnorm
);
bl
(
ii
)
.
addbl
=
fedpars
.
blobsizeadd
;
% Mean U tensor of blob is calculated from mean parameters
%bl(ii).U0 = gtFedDerUmatrix(bl(ii).plsam',bl(ii).om0,bl(ii).S0,lab.rotcomp,gc,...
% bl(ii).sinth0,bl(ii).dvec0',bl(ii).dfac0,lab.detrefpos,lab.detnorm,lab.Qdet,lab.beamdir,lab.omstep,fedpars.beamchroma);
% For the moment, use Umean instead of Umax to estimate extreme peak
% shifts:
% u limit for all elements (u displacement at extreme strain combination);
%bl(ii).ulim = ceil(abs(bl(ii).U0)*fedpars.dlim')';
% Padding around blob volume according to ulim
%bl(ii).addbl = bl(ii).ulim + fedpars.blobsizeadd;
bl
(
ii
)
.
addbl
=
fedpars
.
blobsizeadd
;
% Check if blob hits the detector area
% Check if blob hits the detector area
uok
=
(
bl
(
ii
)
.
u0im
(
1
)
<
parameters
.
acq
.
xdet
)
&
(
bl
(
ii
)
.
u0im
(
1
)
>
1
);
uok
=
(
bl
(
ii
)
.
u0im
(
1
)
<
parameters
.
acq
.
xdet
)
&
(
bl
(
ii
)
.
u0im
(
1
)
>
1
);
vok
=
(
bl
(
ii
)
.
u0im
(
2
)
<
parameters
.
acq
.
ydet
)
&
(
bl
(
ii
)
.
u0im
(
2
)
>
1
);
vok
=
(
bl
(
ii
)
.
u0im
(
2
)
<
parameters
.
acq
.
ydet
)
&
(
bl
(
ii
)
.
u0im
(
2
)
>
1
);
if
uok
&&
vok
blobondet
=
[
blobondet
,
ii
];
if
(
uok
&&
vok
)
blobondet
=
[
blobondet
,
ii
];
end
end
end
end
end
end
...
@@ -299,18 +285,11 @@ for ii = 1:nbl
...
@@ -299,18 +285,11 @@ for ii = 1:nbl
round
(
(
bl
(
ii
)
.
bbwim
(
1
)
+
bl
(
ii
)
.
bbwim
(
2
))/
2
)
];
round
(
(
bl
(
ii
)
.
bbwim
(
1
)
+
bl
(
ii
)
.
bbwim
(
2
))/
2
)
];
% Projection parameters
% Projection parameters
bl
(
ii
)
.
proj_geom
=
gtGeoProjForReconstruction
(
bl
(
ii
)
.
dvecsam
,
...
bl
(
ii
)
.
proj_geom
=
gtGeoProjForReconstruction
(
...
bl
(
ii
)
.
om0
,
gc
'
,
...
bl
(
ii
)
.
dvecsam
,
bl
(
ii
)
.
om0
,
gc
'
,
...
[
bl
(
ii
)
.
bbuim
(
1
)
bl
(
ii
)
.
bbvim
(
1
)
bl
(
ii
)
.
bbsize
(
1
:
2
)],
...
[
bl
(
ii
)
.
bbuim
(
1
)
bl
(
ii
)
.
bbvim
(
1
)
bl
(
ii
)
.
bbsize
(
1
:
2
)],
...
[],
parameters
.
labgeo
,
parameters
.
samgeo
,
...
[],
parameters
.
labgeo
,
parameters
.
samgeo
,
parameters
.
recgeo
,
...
parameters
.
recgeo
,
'ASTRA_grain'
);
'ASTRA_grain'
);
%bl(ii).int0 = zeros(bl(ii).bbsize);
%bl(ii).int = zeros(bl(ii).bbsize);
%bl(ii).intd = zeros(bl(ii).bbsize);
%bl(ii).intm = zeros(bl(ii).bbsize);
%%% Needed for FED
%%% Needed for FED
% bl(ii).int = zeros(bl(ii).bbsize, fedpars.bltype);
% bl(ii).int = zeros(bl(ii).bbsize, fedpars.bltype);
...
@@ -320,12 +299,6 @@ for ii = 1:nbl
...
@@ -320,12 +299,6 @@ for ii = 1:nbl
% u in blob = u in image minus u at blob origin
% u in blob = u in image minus u at blob origin
bl
(
ii
)
.
u0bl
=
bl
(
ii
)
.
u0im
-
bl
(
ii
)
.
bbor
;
bl
(
ii
)
.
u0bl
=
bl
(
ii
)
.
u0im
-
bl
(
ii
)
.
bbor
;
% To save memory vs. simlicity
% bl(i).int0 = single(zeros(bl(i).bbsize));
% bl(i).int = single(zeros(bl(i).bbsize));
% bl(i).intd = single(zeros(bl(i).bbsize));
% bl(i).intm = single(zeros(bl(i).bbsize));
end
end
toc
toc
...
@@ -339,12 +312,7 @@ tic
...
@@ -339,12 +312,7 @@ tic
gvcs
=
gv
.
cs
;
gvcs
=
gv
.
cs
;
% !!! parfor
for
ii
=
nbl
:
-
1
:
1
for
ii
=
nbl
:
-
1
:
1
%gvb(ii).uc0im = zeros(size(gvcs));
%gvb(ii).ucim = zeros(size(gvcs));
%gvb(ii).ucbl = zeros(size(gvcs));
gvb
(
ii
)
.
uc0bl
=
zeros
(
size
(
gvcs
));
gvb
(
ii
)
.
uc0bl
=
zeros
(
size
(
gvcs
));
gvb
(
ii
)
.
uc
=
zeros
(
size
(
gvcs
));
gvb
(
ii
)
.
uc
=
zeros
(
size
(
gvcs
));
gvb
(
ii
)
.
ucd
=
zeros
(
size
(
gvcs
));
gvb
(
ii
)
.
ucd
=
zeros
(
size
(
gvcs
));
...
@@ -353,11 +321,6 @@ for ii = nbl:-1:1
...
@@ -353,11 +321,6 @@ for ii = nbl:-1:1
gvb
(
ii
)
.
ucbl8ini
=
zeros
(
1
,
size
(
gvcs
,
2
)
*
8
);
gvb
(
ii
)
.
ucbl8ini
=
zeros
(
1
,
size
(
gvcs
,
2
)
*
8
);
gvb
(
ii
)
.
ucbl8ok
=
0
;
gvb
(
ii
)
.
ucbl8ok
=
0
;
%gvb(ii).uc0bl = zeros(size(gvcs),'single');
%gvb(ii).uc = zeros(size(gvcs),'single');
%gvb(ii).ucblmod = zeros(size(gvcs),'single');
%gvb(ii).ucbl8 = zeros([size(gvcs,1), size(gvcs,2)*8],'single');
% Expand rotation tensors
% Expand rotation tensors
subs
=
{(
1
:
3
)
', (1:3)'
,
ones
(
1
,
nv
)};
subs
=
{(
1
:
3
)
', (1:3)'
,
ones
(
1
,
nv
)};
rot
=
bl
(
ii
)
.
S0
(
subs
{:});
rot
=
bl
(
ii
)
.
S0
(
subs
{:});
...
@@ -376,16 +339,6 @@ for ii = nbl:-1:1
...
@@ -376,16 +339,6 @@ for ii = nbl:-1:1
% Initial u of gv centre relative to blob origin
% Initial u of gv centre relative to blob origin
bbor
=
bl
(
ii
)
.
bbor
'
;
bbor
=
bl
(
ii
)
.
bbor
'
;
gvb
(
ii
)
.
uc0bl
=
uc0im
-
bbor
(:,
ones
(
1
,
nv
));
gvb
(
ii
)
.
uc0bl
=
uc0im
-
bbor
(:,
ones
(
1
,
nv
));
% Actual u of gv centre relative to blob origin
%gvb(ii).ucbl = gvb(ii).uc0bl;
% Actual peak shift of gv centre
%gvb(ii).uc = zeros(3,nv);
% Actual plane normal
%plsam = bl(ii).plsam';
%gv.plsam(:,:,ii) = plsam(:,ones(1,nv));
end
end
toc
toc
...
@@ -487,43 +440,6 @@ for ii = 1:nbl
...
@@ -487,43 +440,6 @@ for ii = 1:nbl
fedpars
.
blobnextdet
(
ii
)
=
abs
(
det
(
bl
(
ii
)
.
U0
*
bl
(
nii
)
.
U0
'
));
fedpars
.
blobnextdet
(
ii
)
=
abs
(
det
(
bl
(
ii
)
.
U0
*
bl
(
nii
)
.
U0
'
));
end
end
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %%% Compute initial diffraction patterns
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% disp('Computing initial blob intensities...')
% gv.d(:) = 0;
% [gvb, bl] = gtFedFwdProjExact(gv, gvb, bl, fedpars);
%
% for ii = 1:nbl
% %bl(ii).int0 = bl(ii).int;
% gvb(ii).ucd(:) = 0;
% end
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %%% Compute strain derivatives
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% disp('Computing uvw derivatives...')
%
% % only adds gvb.U field
% gvb = gtFedDerUmatrixExact2(gv, gvb, bl, fedpars);
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %%% Average projection matrices
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% % Mean U matrix of blob
% for ii = 1:nbl
% bl(ii).U0 = reshape(mean(gvb(ii).U, 2), 3, []);
% end
%
% fedpars.U0 = vertcat(bl(:).U0);
% fedpars.U0w = fedpars.U0(3:3:end,:);
%
% fedpars.T0 = pinv(fedpars.U0);
% fedpars.T0w = pinv(fedpars.U0w);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Transform into single
%%% Transform into single
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
...
@@ -547,6 +463,4 @@ end
...
@@ -547,6 +463,4 @@ end
disp
(
'True blob dimensions:'
)
disp
(
'True blob dimensions:'
)
disp
(
vertcat
(
bl
(:)
.
mbbsize
))
disp
(
vertcat
(
bl
(:)
.
mbbsize
))
% beep, pause(1), beep, pause(1), beep
end
% of main function
end
% of main function
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment