algorithms.registration.similarity_measures

Module: algorithms.registration.similarity_measures

Inheritance diagram for nipy.algorithms.registration.similarity_measures:

Inheritance diagram of 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.