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