Switch to side-by-side view

--- a
+++ b/ants/math/image_similarity.py
@@ -0,0 +1,67 @@
+
+
+__all__ = ['image_similarity']
+
+import ants
+from ants.decorators import image_method
+
+@image_method
+def image_similarity(fixed_image, moving_image, metric_type='MeanSquares',
+                    fixed_mask=None, moving_mask=None,
+                    sampling_strategy='regular', sampling_percentage=1.):
+    """
+    Measure similarity between two images.
+    NOTE: Similarity is actually returned as distance (i.e. dissimilarity)
+    per ITK/ANTs convention. E.g. using Correlation metric, the similarity
+    of an image with itself returns -1.
+
+    ANTsR function: `imageSimilarity`
+
+    Arguments
+    ---------
+    fixed : ANTsImage
+        the fixed image
+
+    moving : ANTsImage
+        the moving image
+
+    metric_type : string
+        image metric to calculate
+            MeanSquares
+            Correlation
+            ANTSNeighborhoodCorrelation
+            MattesMutualInformation
+            JointHistogramMutualInformation
+            Demons
+
+    fixed_mask : ANTsImage (optional)
+        mask for the fixed image
+
+    moving_mask : ANTsImage (optional)
+        mask for the moving image
+
+    sampling_strategy : string (optional)
+        sampling strategy, default is full sampling
+            None (Full sampling)
+            random
+            regular
+
+    sampling_percentage : scalar
+        percentage of data to sample when calculating metric
+        Must be between 0 and 1
+
+    Returns
+    -------
+    scalar
+
+    Example
+    -------
+    >>> import ants
+    >>> x = ants.image_read(ants.get_ants_data('r16'))
+    >>> y = ants.image_read(ants.get_ants_data('r30'))
+    >>> metric = ants.image_similarity(x,y,metric_type='MeanSquares')
+    """
+    metric = ants.create_ants_metric(fixed_image, moving_image, metric_type, fixed_mask,
+                        moving_mask, sampling_strategy, sampling_percentage)
+    return metric.get_value()
+