Skip to content

Commit

Permalink
Merge branch 'image'
Browse files Browse the repository at this point in the history
  • Loading branch information
jdtuck committed Feb 14, 2023
2 parents dd2763d + edba0f5 commit 8a91c44
Show file tree
Hide file tree
Showing 41 changed files with 10,663 additions and 4 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,8 @@ M. K. Ahn, J. D. Tucker, W. Wu, and A. Srivastava. “Regression Models Using Sh

J. D. Tucker, L. Shand, and K. Chowdhary. “Multimodal Bayesian Registration of Noisy Functions using Hamiltonian Monte Carlo”, Computational Statistics and Data Analysis, accepted, 2021.

Q. Xie, S. Kurtek, E. Klassen, G. E. Christensen and A. Srivastava. Metric-based pairwise and multiple image registration. IEEE European Conference on Computer Vision (ECCV), September, 2014

X. Zhang, S. Kurtek, O. Chkrebtii, and J. D. Tucker, “Elastic k-means clustering of functional data
for posterior exploration, with an application to inference on acute respiratory infection dynamics”,
arXiv:2011.12397 [stat.ME], 2020.
Expand Down
53 changes: 53 additions & 0 deletions bin/ex_image_align.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#%%
import fdasrsf as fs
import numpy as np
from scipy.io import loadmat
import matplotlib.pyplot as plt

dat = loadmat('image.mat')
I1 = dat['I1']
I2 = dat['I2']

(m,n) = I1.shape

I1 -= I1.min()
I1 /= I1.max()

I2 -= I2.min()
I2 /= I2.max()

F1 = np.zeros((m,n,2))
F1[:,:,1],F1[:,:,0] = np.gradient(I1, 1/699,1/699)
F2 = np.zeros((m,n,2))
F2[:,:,1],F2[:,:,0] = np.gradient(I2, 1/699,1/699)

F1 -= F1.min()
F1 /= F1.max()

F2 -= F2.min()
F2 /= F2.max()

# %%
M = 10
b = fs.formbasisTid(M, m, n, 't')

gamnew,Inew,H,stepsize = fs.reparam_image(F1,F2,None,b,stepsize=1e-2, itermax=1000)

I2_new = fs.apply_gam_imag(I2,gamnew)

plt.figure()
ax1 = plt.subplot(131)
plt.imshow(I1)
plt.title('I1');
ax1 = plt.subplot(132)
plt.imshow(I2)
plt.title('I2');
ax1 = plt.subplot(133)
plt.imshow(I2_new)
plt.title('I2 Warped');

plt.figure()
gamid = fs.makediffeoid(m,n)
plt.quiver(gamid[:,:,0],gamid[:,:,1],gamid[:,:,0]-gamnew[:,:,0],gamid[:,:,1]-gamnew[:,:,1])

# %%
Binary file added bin/image.mat
Binary file not shown.
4 changes: 4 additions & 0 deletions doc/build/html/_modules/boxplots.html
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,11 @@
<li class="toctree-l1"><a class="reference internal" href="../pcr_regression.html">Elastic Principal Component Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="../elastic_glm_regression.html">Elastic GLM Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tolerance.html">Elastic Functional Tolerance Bounds</a></li>
<<<<<<< HEAD
<li class="toctree-l1"><a class="reference internal" href="../kmeans.html">Elastic Functional Clustering</a></li>
=======
<li class="toctree-l1"><a class="reference internal" href="../image.html">Elastic Image Warping</a></li>
>>>>>>> image
<li class="toctree-l1"><a class="reference internal" href="../curve_statistics.html">Curve Registration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../geodesic.html">SRVF Geodesic Computation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../utility_functions.html">Utility Functions</a></li>
Expand Down
12 changes: 12 additions & 0 deletions doc/build/html/_modules/geodesic.html
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,11 @@
<li class="toctree-l1"><a class="reference internal" href="../pcr_regression.html">Elastic Principal Component Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="../elastic_glm_regression.html">Elastic GLM Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tolerance.html">Elastic Functional Tolerance Bounds</a></li>
<<<<<<< HEAD
<li class="toctree-l1"><a class="reference internal" href="../kmeans.html">Elastic Functional Clustering</a></li>
=======
<li class="toctree-l1"><a class="reference internal" href="../image.html">Elastic Image Warping</a></li>
>>>>>>> image
<li class="toctree-l1"><a class="reference internal" href="../curve_statistics.html">Curve Registration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../geodesic.html">SRVF Geodesic Computation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../utility_functions.html">Utility Functions</a></li>
Expand Down Expand Up @@ -104,7 +108,11 @@ <h1>Source code for geodesic</h1><div class="highlight"><pre>


<div class="viewcode-block" id="plot_geod"><a class="viewcode-back" href="../geodesic.html#geodesic.plot_geod">[docs]</a><span class="k">def</span> <span class="nf">plot_geod</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
<<<<<<< HEAD
<span class="w"> </span><span class="sa">r</span><span class="sd">&quot;&quot;&quot;</span>
=======
<span class="sa">r</span><span class="sd">&quot;&quot;&quot;</span>
>>>>>>> image
<span class="sd"> Plots the geodesic path as a sequence of curves</span>

<span class="sd"> :param path: numpy ndarray of shape (2,M,K) of M sample points of K samples along path</span>
Expand Down Expand Up @@ -210,7 +218,11 @@ <h1>Source code for geodesic</h1><div class="highlight"><pre>


<div class="viewcode-block" id="path_straightening"><a class="viewcode-back" href="../geodesic.html#geodesic.path_straightening">[docs]</a><span class="k">def</span> <span class="nf">path_straightening</span><span class="p">(</span><span class="n">beta1</span><span class="p">,</span> <span class="n">beta2</span><span class="p">,</span> <span class="n">betamid</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">init</span><span class="o">=</span><span class="s2">&quot;rand&quot;</span><span class="p">,</span> <span class="n">T</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span> <span class="n">k</span><span class="o">=</span><span class="mi">5</span><span class="p">):</span>
<<<<<<< HEAD
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
=======
<span class="sd">&quot;&quot;&quot;</span>
>>>>>>> image
<span class="sd"> Perform path straightening to find geodesic between two shapes in either</span>
<span class="sd"> the space of closed curves or the space of affine standardized curves.</span>
<span class="sd"> This algorithm follows the steps outlined in section 4.6 of the</span>
Expand Down
8 changes: 8 additions & 0 deletions doc/build/html/_modules/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,11 @@
<li class="toctree-l1"><a class="reference internal" href="../pcr_regression.html">Elastic Principal Component Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="../elastic_glm_regression.html">Elastic GLM Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tolerance.html">Elastic Functional Tolerance Bounds</a></li>
<<<<<<< HEAD
<li class="toctree-l1"><a class="reference internal" href="../kmeans.html">Elastic Functional Clustering</a></li>
=======
<li class="toctree-l1"><a class="reference internal" href="../image.html">Elastic Image Warping</a></li>
>>>>>>> image
<li class="toctree-l1"><a class="reference internal" href="../curve_statistics.html">Curve Registration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../geodesic.html">SRVF Geodesic Computation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../utility_functions.html">Utility Functions</a></li>
Expand Down Expand Up @@ -93,7 +97,11 @@ <h1>All modules for which code is available</h1>
<li><a href="fPCA.html">fPCA</a></li>
<li><a href="fPLS.html">fPLS</a></li>
<li><a href="geodesic.html">geodesic</a></li>
<<<<<<< HEAD
<li><a href="kmeans.html">kmeans</a></li>
=======
<li><a href="image.html">image</a></li>
>>>>>>> image
<li><a href="pcr_regression.html">pcr_regression</a></li>
<li><a href="regression.html">regression</a></li>
<li><a href="time_warping.html">time_warping</a></li>
Expand Down
4 changes: 4 additions & 0 deletions doc/build/html/_modules/time_warping.html
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,11 @@
<li class="toctree-l1"><a class="reference internal" href="../pcr_regression.html">Elastic Principal Component Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="../elastic_glm_regression.html">Elastic GLM Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tolerance.html">Elastic Functional Tolerance Bounds</a></li>
<<<<<<< HEAD
<li class="toctree-l1"><a class="reference internal" href="../kmeans.html">Elastic Functional Clustering</a></li>
=======
<li class="toctree-l1"><a class="reference internal" href="../image.html">Elastic Image Warping</a></li>
>>>>>>> image
<li class="toctree-l1"><a class="reference internal" href="../curve_statistics.html">Curve Registration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../geodesic.html">SRVF Geodesic Computation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../utility_functions.html">Utility Functions</a></li>
Expand Down
8 changes: 8 additions & 0 deletions doc/build/html/_modules/tolerance.html
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,11 @@
<li class="toctree-l1"><a class="reference internal" href="../pcr_regression.html">Elastic Principal Component Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="../elastic_glm_regression.html">Elastic GLM Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tolerance.html">Elastic Functional Tolerance Bounds</a></li>
<<<<<<< HEAD
<li class="toctree-l1"><a class="reference internal" href="../kmeans.html">Elastic Functional Clustering</a></li>
=======
<li class="toctree-l1"><a class="reference internal" href="../image.html">Elastic Image Warping</a></li>
>>>>>>> image
<li class="toctree-l1"><a class="reference internal" href="../curve_statistics.html">Curve Registration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../geodesic.html">SRVF Geodesic Computation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../utility_functions.html">Utility Functions</a></li>
Expand Down Expand Up @@ -104,7 +108,11 @@ <h1>Source code for tolerance</h1><div class="highlight"><pre>


<div class="viewcode-block" id="bootTB"><a class="viewcode-back" href="../tolerance.html#tolerance.bootTB">[docs]</a><span class="k">def</span> <span class="nf">bootTB</span><span class="p">(</span><span class="n">f</span><span class="p">,</span> <span class="n">time</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="mf">0.05</span><span class="p">,</span> <span class="n">p</span><span class="o">=</span><span class="mf">.99</span><span class="p">,</span> <span class="n">B</span><span class="o">=</span><span class="mi">500</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">parallel</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
<<<<<<< HEAD
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
=======
<span class="sd">&quot;&quot;&quot;</span>
>>>>>>> image
<span class="sd"> This function computes tolerance bounds for functional data containing</span>
<span class="sd"> phase and amplitude variation using bootstrap sampling</span>

Expand Down
4 changes: 4 additions & 0 deletions doc/build/html/_modules/utility_functions.html
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,11 @@
<li class="toctree-l1"><a class="reference internal" href="../pcr_regression.html">Elastic Principal Component Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="../elastic_glm_regression.html">Elastic GLM Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tolerance.html">Elastic Functional Tolerance Bounds</a></li>
<<<<<<< HEAD
<li class="toctree-l1"><a class="reference internal" href="../kmeans.html">Elastic Functional Clustering</a></li>
=======
<li class="toctree-l1"><a class="reference internal" href="../image.html">Elastic Image Warping</a></li>
>>>>>>> image
<li class="toctree-l1"><a class="reference internal" href="../curve_statistics.html">Curve Registration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../geodesic.html">SRVF Geodesic Computation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../utility_functions.html">Utility Functions</a></li>
Expand Down
6 changes: 6 additions & 0 deletions doc/build/html/_sources/index.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,11 @@ using functional component analysis and regression.
pcr_regression.rst
elastic_glm_regression.rst
tolerance.rst
<<<<<<< HEAD
kmeans.rst
=======
image.rst
>>>>>>> image
curve_statistics.rst
geodesic.rst
utility_functions.rst
Expand Down Expand Up @@ -107,6 +111,8 @@ References
for posterior exploration, with an application to inference on acute respiratory infection dynamics”,
arXiv:2011.12397 [stat.ME], 2020.

Q. Xie, S. Kurtek, E. Klassen, G. E. Christensen and A. Srivastava. Metric-based pairwise and multiple image registration. IEEE European Conference on Computer Vision (ECCV), September, 2014


Indices and tables
==================
Expand Down
4 changes: 4 additions & 0 deletions doc/build/html/boxplots.html
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,11 @@
<li class="toctree-l1"><a class="reference internal" href="pcr_regression.html">Elastic Principal Component Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="elastic_glm_regression.html">Elastic GLM Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="tolerance.html">Elastic Functional Tolerance Bounds</a></li>
<<<<<<< HEAD
<li class="toctree-l1"><a class="reference internal" href="kmeans.html">Elastic Functional Clustering</a></li>
=======
<li class="toctree-l1"><a class="reference internal" href="image.html">Elastic Image Warping</a></li>
>>>>>>> image
<li class="toctree-l1"><a class="reference internal" href="curve_statistics.html">Curve Registration</a></li>
<li class="toctree-l1"><a class="reference internal" href="geodesic.html">SRVF Geodesic Computation</a></li>
<li class="toctree-l1"><a class="reference internal" href="utility_functions.html">Utility Functions</a></li>
Expand Down
4 changes: 4 additions & 0 deletions doc/build/html/curve_functions.html
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,11 @@
<li class="toctree-l1"><a class="reference internal" href="pcr_regression.html">Elastic Principal Component Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="elastic_glm_regression.html">Elastic GLM Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="tolerance.html">Elastic Functional Tolerance Bounds</a></li>
<<<<<<< HEAD
<li class="toctree-l1"><a class="reference internal" href="kmeans.html">Elastic Functional Clustering</a></li>
=======
<li class="toctree-l1"><a class="reference internal" href="image.html">Elastic Image Warping</a></li>
>>>>>>> image
<li class="toctree-l1"><a class="reference internal" href="curve_statistics.html">Curve Registration</a></li>
<li class="toctree-l1"><a class="reference internal" href="geodesic.html">SRVF Geodesic Computation</a></li>
<li class="toctree-l1"><a class="reference internal" href="utility_functions.html">Utility Functions</a></li>
Expand Down
21 changes: 21 additions & 0 deletions doc/build/html/curve_statistics.html
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,11 @@
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="SRVF Geodesic Computation" href="geodesic.html" />
<<<<<<< HEAD
<link rel="prev" title="Elastic Functional Clustering" href="kmeans.html" />
=======
<link rel="prev" title="Elastic Image Warping" href="image.html" />
>>>>>>> image
</head>

<body class="wy-body-for-nav">
Expand Down Expand Up @@ -58,6 +62,7 @@
<li class="toctree-l1"><a class="reference internal" href="pcr_regression.html">Elastic Principal Component Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="elastic_glm_regression.html">Elastic GLM Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="tolerance.html">Elastic Functional Tolerance Bounds</a></li>
<<<<<<< HEAD
<li class="toctree-l1"><a class="reference internal" href="kmeans.html">Elastic Functional Clustering</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Curve Registration</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#curve_stats.fdacurve"><code class="docutils literal notranslate"><span class="pre">fdacurve</span></code></a><ul>
Expand All @@ -72,6 +77,10 @@
<li class="toctree-l2"><a class="reference internal" href="#curve_stats.randn"><code class="docutils literal notranslate"><span class="pre">randn()</span></code></a></li>
</ul>
</li>
=======
<li class="toctree-l1"><a class="reference internal" href="image.html">Elastic Image Warping</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Curve Registration</a></li>
>>>>>>> image
<li class="toctree-l1"><a class="reference internal" href="geodesic.html">SRVF Geodesic Computation</a></li>
<li class="toctree-l1"><a class="reference internal" href="utility_functions.html">Utility Functions</a></li>
<li class="toctree-l1"><a class="reference internal" href="curve_functions.html">Curve Functions</a></li>
Expand Down Expand Up @@ -296,9 +305,21 @@ <h2>Examples<a class="headerlink" href="#examples" title="Permalink to this head

</div>
</div>
<<<<<<< HEAD
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="kmeans.html" class="btn btn-neutral float-left" title="Elastic Functional Clustering" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="geodesic.html" class="btn btn-neutral float-right" title="SRVF Geodesic Computation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
=======
<footer>

<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">

<a href="geodesic.html" class="btn btn-neutral float-right" title="SRVF Geodesic Computation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>


<a href="image.html" class="btn btn-neutral float-left" title="Elastic Image Warping" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>

>>>>>>> image
</div>

<hr/>
Expand Down
4 changes: 4 additions & 0 deletions doc/build/html/fPCA.html
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,11 @@
<li class="toctree-l1"><a class="reference internal" href="pcr_regression.html">Elastic Principal Component Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="elastic_glm_regression.html">Elastic GLM Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="tolerance.html">Elastic Functional Tolerance Bounds</a></li>
<<<<<<< HEAD
<li class="toctree-l1"><a class="reference internal" href="kmeans.html">Elastic Functional Clustering</a></li>
=======
<li class="toctree-l1"><a class="reference internal" href="image.html">Elastic Image Warping</a></li>
>>>>>>> image
<li class="toctree-l1"><a class="reference internal" href="curve_statistics.html">Curve Registration</a></li>
<li class="toctree-l1"><a class="reference internal" href="geodesic.html">SRVF Geodesic Computation</a></li>
<li class="toctree-l1"><a class="reference internal" href="utility_functions.html">Utility Functions</a></li>
Expand Down
4 changes: 4 additions & 0 deletions doc/build/html/fPLS.html
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,11 @@
<li class="toctree-l1"><a class="reference internal" href="pcr_regression.html">Elastic Principal Component Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="elastic_glm_regression.html">Elastic GLM Regression</a></li>
<li class="toctree-l1"><a class="reference internal" href="tolerance.html">Elastic Functional Tolerance Bounds</a></li>
<<<<<<< HEAD
<li class="toctree-l1"><a class="reference internal" href="kmeans.html">Elastic Functional Clustering</a></li>
=======
<li class="toctree-l1"><a class="reference internal" href="image.html">Elastic Image Warping</a></li>
>>>>>>> image
<li class="toctree-l1"><a class="reference internal" href="curve_statistics.html">Curve Registration</a></li>
<li class="toctree-l1"><a class="reference internal" href="geodesic.html">SRVF Geodesic Computation</a></li>
<li class="toctree-l1"><a class="reference internal" href="utility_functions.html">Utility Functions</a></li>
Expand Down
Loading

0 comments on commit 8a91c44

Please sign in to comment.