├── .DS_Store
├── Data
├── .DS_Store
├── I0.bmp
├── I1.bmp
└── I2.bmp
├── Figures
├── I0.bmp
├── I1.bmp
├── figure1.png
├── figure2.png
├── figure3.png
└── figure4.png
├── README.md
├── Radon-CDT_Demo.ipynb
├── Radon-CDT_Demo_Frechet_Mean.ipynb
├── Radon-CDT_Demo_MNIST.ipynb
├── svgs
├── 002d1c8d6f7bd6452b21706524c5b673.svg
├── 009c5c6e872cda936558aa1391e2980a.svg
├── 066ab7381e7d650225f1730bd6a691a7.svg
├── 088d8e2edfd62b3a9c94103b7752332b.svg
├── 0bdfe8bd3cb6b25542d577159dc3de62.svg
├── 0cbe82a78bb845208169052fcd22e3d1.svg
├── 0d07777bf454d9f941c8facaea255a08.svg
├── 0ea3cec9cd8f8324b87218b762b9a686.svg
├── 12a67427b33187974d4d8bfde354df04.svg
├── 1358cabdf0d481c1d3136e0f96ae0d66.svg
├── 190083ef7a1625fbc75f243cffb9c96d.svg
├── 1a7104381f6205cca28decaf37d42180.svg
├── 1cc5019c20e25f4af278b10609f0574a.svg
├── 1efb47898a7c14b03e4b8d53cc237304.svg
├── 21fd4e8eecd6bdf1a4d3d6bd1fb8d733.svg
├── 2a2097abc9026c829b64577c4de06970.svg
├── 33799619e6a8adb0933941909e268d50.svg
├── 3399c52a5d172ff8ac15b73b689363b8.svg
├── 37634a69c6e56ca1ec7efe3f61465c07.svg
├── 3ee98a0ddf705fc4e453f42e3e2563c6.svg
├── 435f1061aa6f25938c3c3515c083d06c.svg
├── 43d06e17c85890d79a4e36e81fab8328.svg
├── 45de514e4bd2f5ba36f09fff6b549760.svg
├── 4ceae8eec7ac325cd73b832d1af6bf22.svg
├── 5ad8f762edd6de77299fd51a51b5931c.svg
├── 5e257929229ad4fbc8fd8107a6cb33e4.svg
├── 63bb9849783d01d91403bc9a5fea12a2.svg
├── 6406ab477521e17d339e0878746756d7.svg
├── 7211ec64117b386a4d281f03e816f84c.svg
├── 7c74eeb32158ff7c4f67d191b95450fb.svg
├── 82289f06c71b94420b624654501ad06e.svg
├── 86035f674998337e99cf3bd753ab438f.svg
├── 88ba2440e8b83e1f8a6db6af4599ea63.svg
├── 88fbd05154e7d6a65883f20e1b18a817.svg
├── 8a44d333fd9307aaca485044a927c088.svg
├── 97d6b6abab7046031f875d5a2388a7fd.svg
├── 9eff113852463b85a970d2d65d52280c.svg
├── a10ff06f53725bca54c49936f91f5fa5.svg
├── a4fe1ef6edd893e70831c6cf216f5ec3.svg
├── aee9e74580673a1b86cb705eb144212b.svg
├── b8869cc6e30ce71a54d899877ae2d165.svg
├── bb1509c53ed9e94118cb98cd9436ad7f.svg
├── bc2c22455f069a210505b17f5569628a.svg
├── bfd87e6c1d920e5baa94174831278a70.svg
├── d5678db6a0e35236c7037b64736ccf19.svg
├── d906cd9791e4b48a3b848558acda5899.svg
├── db2e04fa41ca5d29f4ff03898514dda5.svg
├── defdb60623c584a375721b4996b31a26.svg
├── ed7a4a2f4460dd0f7144c5861908c90d.svg
├── f1ade1a142928a894aa5d160fa999a1d.svg
├── f4793050b7ef4719465234bb92574613.svg
├── f568e3bda301c41784ffdc1e1bda6086.svg
├── faf70e715418eacd4c2142bd5dba79e4.svg
├── fb6b76d3323483946ea0f3a86521b152.svg
└── fd4f10308a1196420be12f4ad2f946f2.svg
└── transportBasedTransforms
├── __init__.py
├── __init__.pyc
├── cdt.py
├── cdt.pyc
├── radonCDT.py
└── radonCDT.pyc
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/skolouri/Radon-Cumulative-Distribution-Transform/6c4f66d9d5c5eb4ff9a10d29441850ac7b565520/.DS_Store
--------------------------------------------------------------------------------
/Data/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/skolouri/Radon-Cumulative-Distribution-Transform/6c4f66d9d5c5eb4ff9a10d29441850ac7b565520/Data/.DS_Store
--------------------------------------------------------------------------------
/Data/I0.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/skolouri/Radon-Cumulative-Distribution-Transform/6c4f66d9d5c5eb4ff9a10d29441850ac7b565520/Data/I0.bmp
--------------------------------------------------------------------------------
/Data/I1.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/skolouri/Radon-Cumulative-Distribution-Transform/6c4f66d9d5c5eb4ff9a10d29441850ac7b565520/Data/I1.bmp
--------------------------------------------------------------------------------
/Data/I2.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/skolouri/Radon-Cumulative-Distribution-Transform/6c4f66d9d5c5eb4ff9a10d29441850ac7b565520/Data/I2.bmp
--------------------------------------------------------------------------------
/Figures/I0.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/skolouri/Radon-Cumulative-Distribution-Transform/6c4f66d9d5c5eb4ff9a10d29441850ac7b565520/Figures/I0.bmp
--------------------------------------------------------------------------------
/Figures/I1.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/skolouri/Radon-Cumulative-Distribution-Transform/6c4f66d9d5c5eb4ff9a10d29441850ac7b565520/Figures/I1.bmp
--------------------------------------------------------------------------------
/Figures/figure1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/skolouri/Radon-Cumulative-Distribution-Transform/6c4f66d9d5c5eb4ff9a10d29441850ac7b565520/Figures/figure1.png
--------------------------------------------------------------------------------
/Figures/figure2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/skolouri/Radon-Cumulative-Distribution-Transform/6c4f66d9d5c5eb4ff9a10d29441850ac7b565520/Figures/figure2.png
--------------------------------------------------------------------------------
/Figures/figure3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/skolouri/Radon-Cumulative-Distribution-Transform/6c4f66d9d5c5eb4ff9a10d29441850ac7b565520/Figures/figure3.png
--------------------------------------------------------------------------------
/Figures/figure4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/skolouri/Radon-Cumulative-Distribution-Transform/6c4f66d9d5c5eb4ff9a10d29441850ac7b565520/Figures/figure4.png
--------------------------------------------------------------------------------
/svgs/009c5c6e872cda936558aa1391e2980a.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/svgs/066ab7381e7d650225f1730bd6a691a7.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/svgs/0d07777bf454d9f941c8facaea255a08.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/svgs/0ea3cec9cd8f8324b87218b762b9a686.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/svgs/12a67427b33187974d4d8bfde354df04.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/svgs/190083ef7a1625fbc75f243cffb9c96d.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/svgs/1a7104381f6205cca28decaf37d42180.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/svgs/1cc5019c20e25f4af278b10609f0574a.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/svgs/1efb47898a7c14b03e4b8d53cc237304.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/svgs/21fd4e8eecd6bdf1a4d3d6bd1fb8d733.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/svgs/2a2097abc9026c829b64577c4de06970.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/svgs/33799619e6a8adb0933941909e268d50.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/svgs/3399c52a5d172ff8ac15b73b689363b8.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/svgs/37634a69c6e56ca1ec7efe3f61465c07.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/svgs/3ee98a0ddf705fc4e453f42e3e2563c6.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/svgs/435f1061aa6f25938c3c3515c083d06c.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/svgs/45de514e4bd2f5ba36f09fff6b549760.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/svgs/63bb9849783d01d91403bc9a5fea12a2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/svgs/6406ab477521e17d339e0878746756d7.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/svgs/7211ec64117b386a4d281f03e816f84c.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/svgs/7c74eeb32158ff7c4f67d191b95450fb.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/svgs/82289f06c71b94420b624654501ad06e.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/svgs/86035f674998337e99cf3bd753ab438f.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/svgs/88fbd05154e7d6a65883f20e1b18a817.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/svgs/8a44d333fd9307aaca485044a927c088.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/svgs/97d6b6abab7046031f875d5a2388a7fd.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/svgs/9eff113852463b85a970d2d65d52280c.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/svgs/a10ff06f53725bca54c49936f91f5fa5.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/svgs/a4fe1ef6edd893e70831c6cf216f5ec3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/svgs/b8869cc6e30ce71a54d899877ae2d165.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/svgs/bb1509c53ed9e94118cb98cd9436ad7f.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/svgs/bc2c22455f069a210505b17f5569628a.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/svgs/d5678db6a0e35236c7037b64736ccf19.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/svgs/d906cd9791e4b48a3b848558acda5899.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/svgs/ed7a4a2f4460dd0f7144c5861908c90d.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/svgs/f1ade1a142928a894aa5d160fa999a1d.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/svgs/f4793050b7ef4719465234bb92574613.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/svgs/f568e3bda301c41784ffdc1e1bda6086.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/svgs/fb6b76d3323483946ea0f3a86521b152.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/transportBasedTransforms/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import division
2 | from __future__ import print_function
3 |
--------------------------------------------------------------------------------
/transportBasedTransforms/__init__.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/skolouri/Radon-Cumulative-Distribution-Transform/6c4f66d9d5c5eb4ff9a10d29441850ac7b565520/transportBasedTransforms/__init__.pyc
--------------------------------------------------------------------------------
/transportBasedTransforms/cdt.py:
--------------------------------------------------------------------------------
1 | __author__ = "Soheil Kolouri"
2 | import numpy as np
3 | from scipy import interp
4 |
5 | class CDT:
6 | def __init__(self,dim):
7 | template=np.ones((dim,))
8 | template=template/template.sum()
9 | self.template=template
10 | self.dim=dim
11 | self.template_CDF=np.cumsum(template)
12 | self.x=np.arange(self.dim) #Discretization of the domain of template
13 | self.xtilde=np.linspace(0,1,self.dim)
14 | self.template_CDF_inverse=interp(self.xtilde,self.template_CDF,self.x)
15 |
16 | def transform(self,I):
17 | """
18 | transform calculates the transport map, f, that morphs the one-dimensional distribution
19 | I into the template.
20 | input:
21 | I: A one dimensional distributions of size self.dim
22 | output:
23 | The CDT transformation of I
24 | """
25 | assert self.dim==len(I)
26 | assert not((1.0*I<0).sum())
27 | # Force I to be a positive probability distribution
28 | eps=1e-5#This small dc level is needed for a numerically unique solution of the transport map
29 | I=I+eps
30 | I=I/I.sum()
31 | #Calculate its CDF
32 | I_CDF=np.cumsum(I)
33 | I_CDF_inverse = interp(self.xtilde,I_CDF, self.x)
34 | u = interp(self.x,self.template_CDF_inverse,self.template_CDF_inverse-I_CDF_inverse)
35 | Ihat= u*np.sqrt(self.template)
36 | return Ihat
37 |
38 | def itransform(self,Ihat):
39 | """
40 | itransform calculates the inverse of the CDT. It receives a signal in the CDT space
41 | and finds the corresponding one dimensional distribution I from it.
42 | input:
43 | u: Transport displacement map
44 | I0: The template used for calculating the CDT
45 | output:
46 | I: The original distribution
47 | """
48 | u=Ihat/np.sqrt(self.template)
49 | f=self.x-u
50 | fprime=np.gradient(f)
51 | I = interp(self.x,f, self.template/fprime)
52 | I = I/I.sum()
53 | return I
54 |
--------------------------------------------------------------------------------
/transportBasedTransforms/cdt.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/skolouri/Radon-Cumulative-Distribution-Transform/6c4f66d9d5c5eb4ff9a10d29441850ac7b565520/transportBasedTransforms/cdt.pyc
--------------------------------------------------------------------------------
/transportBasedTransforms/radonCDT.py:
--------------------------------------------------------------------------------
1 | __author__ = "Soheil Kolouri"
2 | import numpy as np
3 | import cdt as CDT
4 | from scipy import interp
5 | from skimage.transform import radon, iradon
6 |
7 | class RadonCDT:
8 | def __init__(self,theta=np.arange(180)):
9 | self.theta=theta
10 |
11 | def transform(self,I):
12 | """
13 | transform calculates calculates the Radon transform of the input image
14 | and calculate its CDT with respect to the Radon transform of the template
15 | input:
16 | I: A two-dimensional distribution
17 | output:
18 | The Radon-CDT transformation of I
19 | """
20 | assert not((1.0*I<0).sum())
21 | # Force I to be a positive probability distribution
22 | eps=1e-5#This small dc level is needed for a numerically unique solution of the transport map
23 | I=I+eps
24 | I=I/I.sum()
25 | radonI=radon(I,theta=self.theta,circle=False)
26 | self.dim=radonI.shape[0]
27 | Ihat=np.zeros_like(radonI)
28 | self.cdt=CDT.CDT(dim=self.dim)
29 | for i in range(len(self.theta)):
30 | Ihat[:,i]=self.cdt.transform(radonI[:,i])
31 | return Ihat
32 |
33 | def itransform(self,Ihat):
34 | """
35 | itransform calculates the inverse of the Radon-CDT. It receives the Radon-CDT
36 | and finds the corresponding two-dimensional distribution I from it.
37 | input:
38 | Ihat: Radon-CDT of I
39 | output:
40 | I: The original distribution
41 | """
42 | radonI=np.zeros_like(Ihat)
43 | for i in range(len(self.theta)):
44 | radonI[:,i]=self.cdt.itransform(Ihat[:,i])
45 | I=iradon(radonI,theta=self.theta,circle=False)
46 | return I
47 |
--------------------------------------------------------------------------------
/transportBasedTransforms/radonCDT.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/skolouri/Radon-Cumulative-Distribution-Transform/6c4f66d9d5c5eb4ff9a10d29441850ac7b565520/transportBasedTransforms/radonCDT.pyc
--------------------------------------------------------------------------------