# algorithms.registration.similarity_measures

## Module: `algorithms.registration.similarity_measures`

Inheritance diagram for `nipy.algorithms.registration.similarity_measures`:

## Classes

### `CorrelationCoefficient`

class nipy.algorithms.registration.similarity_measures.CorrelationCoefficient(shape, renormalize=False, dist=None)

  Bases: `SimilarityMeasure`

  Use a bivariate Gaussian as a distribution model

  __init__(shape, renormalize=False, dist=None)
  loss(H)
  npoints(H)

### `CorrelationRatio`

class nipy.algorithms.registration.similarity_measures.CorrelationRatio(shape, renormalize=False, dist=None)

  Bases: `SimilarityMeasure`

  Use a nonlinear regression model with Gaussian errors as a distribution model

  __init__(shape, renormalize=False, dist=None)
  loss(H)
  npoints(H)

### `CorrelationRatioL1`

class nipy.algorithms.registration.similarity_measures.CorrelationRatioL1(shape, renormalize=False, dist=None)

  Bases: `SimilarityMeasure`

  Use a nonlinear regression model with Laplace distributed errors as a distribution model

  __init__(shape, renormalize=False, dist=None)
  loss(H)
  npoints(H)

### `DiscreteParzenMutualInformation`

class nipy.algorithms.registration.similarity_measures.DiscreteParzenMutualInformation(shape, renormalize=False, dist=None)

  Bases: `SimilarityMeasure`

  Use Parzen windowing in the discrete case to estimate the distribution model

  __init__(shape, renormalize=False, dist=None)
  loss(H)
  npoints(H)

### `MutualInformation`

class nipy.algorithms.registration.similarity_measures.MutualInformation(shape, renormalize=False, dist=None)

  Bases: `SimilarityMeasure`

  Use the normalized joint histogram as a distribution model

  __init__(shape, renormalize=False, dist=None)
  loss(H)
  npoints(H)

### `NormalizedMutualInformation`

class nipy.algorithms.registration.similarity_measures.NormalizedMutualInformation(shape, renormalize=False, dist=None)

  Bases: `SimilarityMeasure`

  NMI = 2*(1 - H(I,J)/[H(I)+H(J)])

    = 2*MI/[H(I)+H(J)])

  __init__(shape, renormalize=False, dist=None)
  loss(H)
  npoints(H)

### `ParzenMutualInformation`

class nipy.algorithms.registration.similarity_measures.ParzenMutualInformation(shape, renormalize=False, dist=None)

  Bases: `SimilarityMeasure`

  Use Parzen windowing to estimate the distribution model

  __init__(shape, renormalize=False, dist=None)
  loss(H)
  npoints(H)

### `SimilarityMeasure`

class nipy.algorithms.registration.similarity_measures.SimilarityMeasure(shape, renormalize=False, dist=None)

  Bases: `object`

  Template class

  __init__(shape, renormalize=False, dist=None)
  loss(H)
  npoints(H)

### `SupervisedLikelihoodRatio`

class nipy.algorithms.registration.similarity_measures.SupervisedLikelihoodRatio(shape, renormalize=False, dist=None)

  Bases: `SimilarityMeasure`

  Assume a joint intensity distribution model is given by self.dist

  __init__(shape, renormalize=False, dist=None)
  loss(H)
  npoints(H)

## Functions

nipy.algorithms.registration.similarity_measures.correlation2loglikelihood(rho2, npts)

  Re-normalize correlation.

  Convert a squared normalized correlation to a proper log-likelihood associated with a registration problem. The result is a function of both the input correlation and the number of points in the image overlap.

  See: Roche, medical image registration through statistical inference, 2001.

  Parameters:
    rho2: float

      Squared correlation measure

    npts: int

      Number of points involved in computing rho2

  Returns:
    ll: float

      Log-likelihood re-normalized rho2

nipy.algorithms.registration.similarity_measures.dist2loss(q, qI=None, qJ=None)

  Convert a joint distribution model q(i,j) into a pointwise loss:

  L(i,j) = - log q(i,j)/(q(i)q(j))

  where q(i) = sum_j q(i,j) and q(j) = sum_i q(i,j)

  See: Roche, medical image registration through statistical inference, 2001.