|
a |
|
b/demoTCDspin.m |
|
|
1 |
[native,dataout,params] = DICOMReaderGeneral('test_duplex_tcd_spin_JTS'); |
|
|
2 |
|
|
|
3 |
|
|
|
4 |
bmode = reshape(dataout{1}.img{1},[dataout{1}.meta{1}.dims size(dataout{1}.img{1},2)]); |
|
|
5 |
cpower = reshape(dataout{2}.img{1},[dataout{2}.meta{1}.dims size(dataout{2}.img{1},2)]); |
|
|
6 |
cvel = reshape(dataout{3}.img{1},[dataout{3}.meta{1}.dims size(dataout{3}.img{1},2)]); |
|
|
7 |
cvar = reshape(dataout{4}.img{1},[dataout{4}.meta{1}.dims size(dataout{4}.img{1},2)]); |
|
|
8 |
seeks = nan*ones(1,size(bmode,4)); |
|
|
9 |
seeks(1:38) = 0; |
|
|
10 |
seeks(39:49) = 5; |
|
|
11 |
seeks(50:59) = 10; |
|
|
12 |
seeks(60:65) = 15; |
|
|
13 |
seeks(66:72) = 20; |
|
|
14 |
seeks(72:76) = 25; |
|
|
15 |
seeks(77:81) = 30; |
|
|
16 |
seeks(82:85) = 35; |
|
|
17 |
seeks(86:89) = 40; |
|
|
18 |
seeks(90:95) = 45; |
|
|
19 |
seeks(96:98) = 50; |
|
|
20 |
seeks(99:101) = 55; |
|
|
21 |
seeks(102:103) = 60; |
|
|
22 |
seeks(104:107) = 65; |
|
|
23 |
seeks(108:113) = 70; |
|
|
24 |
seeks(114) = 75; |
|
|
25 |
seeks(115:117) = 80; |
|
|
26 |
seeks(118:119) = 85; |
|
|
27 |
seeks(120:122) = 90; |
|
|
28 |
seeks(123:124) = 95; |
|
|
29 |
seeks(125:127) = 100; |
|
|
30 |
seeks(128:129) = 105; |
|
|
31 |
seeks(130:131) = 110; |
|
|
32 |
seeks(132) = 115; |
|
|
33 |
seeks(133) = 120; |
|
|
34 |
seeks(134) = 125; |
|
|
35 |
seeks(135:136) = 130; |
|
|
36 |
seeks(137:138) = 135; |
|
|
37 |
seeks(139:140) = 140; |
|
|
38 |
seeks(141:150) = 145; |
|
|
39 |
seeks(151:154) = 150; |
|
|
40 |
seeks(155:156) = 155; |
|
|
41 |
seeks(157) = 160; |
|
|
42 |
seeks(158:164) = 165; |
|
|
43 |
seeks(165) = 170; |
|
|
44 |
seeks(163) = 175; |
|
|
45 |
iseeks = unique(seeks); iseeks(find(isnan(iseeks))) = []; |
|
|
46 |
|
|
|
47 |
RECT.angles = []; |
|
|
48 |
RECT.bmode = []; |
|
|
49 |
RECT.cpower = []; |
|
|
50 |
RECT.cvel = []; |
|
|
51 |
RECT.cvar = []; |
|
|
52 |
for i2 = 1:length(iseeks) |
|
|
53 |
RECT.angles(i2) = iseeks(i2); i3 = find(seeks == iseeks(i2)); |
|
|
54 |
RECT.bmode(:,:,i2) = max(bmode(:,:,i3),[],3); |
|
|
55 |
RECT.cpower(:,:,i2) = max(cpower(:,:,i3),[],3); |
|
|
56 |
RECT.cvel(:,:,i2) = max(cvel(:,:,i3),[],3); |
|
|
57 |
RECT.cvar(:,:,i2) = max(cvar(:,:,i3),[],3); |
|
|
58 |
end |
|
|
59 |
|
|
|
60 |
POLAR.cpower = []; |
|
|
61 |
|
|
|
62 |
for i3 = 1:size(RECT.cpower,2) |
|
|
63 |
POLAR.cpower(:,:,i3) = PolarToIm(squeeze(RECT.cpower(:,i3,:)), -1,1,256,256 ); |
|
|
64 |
end |
|
|
65 |
|
|
|
66 |
POLAR.cpower = zeros(size(RECT.cpower,1),size(RECT.cpower,1),size(RECT.cpower,2)); |
|
|
67 |
for i4 = 1:length(RECT.angles) |
|
|
68 |
tmp = zeros(size(RECT.cpower,1),size(RECT.cpower,1),size(RECT.cpower,2)); |
|
|
69 |
tmp(end/2,:,:) = RECT.cpower(:,:,i4); |
|
|
70 |
tmp = imgaussfilt3(tmp,8,'FilterSize',[15 1 1]); |
|
|
71 |
T = affine3d(horzcat([rotz(RECT.angles(i4)); 0 0 0],[0 0 0 1]')); |
|
|
72 |
tmp1 = imwarp(tmp,T); tmp1 = imresize3(tmp1, size(tmp)); |
|
|
73 |
itmp = find(tmp1>0); |
|
|
74 |
POLAR.cpower(itmp) = tmp1(itmp); |
|
|
75 |
fprintf('%d\n',i4); |
|
|
76 |
end |
|
|
77 |
|
|
|
78 |
|
|
|
79 |
|
|
|
80 |
|
|
|
81 |
|