Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > d5e74628f0e673bb8680aebce32b2c04 > files > 16779

itk-doc-3.12.0-1mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta name="robots" content="noindex">
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>ITK: itkOptImageToImageMetric.h Source File</title>
<link href="DoxygenStyle.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">


<!--  Section customized for INSIGHT : Tue Jul 17 01:02:45 2001 -->
<center>
<a href="index.html" class="qindex">Main Page</a>&nbsp;&nbsp; 
<a href="modules.html" class="qindex">Groups</a>&nbsp;&nbsp;
<a href="namespaces.html" class="qindex">Namespace List</a>&nbsp;&nbsp;
<a href="hierarchy.html" class="qindex">Class Hierarchy</a>&nbsp;&nbsp;
<a href="classes.html" class="qindex">Alphabetical List</a>&nbsp;&nbsp;
<a href="annotated.html" class="qindex">Compound List</a>&nbsp;&nbsp; 
<a href="files.html" class="qindex">File
List</a>&nbsp;&nbsp; 
<a href="namespacemembers.html" class="qindex">Namespace Members</a>&nbsp;&nbsp; 
<a href="functions.html" class="qindex">Compound Members</a>&nbsp;&nbsp; 
<a href="globals.html" class="qindex">File Members</a>&nbsp;&nbsp;
<a href="pages.html" class="qindex">Concepts</a></center>


<!-- Generated by Doxygen 1.5.9 -->
  <div class="navpath"><a class="el" href="dir_02e23d841c198393a6e961e9a0678fff.html">Code</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_dd352b1cbb04f9ff09fa5f33693fed9f.html">Review</a>
  </div>
<div class="contents">
<h1>itkOptImageToImageMetric.h</h1><a href="itkOptImageToImageMetric_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*=========================================================================</span>
<a name="l00002"></a>00002 <span class="comment"></span>
<a name="l00003"></a>00003 <span class="comment">  Program:   Insight Segmentation &amp; Registration Toolkit</span>
<a name="l00004"></a>00004 <span class="comment">  Module:    $RCSfile: itkOptImageToImageMetric.h,v $</span>
<a name="l00005"></a>00005 <span class="comment">  Language:  C++</span>
<a name="l00006"></a>00006 <span class="comment">  Date:      $Date: 2008-07-30 20:56:17 $</span>
<a name="l00007"></a>00007 <span class="comment">  Version:   $Revision: 1.22 $</span>
<a name="l00008"></a>00008 <span class="comment"></span>
<a name="l00009"></a>00009 <span class="comment">  Copyright (c) Insight Software Consortium. All rights reserved.</span>
<a name="l00010"></a>00010 <span class="comment">  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.</span>
<a name="l00011"></a>00011 <span class="comment"></span>
<a name="l00012"></a>00012 <span class="comment">     This software is distributed WITHOUT ANY WARRANTY; without even </span>
<a name="l00013"></a>00013 <span class="comment">     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR </span>
<a name="l00014"></a>00014 <span class="comment">     PURPOSE.  See the above copyright notices for more information.</span>
<a name="l00015"></a>00015 <span class="comment"></span>
<a name="l00016"></a>00016 <span class="comment">=========================================================================*/</span>
<a name="l00017"></a>00017 <span class="preprocessor">#ifndef __itkOptImageToImageMetric_h</span>
<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define __itkOptImageToImageMetric_h</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span>
<a name="l00020"></a>00020 <span class="preprocessor">#include "<a class="code" href="itkSingleValuedCostFunction_8h.html">itkSingleValuedCostFunction.h</a>"</span>
<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="itkImageBase_8h.html">itkImageBase.h</a>"</span>
<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="itkTransform_8h.html">itkTransform.h</a>"</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="itkInterpolateImageFunction_8h.html">itkInterpolateImageFunction.h</a>"</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include "<a class="code" href="itkSingleValuedCostFunction_8h.html">itkSingleValuedCostFunction.h</a>"</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="itkExceptionObject_8h.html">itkExceptionObject.h</a>"</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="itkGradientRecursiveGaussianImageFilter_8h.html">itkGradientRecursiveGaussianImageFilter.h</a>"</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="itkSpatialObject_8h.html">itkSpatialObject.h</a>"</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="itkBSplineDeformableTransform_8h.html">itkBSplineDeformableTransform.h</a>"</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="itkCentralDifferenceImageFunction_8h.html">itkCentralDifferenceImageFunction.h</a>"</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="itkCovariantVector_8h.html">itkCovariantVector.h</a>"</span>
<a name="l00031"></a>00031 
<a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="itkMultiThreader_8h.html">itkMultiThreader.h</a>"</span>
<a name="l00033"></a>00033 
<a name="l00034"></a>00034 <span class="preprocessor">#include "<a class="code" href="itkOptBSplineInterpolateImageFunction_8h.html">itkOptBSplineInterpolateImageFunction.h</a>"</span>
<a name="l00035"></a>00035 
<a name="l00036"></a>00036 <span class="keyword">namespace </span>itk
<a name="l00037"></a>00037 {
<a name="l00038"></a>00038   
<a name="l00058"></a>00058 <span class="keyword">template</span> &lt;<span class="keyword">class</span> TFixedImage,  <span class="keyword">class</span> TMovingImage&gt; 
<a name="l00059"></a>00059 <span class="keyword">class </span><a class="code" href="itkWin32Header_8h.html#7d4384322557205d75f0719c012dded6">ITK_EXPORT</a> ImageToImageMetric 
<a name="l00060"></a>00060 : <span class="keyword">public</span> SingleValuedCostFunction 
<a name="l00061"></a>00061 {
<a name="l00062"></a>00062 <span class="keyword">public</span>:
<a name="l00064"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#7010c207ed271d83da282c77740dee9c">00064</a>   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1ImageToImageMetric.html" title="Computes similarity between regions of two images.">ImageToImageMetric</a>           <a class="code" href="classitk_1_1LightObject.html" title="Light weight base class for most itk classes.">Self</a>;
<a name="l00065"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#21504a4db85f97654b63ebb4b2e6e9a6">00065</a>   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1SingleValuedCostFunction.html" title="This class is a base for the CostFunctions returning a single value.">SingleValuedCostFunction</a>     <a class="code" href="classitk_1_1LightObject.html" title="Light weight base class for most itk classes.">Superclass</a>;
<a name="l00066"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#3cce911669fd3d3a45d249fefe5b8141">00066</a>   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1SmartPointer.html">SmartPointer&lt;Self&gt;</a>           <a class="code" href="classitk_1_1SmartPointer.html">Pointer</a>;
<a name="l00067"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#de292faff6f745c3255c1a631c086355">00067</a>   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1SmartPointer.html">SmartPointer&lt;const Self&gt;</a>     <a class="code" href="classitk_1_1SmartPointer.html">ConstPointer</a>;
<a name="l00068"></a>00068 
<a name="l00070"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#c82454965ec5e6512486d1245e1d3abd">00070</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> Superclass::ParametersValueType CoordinateRepresentationType;
<a name="l00071"></a>00071 
<a name="l00073"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#be2fccc3ec6066373ff7c1b0aded8a66">00073</a>   <a class="code" href="itkMacro_8h.html#574c1f86661d409dd32c742307a0e96a">itkTypeMacro</a>(<a class="code" href="classitk_1_1ImageToImageMetric.html" title="Computes similarity between regions of two images.">ImageToImageMetric</a>, <a class="code" href="classitk_1_1SingleValuedCostFunction.html" title="This class is a base for the CostFunctions returning a single value.">SingleValuedCostFunction</a>);
<a name="l00074"></a>00074 
<a name="l00076"></a>00076   <span class="keyword">typedef</span> TMovingImage                               MovingImageType;
<a name="l00077"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#5ea5167e4d31e7ace726fa7e64a75521">00077</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> TMovingImage::PixelType           MovingImagePixelType;
<a name="l00078"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#9f61a9aa4535a9a829db4c0528d1a02c">00078</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="itkFEMMacro_8h.html#68fafcc6909430ccd70cbc4aeee0107c">MovingImageType::ConstPointer</a>     MovingImageConstPointer;
<a name="l00079"></a>00079 
<a name="l00081"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#75c81bba5c283414f5ec6807ae77ca69">00081</a>   <span class="keyword">typedef</span> TFixedImage                                FixedImageType;
<a name="l00082"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#c51acad596159429ea1260776cc57181">00082</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> TFixedImage::PixelType            FixedImagePixelType;
<a name="l00083"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#317ddf555dd3fbf30ffdd8f78d8412a7">00083</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="itkFEMMacro_8h.html#68fafcc6909430ccd70cbc4aeee0107c">FixedImageType::ConstPointer</a>      FixedImageConstPointer;
<a name="l00084"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#e9ce92357c6ac518135f4b8e5db02afa">00084</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#ed8c4a40607d317c666eb96ea265e126">FixedImageType::RegionType</a>        FixedImageRegionType;
<a name="l00085"></a>00085 
<a name="l00087"></a>00087   <a class="code" href="itkMacro_8h.html#1905cf6b2e88235996fa7ff73b2fb0eb">itkStaticConstMacro</a>(MovingImageDimension, 
<a name="l00088"></a>00088                       <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>,
<a name="l00089"></a>00089                       TMovingImage::ImageDimension);
<a name="l00090"></a>00090   <a class="code" href="itkMacro_8h.html#1905cf6b2e88235996fa7ff73b2fb0eb">itkStaticConstMacro</a>(FixedImageDimension, 
<a name="l00091"></a>00091                       <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>,
<a name="l00092"></a>00092                       TFixedImage::ImageDimension);
<a name="l00094"></a>00094 
<a name="l00096"></a>00096   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Transform.html" title="Transform points and vector from an input space to an output space.">Transform</a>&lt;CoordinateRepresentationType, 
<a name="l00097"></a>00097                     <a class="code" href="itkMacro_8h.html#94ef2dc11d52c8ef0a78e34558feb8cb">itkGetStaticConstMacro</a>(MovingImageDimension),
<a name="l00098"></a>00098                     <a class="code" href="itkMacro_8h.html#94ef2dc11d52c8ef0a78e34558feb8cb">itkGetStaticConstMacro</a>(FixedImageDimension)&gt; 
<a name="l00099"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#6a1e62324df29e6ac08a9ac2d8c8d905">00099</a>                                                      <a class="code" href="classitk_1_1Transform.html" title="Transform points and vector from an input space to an output space.">TransformType</a>;
<a name="l00100"></a>00100 
<a name="l00101"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#b9e76835a302db4a5bfd67b011e4467d">00101</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1SmartPointer.html">TransformType::Pointer</a>            <a class="code" href="classitk_1_1SmartPointer.html">TransformPointer</a>;
<a name="l00102"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#bec4a1ed166efcbb106b829038be44f0">00102</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">TransformType::InputPointType</a>     <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">InputPointType</a>;
<a name="l00103"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#d8b4cb7a1acc796d11e6a110f1ed3fd8">00103</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">TransformType::OutputPointType</a>    <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">OutputPointType</a>;
<a name="l00104"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#8bbd90c252ae8f268e2f31d5719c3bee">00104</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> TransformType::ParametersType     TransformParametersType;
<a name="l00105"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#6bb20ede72e9f9f2d1975a17a3f4cdb0">00105</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1Array2D.html">TransformType::JacobianType</a>       <a class="code" href="classitk_1_1Array2D.html">TransformJacobianType</a>;
<a name="l00106"></a>00106 
<a name="l00108"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#3b2b46eb6b8cf53b742401a7d765258c">00108</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#be32dc19e71d40322ad9828b9ab40853">FixedImageType::IndexType</a>           FixedImageIndexType;
<a name="l00109"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#4d54b9681f99496aabeceeeb5422e080">00109</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> FixedImageIndexType::IndexValueType FixedImageIndexValueType;
<a name="l00110"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#a48e1bb6ee0a78a3e32ff90c2e24554d">00110</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#be32dc19e71d40322ad9828b9ab40853">MovingImageType::IndexType</a>          MovingImageIndexType;
<a name="l00111"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#9c5e0abd04bdfc4f9aaa6543889eb921">00111</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">TransformType::InputPointType</a>       <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">FixedImagePointType</a>;
<a name="l00112"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#e536dfcbca9c1204233eb3b9fffd1e70">00112</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">TransformType::OutputPointType</a>      <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">MovingImagePointType</a>;
<a name="l00113"></a>00113 
<a name="l00114"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#090cf14a008e78a4ef15eb7f50eed2cb">00114</a>   <span class="keyword">typedef</span> std::vector&lt;FixedImageIndexType&gt;             FixedImageIndexContainer;
<a name="l00115"></a>00115 
<a name="l00117"></a>00117   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1InterpolateImageFunction.html" title="Base class for all image interpolaters.">InterpolateImageFunction</a>&lt; MovingImageType, 
<a name="l00118"></a>00118                                     CoordinateRepresentationType &gt;
<a name="l00119"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#8fc51a537259ee4cf88a9bd76b20d998">00119</a>                                                      <a class="code" href="classitk_1_1InterpolateImageFunction.html" title="Base class for all image interpolaters.">InterpolatorType</a>;
<a name="l00120"></a>00120 
<a name="l00122"></a>00122   <span class="keyword">typedef</span> <span class="keyword">typename</span> NumericTraits&lt;MovingImagePixelType&gt;::RealType 
<a name="l00123"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#f52985fd7c8b415b40ffab12e4d4e473">00123</a>                                                      RealType;
<a name="l00124"></a>00124   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1CovariantVector.html" title="A templated class holding a n-Dimensional covariant vector.">CovariantVector</a>&lt;RealType,
<a name="l00125"></a>00125                           <a class="code" href="itkMacro_8h.html#94ef2dc11d52c8ef0a78e34558feb8cb">itkGetStaticConstMacro</a>(MovingImageDimension)&gt;
<a name="l00126"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#ca8ecf15e1f95daebb1a0e4bdd659492">00126</a>                                                      <a class="code" href="classitk_1_1CovariantVector.html" title="A templated class holding a n-Dimensional covariant vector.">GradientPixelType</a>;
<a name="l00127"></a>00127   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Image.html" title="Templated n-dimensional image class.">Image</a>&lt;<a class="code" href="classitk_1_1CovariantVector.html" title="A templated class holding a n-Dimensional covariant vector.">GradientPixelType</a>,
<a name="l00128"></a>00128                 <a class="code" href="itkMacro_8h.html#94ef2dc11d52c8ef0a78e34558feb8cb">itkGetStaticConstMacro</a>(MovingImageDimension)&gt; 
<a name="l00129"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#226c747960dbab8941bd06cbeab52f88">00129</a>                                                      <a class="code" href="classitk_1_1Image.html" title="Templated n-dimensional image class.">GradientImageType</a>;
<a name="l00130"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#4c91e4cda2d723edd14513c8d0ed1b7f">00130</a>   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1SmartPointer.html">SmartPointer&lt;GradientImageType&gt;</a>            <a class="code" href="classitk_1_1SmartPointer.html">GradientImagePointer</a>;
<a name="l00131"></a>00131   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1GradientRecursiveGaussianImageFilter.html" title="Computes the gradient of an image by convolution with the first derivative of a Gaussian...">GradientRecursiveGaussianImageFilter</a>&lt; MovingImageType,
<a name="l00132"></a>00132                                                 <a class="code" href="classitk_1_1Image.html" title="Templated n-dimensional image class.">GradientImageType</a> &gt;
<a name="l00133"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#b5adc391255e3d720d5e4cb4715d5eef">00133</a>                                                      <a class="code" href="classitk_1_1GradientRecursiveGaussianImageFilter.html" title="Computes the gradient of an image by convolution with the first derivative of a Gaussian...">GradientImageFilterType</a>;  
<a name="l00134"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#24645aef029b33f2b0a9a836f69960e9">00134</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1SmartPointer.html">GradientImageFilterType::Pointer</a>  <a class="code" href="classitk_1_1SmartPointer.html">GradientImageFilterPointer</a>;
<a name="l00136"></a>00136 
<a name="l00137"></a>00137 
<a name="l00138"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#20fe19108f391bae162921402328ca85">00138</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1SmartPointer.html">InterpolatorType::Pointer</a>         <a class="code" href="classitk_1_1SmartPointer.html">InterpolatorPointer</a>;
<a name="l00139"></a>00139 
<a name="l00140"></a>00140 
<a name="l00143"></a>00143   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1SpatialObject.html" title="Implementation of the composite pattern.">SpatialObject&lt; itkGetStaticConstMacro(FixedImageDimension) &gt;</a>
<a name="l00144"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#3cdf4d9723aafd3e222f44ed69a97f1d">00144</a>                                                      <a class="code" href="classitk_1_1SpatialObject.html" title="Implementation of the composite pattern.">FixedImageMaskType</a>;
<a name="l00145"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#f368014702c94bb0efcbed429fa8be4a">00145</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span>  <a class="code" href="classitk_1_1SmartPointer.html">FixedImageMaskType::Pointer</a>      <a class="code" href="classitk_1_1SmartPointer.html">FixedImageMaskPointer</a>;
<a name="l00146"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#f455f5274ff9515743bb5adcd805a407">00146</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span>  <a class="code" href="classitk_1_1SmartPointer.html">FixedImageMaskType::ConstPointer</a> <a class="code" href="classitk_1_1SmartPointer.html">FixedImageMaskConstPointer</a>;
<a name="l00147"></a>00147 
<a name="l00150"></a>00150   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1SpatialObject.html" title="Implementation of the composite pattern.">SpatialObject&lt; itkGetStaticConstMacro(MovingImageDimension) &gt;</a>
<a name="l00151"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#26b4a4c5cb913a8ed16da97fded40493">00151</a>                                                      <a class="code" href="classitk_1_1SpatialObject.html" title="Implementation of the composite pattern.">MovingImageMaskType</a>;
<a name="l00152"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#8fca7f4dafd9d27390a61c58f27aa684">00152</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span>  <a class="code" href="classitk_1_1SmartPointer.html">MovingImageMaskType::Pointer</a>     <a class="code" href="classitk_1_1SmartPointer.html">MovingImageMaskPointer</a>;
<a name="l00153"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#be4b8034fff45058426aa5036e44d90a">00153</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span>  <a class="code" href="classitk_1_1SmartPointer.html">MovingImageMaskType::ConstPointer</a>  <a class="code" href="classitk_1_1SmartPointer.html">MovingImageMaskConstPointer</a>;
<a name="l00154"></a>00154 
<a name="l00155"></a>00155 
<a name="l00157"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#72b63ae55461c7769902723e8c0cafaa">00157</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> Superclass::MeasureType                    MeasureType;
<a name="l00158"></a>00158 
<a name="l00160"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#f79b6618ae2129c0c45991a7ebc72e19">00160</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> Superclass::DerivativeType                 <a class="code" href="classitk_1_1Array.html">DerivativeType</a>;
<a name="l00161"></a>00161 
<a name="l00163"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#d7bc2e50df128d4d0326b420afb2aed1">00163</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> Superclass::ParametersType                 <a class="code" href="classitk_1_1Array.html" title="Array class with size defined at construction time.">ParametersType</a>;
<a name="l00164"></a>00164 
<a name="l00166"></a>00166   <a class="code" href="itkMacro_8h.html#1e680e0abf41fd9bbefa2829ea3d1e6a">itkSetConstObjectMacro</a>( FixedImage, FixedImageType );
<a name="l00167"></a>00167 
<a name="l00169"></a>00169   <a class="code" href="itkMacro_8h.html#d11f8adb47609be2b4b58948904f8a7c">itkGetConstObjectMacro</a>( FixedImage, FixedImageType );
<a name="l00170"></a>00170 
<a name="l00172"></a>00172   <a class="code" href="itkMacro_8h.html#1e680e0abf41fd9bbefa2829ea3d1e6a">itkSetConstObjectMacro</a>( MovingImage, MovingImageType );
<a name="l00173"></a>00173 
<a name="l00175"></a>00175   <a class="code" href="itkMacro_8h.html#d11f8adb47609be2b4b58948904f8a7c">itkGetConstObjectMacro</a>( MovingImage, MovingImageType );
<a name="l00176"></a>00176 
<a name="l00178"></a>00178   <a class="code" href="itkMacro_8h.html#b950b763422e5059348e6178e2a5f425">itkSetObjectMacro</a>( <a class="code" href="classitk_1_1Transform.html" title="Transform points and vector from an input space to an output space.">Transform</a>, <a class="code" href="classitk_1_1Transform.html" title="Transform points and vector from an input space to an output space.">TransformType</a> );
<a name="l00179"></a>00179 
<a name="l00181"></a>00181   <a class="code" href="itkMacro_8h.html#d11f8adb47609be2b4b58948904f8a7c">itkGetConstObjectMacro</a>( <a class="code" href="classitk_1_1Transform.html" title="Transform points and vector from an input space to an output space.">Transform</a>, <a class="code" href="classitk_1_1Transform.html" title="Transform points and vector from an input space to an output space.">TransformType</a> );
<a name="l00182"></a>00182 
<a name="l00184"></a>00184   <a class="code" href="itkMacro_8h.html#b950b763422e5059348e6178e2a5f425">itkSetObjectMacro</a>( Interpolator, <a class="code" href="classitk_1_1InterpolateImageFunction.html" title="Base class for all image interpolaters.">InterpolatorType</a> );
<a name="l00185"></a>00185 
<a name="l00187"></a>00187   <a class="code" href="itkMacro_8h.html#d11f8adb47609be2b4b58948904f8a7c">itkGetConstObjectMacro</a>( Interpolator, <a class="code" href="classitk_1_1InterpolateImageFunction.html" title="Base class for all image interpolaters.">InterpolatorType</a> );
<a name="l00188"></a>00188 
<a name="l00190"></a>00190   <a class="code" href="itkMacro_8h.html#7d989c13a1a213168db99ae0f84185d4">itkGetConstReferenceMacro</a>( NumberOfMovingImageSamples, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> );
<a name="l00191"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#1c2b501b5fc31c0fdd0c1786627c3109">00191</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> GetNumberOfPixelsCounter( <span class="keywordtype">void</span> )
<a name="l00192"></a>00192     {
<a name="l00193"></a>00193     <span class="keywordflow">return</span> GetNumberOfMovingImageSamples(); 
<a name="l00194"></a>00194     }
<a name="l00196"></a>00196 
<a name="l00198"></a>00198   <a class="code" href="itkMacro_8h.html#7ebdd33cc5e7d74720ced9099c034faa">itkSetMacro</a>( FixedImageRegion, FixedImageRegionType );
<a name="l00199"></a>00199 
<a name="l00201"></a>00201   <a class="code" href="itkMacro_8h.html#7d989c13a1a213168db99ae0f84185d4">itkGetConstReferenceMacro</a>( FixedImageRegion, FixedImageRegionType );
<a name="l00202"></a>00202 
<a name="l00204"></a>00204   <a class="code" href="itkMacro_8h.html#1e680e0abf41fd9bbefa2829ea3d1e6a">itkSetConstObjectMacro</a>( MovingImageMask, MovingImageMaskType );
<a name="l00205"></a>00205   <a class="code" href="itkMacro_8h.html#d11f8adb47609be2b4b58948904f8a7c">itkGetConstObjectMacro</a>( MovingImageMask, MovingImageMaskType );
<a name="l00207"></a>00207 
<a name="l00209"></a>00209   <a class="code" href="itkMacro_8h.html#1e680e0abf41fd9bbefa2829ea3d1e6a">itkSetConstObjectMacro</a>( FixedImageMask, FixedImageMaskType );
<a name="l00210"></a>00210   <a class="code" href="itkMacro_8h.html#d11f8adb47609be2b4b58948904f8a7c">itkGetConstObjectMacro</a>( FixedImageMask, FixedImageMaskType );
<a name="l00212"></a>00212 
<a name="l00215"></a>00215   <span class="keywordtype">void</span> SetFixedImageIndexes( <span class="keyword">const</span> FixedImageIndexContainer &amp; indexes );
<a name="l00216"></a>00216 
<a name="l00218"></a>00218   <a class="code" href="itkMacro_8h.html#7ebdd33cc5e7d74720ced9099c034faa">itkSetMacro</a>( NumberOfThreads, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> );
<a name="l00219"></a>00219   <a class="code" href="itkMacro_8h.html#7d989c13a1a213168db99ae0f84185d4">itkGetConstReferenceMacro</a>( NumberOfThreads, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> );
<a name="l00221"></a>00221 
<a name="l00223"></a>00223   <a class="code" href="itkMacro_8h.html#7ebdd33cc5e7d74720ced9099c034faa">itkSetMacro</a>( ComputeGradient, <span class="keywordtype">bool</span> );
<a name="l00224"></a>00224   <a class="code" href="itkMacro_8h.html#7d989c13a1a213168db99ae0f84185d4">itkGetConstReferenceMacro</a>( ComputeGradient, <span class="keywordtype">bool</span> );
<a name="l00225"></a>00225   <a class="code" href="itkMacro_8h.html#9e7d129ffebb09fd28bc213e02d87248">itkBooleanMacro</a>(ComputeGradient );
<a name="l00227"></a>00227 
<a name="l00229"></a>00229   <span class="keyword">virtual</span> <span class="keywordtype">void</span> ComputeGradient( <span class="keywordtype">void</span> );
<a name="l00230"></a>00230 
<a name="l00232"></a>00232   <a class="code" href="itkMacro_8h.html#d11f8adb47609be2b4b58948904f8a7c">itkGetConstObjectMacro</a>( GradientImage, GradientImageType );
<a name="l00233"></a>00233 
<a name="l00235"></a>00235   <span class="keywordtype">void</span> SetTransformParameters( <span class="keyword">const</span> ParametersType &amp; parameters ) <span class="keyword">const</span>;
<a name="l00236"></a>00236 
<a name="l00238"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#812ef08a2b89fed11f53fb263c23bbd0">00238</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> GetNumberOfParameters( <span class="keywordtype">void</span> )<span class="keyword"> const </span>
<a name="l00239"></a>00239 <span class="keyword">    </span>{
<a name="l00240"></a>00240     <span class="keywordflow">return</span> m_Transform-&gt;GetNumberOfParameters(); 
<a name="l00241"></a>00241     }
<a name="l00242"></a>00242 
<a name="l00245"></a>00245   <span class="keyword">virtual</span> <span class="keywordtype">void</span> Initialize( <span class="keywordtype">void</span> ) throw ( ExceptionObject );
<a name="l00246"></a>00246 
<a name="l00248"></a>00248   virtual <span class="keywordtype">void</span> MultiThreadingInitialize( <span class="keywordtype">void</span> ) throw ( ExceptionObject );
<a name="l00249"></a>00249 
<a name="l00251"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#0891350563d616befbbfca0170407aff">00251</a>   virtual <span class="keywordtype">void</span> SetNumberOfFixedImageSamples( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> numSamples )
<a name="l00252"></a>00252     {
<a name="l00253"></a>00253     <span class="comment">// This is not a macro because we need to also set m_UseAllPixels</span>
<a name="l00254"></a>00254     <a class="code" href="itkMacro_8h.html#8d62178b29e22f1b0a10e0283f5939f2">itkDebugMacro</a>(<span class="stringliteral">"Setting NumberOfFixedImageSamples to "</span> &lt;&lt; numSamples ); 
<a name="l00255"></a>00255     <span class="keywordflow">if</span> (this-&gt;m_NumberOfFixedImageSamples != numSamples)
<a name="l00256"></a>00256       {
<a name="l00257"></a>00257       <span class="keywordflow">if</span>( this-&gt;m_NumberOfFixedImageSamples == 0 )
<a name="l00258"></a>00258         {
<a name="l00259"></a>00259         <span class="comment">// make sure that there is at least one sample</span>
<a name="l00260"></a>00260         this-&gt;m_NumberOfFixedImageSamples = 1;
<a name="l00261"></a>00261         }
<a name="l00262"></a>00262       this-&gt;m_UseAllPixels = <span class="keyword">false</span>;
<a name="l00263"></a>00263       this-&gt;m_NumberOfFixedImageSamples = numSamples;
<a name="l00264"></a>00264       this-&gt;Modified();
<a name="l00265"></a>00265       } 
<a name="l00266"></a>00266     } 
<a name="l00268"></a>00268 
<a name="l00269"></a>00269   <a class="code" href="itkMacro_8h.html#7d989c13a1a213168db99ae0f84185d4">itkGetConstReferenceMacro</a>( NumberOfFixedImageSamples, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> ); 
<a name="l00270"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#1514307b84c3889510c5be365e52a87c">00270</a>   <span class="keywordtype">void</span> SetNumberOfSpatialSamples( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> num )
<a name="l00271"></a>00271     {
<a name="l00272"></a>00272     this-&gt;SetNumberOfFixedImageSamples( num ); 
<a name="l00273"></a>00273     }
<a name="l00274"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#ba31e7d2340065458f3e96baf7c2bfb9">00274</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> GetNumberOfSpatialSamples( <span class="keywordtype">void</span> )
<a name="l00275"></a>00275     {
<a name="l00276"></a>00276     <span class="keywordflow">return</span> this-&gt;GetNumberOfFixedImageSamples(); 
<a name="l00277"></a>00277     }
<a name="l00278"></a>00278 
<a name="l00281"></a>00281   <span class="keywordtype">void</span> SetFixedImageSamplesIntensityThreshold( <span class="keyword">const</span> FixedImagePixelType &amp; thresh );
<a name="l00282"></a>00282   <a class="code" href="itkMacro_8h.html#7d989c13a1a213168db99ae0f84185d4">itkGetConstReferenceMacro</a>( FixedImageSamplesIntensityThreshold, FixedImagePixelType );
<a name="l00283"></a>00283   <a class="code" href="itkMacro_8h.html#7ebdd33cc5e7d74720ced9099c034faa">itkSetMacro</a>( UseFixedImageSamplesIntensityThreshold, <span class="keywordtype">bool</span> );
<a name="l00284"></a>00284   <a class="code" href="itkMacro_8h.html#7d989c13a1a213168db99ae0f84185d4">itkGetConstReferenceMacro</a>( UseFixedImageSamplesIntensityThreshold, <span class="keywordtype">bool</span> );
<a name="l00286"></a>00286 
<a name="l00289"></a>00289   <a class="code" href="itkMacro_8h.html#7ebdd33cc5e7d74720ced9099c034faa">itkSetMacro</a>( UseAllPixels, <span class="keywordtype">bool</span> );
<a name="l00290"></a>00290   <a class="code" href="itkMacro_8h.html#7d989c13a1a213168db99ae0f84185d4">itkGetConstReferenceMacro</a>( UseAllPixels, <span class="keywordtype">bool</span> );
<a name="l00291"></a>00291   <a class="code" href="itkMacro_8h.html#9e7d129ffebb09fd28bc213e02d87248">itkBooleanMacro</a>( UseAllPixels );
<a name="l00293"></a>00293 
<a name="l00295"></a>00295   <a class="code" href="itkMacro_8h.html#7d989c13a1a213168db99ae0f84185d4">itkGetConstReferenceMacro</a>( NumberOfPixelsCounted, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> );
<a name="l00296"></a>00296 
<a name="l00306"></a>00306   <span class="keywordtype">void</span> ReinitializeSeed();
<a name="l00307"></a>00307   <span class="keywordtype">void</span> ReinitializeSeed( <span class="keywordtype">int</span> seed );  
<a name="l00309"></a>00309 
<a name="l00326"></a>00326   <a class="code" href="itkMacro_8h.html#7ebdd33cc5e7d74720ced9099c034faa">itkSetMacro</a>(UseCachingOfBSplineWeights,<span class="keywordtype">bool</span>);
<a name="l00327"></a>00327   <a class="code" href="itkMacro_8h.html#7d989c13a1a213168db99ae0f84185d4">itkGetConstReferenceMacro</a>(UseCachingOfBSplineWeights,<span class="keywordtype">bool</span>);
<a name="l00328"></a>00328   <a class="code" href="itkMacro_8h.html#9e7d129ffebb09fd28bc213e02d87248">itkBooleanMacro</a>(UseCachingOfBSplineWeights);
<a name="l00330"></a>00330 
<a name="l00331"></a>00331 <span class="keyword">protected</span>:
<a name="l00332"></a>00332   <a class="code" href="classitk_1_1ImageToImageMetric.html" title="Computes similarity between regions of two images.">ImageToImageMetric</a>();
<a name="l00333"></a>00333   <span class="keyword">virtual</span> ~<a class="code" href="classitk_1_1ImageToImageMetric.html" title="Computes similarity between regions of two images.">ImageToImageMetric</a>();
<a name="l00334"></a>00334 
<a name="l00335"></a>00335   <span class="keywordtype">void</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#920ae03048a5ad715d803ca2e92b52de">PrintSelf</a>(std::ostream&amp; os, <a class="code" href="classitk_1_1Indent.html" title="Control indentation during Print() invocation.">Indent</a> indent) <span class="keyword">const</span>;
<a name="l00336"></a>00336 
<a name="l00337"></a>00337   <span class="keyword">mutable</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>       m_NumberOfPixelsCounted;
<a name="l00338"></a>00338 
<a name="l00342"></a>00342 
<a name="l00343"></a>00343   <span class="keyword">class </span><a class="code" href="classFixedImageSamplePoint.html">FixedImageSamplePoint</a>
<a name="l00344"></a>00344     {
<a name="l00345"></a>00345     <span class="keyword">public</span>:
<a name="l00346"></a>00346     <a class="code" href="classFixedImageSamplePoint.html">FixedImageSamplePoint</a>()
<a name="l00347"></a>00347       { 
<a name="l00348"></a>00348       point.Fill(0.0);
<a name="l00349"></a>00349       value = 0;
<a name="l00350"></a>00350       valueIndex = 0;
<a name="l00351"></a>00351       }
<a name="l00352"></a>00352     ~<a class="code" href="classFixedImageSamplePoint.html">FixedImageSamplePoint</a>() {};
<a name="l00353"></a>00353   
<a name="l00354"></a>00354     <span class="keyword">public</span>:
<a name="l00355"></a>00355       FixedImagePointType           point;
<a name="l00356"></a>00356       <span class="keywordtype">double</span>                        value;
<a name="l00357"></a>00357       <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>                  valueIndex;
<a name="l00358"></a>00358     };
<a name="l00360"></a>00360   
<a name="l00361"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#87a3f062133e5b74c6b8b263ef7cb193">00361</a>   <span class="keywordtype">bool</span>                      m_UseFixedImageIndexes;
<a name="l00362"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#883a471a318a900122f7e79e8dcbfa4f">00362</a>   FixedImageIndexContainer  m_FixedImageIndexes;
<a name="l00363"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#7a61ac6327bbff703683e56854326b8d">00363</a>   FixedImagePixelType       m_FixedImageSamplesIntensityThreshold;
<a name="l00364"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#c15ba4458e51d626dfd96f0f94190c6c">00364</a>   <span class="keywordtype">bool</span>                      m_UseFixedImageSamplesIntensityThreshold;
<a name="l00365"></a>00365 
<a name="l00367"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#56c6ea9be8711213ffb378eec1bf648e">00367</a>   <span class="keyword">typedef</span> std::vector&lt;FixedImageSamplePoint&gt; FixedImageSampleContainer;
<a name="l00368"></a>00368 
<a name="l00370"></a>00370   <span class="keyword">virtual</span> <span class="keywordtype">void</span> SampleFixedImageDomain( FixedImageSampleContainer &amp; samples) <span class="keyword">const</span>;
<a name="l00371"></a>00371 
<a name="l00372"></a>00372   <span class="keyword">virtual</span> <span class="keywordtype">void</span> SampleFixedImageIndexes( FixedImageSampleContainer &amp; 
<a name="l00373"></a>00373                                            samples);
<a name="l00374"></a>00374 
<a name="l00376"></a>00376   <span class="keyword">virtual</span> <span class="keywordtype">void</span> SampleFullFixedImageDomain( FixedImageSampleContainer &amp; 
<a name="l00377"></a>00377                                            samples);
<a name="l00378"></a>00378 
<a name="l00380"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#50e1fd68a50f6ff3467f32b73545fcfc">00380</a>   FixedImageSampleContainer   m_FixedImageSamples;
<a name="l00381"></a>00381 
<a name="l00382"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#2f26a7b575052500dcd1aeeb92d37a60">00382</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>               m_NumberOfParameters;
<a name="l00383"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#0d6d2d5ea3636a87ca362019c3df5da0">00383</a>   <span class="keyword">mutable</span> <a class="code" href="classitk_1_1Array.html" title="Array class with size defined at construction time.">ParametersType</a>      m_Parameters;
<a name="l00384"></a>00384 
<a name="l00385"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#20f19efc39f81b3f97c063c1ed512482">00385</a>   <span class="keyword">mutable</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>       m_NumberOfFixedImageSamples;
<a name="l00386"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#3352eefe6abca66d59f62971472c8f93">00386</a>   <span class="keyword">mutable</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>       m_NumberOfMovingImageSamples;
<a name="l00387"></a>00387 
<a name="l00388"></a>00388   FixedImageConstPointer      m_FixedImage;
<a name="l00389"></a>00389   MovingImageConstPointer     m_MovingImage;
<a name="l00390"></a>00390 
<a name="l00392"></a>00392   <a class="code" href="classitk_1_1SmartPointer.html">TransformPointer</a>            m_Transform;
<a name="l00393"></a>00393 
<a name="l00396"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#576d86ee5350c8ce81230f994984857d">00396</a>   <a class="code" href="classitk_1_1SmartPointer.html">TransformPointer</a>          * m_ThreaderTransform; 
<a name="l00397"></a>00397 
<a name="l00398"></a>00398   <a class="code" href="classitk_1_1SmartPointer.html">InterpolatorPointer</a>         m_Interpolator;
<a name="l00399"></a>00399 
<a name="l00400"></a>00400   <span class="keywordtype">bool</span>                        m_ComputeGradient;
<a name="l00401"></a>00401   <a class="code" href="classitk_1_1SmartPointer.html">GradientImagePointer</a>        m_GradientImage;
<a name="l00402"></a>00402 
<a name="l00403"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#29654869847ea33d3a303f89452aebcb">00403</a>   <a class="code" href="classitk_1_1SmartPointer.html">FixedImageMaskConstPointer</a>       m_FixedImageMask;
<a name="l00404"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#3e6b8c59d5cfab57d6165efa56034e73">00404</a>   <a class="code" href="classitk_1_1SmartPointer.html">MovingImageMaskConstPointer</a>      m_MovingImageMask;
<a name="l00405"></a>00405 
<a name="l00406"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#6d2e53bf576cb7af1e66d7325ee5d5ae">00406</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>                m_NumberOfThreads;
<a name="l00407"></a>00407 
<a name="l00408"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#fca86af57e2784d7f77a4bdf324d71df">00408</a>   <span class="keywordtype">bool</span>                        m_UseAllPixels;
<a name="l00409"></a>00409 
<a name="l00410"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#29377ba82fe1b470da5ae64491011c50">00410</a>   <span class="keywordtype">bool</span>                        m_ReseedIterator;
<a name="l00411"></a>00411 
<a name="l00412"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#685e28deacdcbc91c6bb67257e9ac1c9">00412</a>   <span class="keywordtype">int</span>                         m_RandomSeed;
<a name="l00413"></a>00413 
<a name="l00421"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#fa0d1cf070a36cc6a54a35da9c1a15eb">00421</a>   <span class="keywordtype">bool</span>                        m_TransformIsBSpline;
<a name="l00422"></a>00422 
<a name="l00425"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#68e26c1c71fa3d33c01abcacae1fa196">00425</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>               m_NumBSplineWeights;
<a name="l00426"></a>00426 
<a name="l00427"></a>00427   <a class="code" href="itkMacro_8h.html#1905cf6b2e88235996fa7ff73b2fb0eb">itkStaticConstMacro</a>(DeformationSplineOrder, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>, 3 );
<a name="l00428"></a>00428 
<a name="l00429"></a>00429   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1BSplineDeformableTransform.html" title="Deformable transform using a BSpline representation.">BSplineDeformableTransform</a>&lt; CoordinateRepresentationType,<a class="code" href="structitk_1_1GetImageDimension.html"></a>
<a name="l00430"></a>00430 <a class="code" href="structitk_1_1GetImageDimension.html">                      ::itk::GetImageDimension&lt;FixedImageType&gt;::ImageDimension</a>,
<a name="l00431"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#038c8f6b9b60f3193d07e579401f6ebc">00431</a>                                       <a class="code" href="itkMacro_8h.html#94ef2dc11d52c8ef0a78e34558feb8cb">itkGetStaticConstMacro</a>(DeformationSplineOrder) &gt;             <a class="code" href="classitk_1_1BSplineDeformableTransform.html" title="Deformable transform using a BSpline representation.">BSplineTransformType</a>;
<a name="l00432"></a>00432 
<a name="l00433"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#d5edf3d443bc830698b2967a924225d1">00433</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1Array.html">BSplineTransformType::WeightsType</a>       <a class="code" href="classitk_1_1Array.html">BSplineTransformWeightsType</a>;
<a name="l00434"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#9a0550083955c6e374003e6d0f504f44">00434</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> BSplineTransformWeightsType::ValueType  WeightsValueType;
<a name="l00435"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#39243161e83a0e7f0e735f77bff9195d">00435</a>   <span class="keyword">typedef</span>          <a class="code" href="classitk_1_1Array2D.html">Array2D&lt;WeightsValueType&gt;</a>               <a class="code" href="classitk_1_1Array2D.html">BSplineTransformWeightsArrayType</a>;
<a name="l00436"></a>00436 
<a name="l00437"></a>00437   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1Array.html">BSplineTransformType::ParameterIndexArrayType</a> 
<a name="l00438"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#62e69c29f576ad330523c191168afc5a">00438</a>                                                               <a class="code" href="classitk_1_1Array.html">BSplineTransformIndexArrayType</a>;
<a name="l00439"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#231965ac71660fa3d894ac48cd728542">00439</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> BSplineTransformIndexArrayType::ValueType  IndexValueType;
<a name="l00440"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#0c812a3fea7814aee992a6fc49a7b968">00440</a>   <span class="keyword">typedef</span>          <a class="code" href="classitk_1_1Array2D.html">Array2D&lt;IndexValueType&gt;</a>                    <a class="code" href="classitk_1_1Array2D.html">BSplineTransformIndicesArrayType</a>;
<a name="l00441"></a>00441 
<a name="l00442"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#43a6b6d09816658fc82cb9f18175552d">00442</a>   <span class="keyword">typedef</span>          std::vector&lt;MovingImagePointType&gt;          MovingImagePointArrayType;
<a name="l00443"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#5808b1983f1927f1e101b47982a852a5">00443</a>   <span class="keyword">typedef</span>          std::vector&lt;bool&gt;                          BooleanArrayType;
<a name="l00444"></a>00444   <span class="keyword">typedef</span>          <a class="code" href="classitk_1_1FixedArray.html" title="Simulate a standard C array with copy semnatics.">FixedArray</a>&lt; <span class="keywordtype">unsigned</span> long,<a class="code" href="structitk_1_1GetImageDimension.html"> </a>
<a name="l00445"></a>00445 <a class="code" href="structitk_1_1GetImageDimension.html">                               ::itk::GetImageDimension&lt;FixedImageType&gt;</a>
<a name="l00446"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#9c6f5ca2e705ef601541bcd64704e72a">00446</a>                                 ::ImageDimension &gt;            <a class="code" href="classitk_1_1FixedArray.html">BSplineParametersOffsetType</a>;
<a name="l00452"></a>00452   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1BSplineInterpolateImageFunction.html" title="Evaluates the B-Spline interpolation of an image. Spline order may be from 0 to 5...">BSplineInterpolateImageFunction</a>&lt;MovingImageType,
<a name="l00453"></a>00453                                              CoordinateRepresentationType&gt; 
<a name="l00454"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#22a6c69dc39ab633ae9d3070b64436c2">00454</a>                                                        <a class="code" href="classitk_1_1BSplineInterpolateImageFunction.html" title="Evaluates the B-Spline interpolation of an image. Spline order may be from 0 to 5...">BSplineInterpolatorType</a>;
<a name="l00455"></a>00455 
<a name="l00457"></a>00457   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1CentralDifferenceImageFunction.html" title="Calculate the derivative by central differencing.">CentralDifferenceImageFunction</a>&lt;MovingImageType,
<a name="l00458"></a>00458                                          CoordinateRepresentationType&gt; 
<a name="l00459"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#43a77f390a275d07f15fd4c3714d8bf1">00459</a>                                                        <a class="code" href="classitk_1_1CentralDifferenceImageFunction.html" title="Calculate the derivative by central differencing.">DerivativeFunctionType</a>;
<a name="l00460"></a>00460   <span class="keyword">typedef</span>          <a class="code" href="classitk_1_1CovariantVector.html" title="A templated class holding a n-Dimensional covariant vector.">CovariantVector</a>&lt; double,
<a name="l00461"></a>00461                            <a class="code" href="itkMacro_8h.html#94ef2dc11d52c8ef0a78e34558feb8cb">itkGetStaticConstMacro</a>(MovingImageDimension) &gt;
<a name="l00462"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#32fdcc3e4ce262935b7baa5d2e851db5">00462</a>                                                           <a class="code" href="classitk_1_1CovariantVector.html" title="A templated class holding a n-Dimensional covariant vector.">ImageDerivativesType</a>;
<a name="l00463"></a>00463 
<a name="l00464"></a>00464 
<a name="l00465"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#66f99692318bb213e89d3dee1e92e300">00465</a>   <span class="keyword">typename</span> <a class="code" href="classitk_1_1SmartPointer.html">BSplineTransformType::Pointer</a>   m_BSplineTransform;
<a name="l00466"></a>00466 
<a name="l00467"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#21a51fcf795f3ea878a44e5d1c257fc6">00467</a>   <a class="code" href="classitk_1_1Array2D.html">BSplineTransformWeightsArrayType</a>         m_BSplineTransformWeightsArray;
<a name="l00468"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#e12a90f093ab07d1984be4b2945223bf">00468</a>   <a class="code" href="classitk_1_1Array2D.html">BSplineTransformIndicesArrayType</a>         m_BSplineTransformIndicesArray;
<a name="l00469"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#ae0fb7f2599d977eab70f1c49b91d112">00469</a>   MovingImagePointArrayType                m_BSplinePreTransformPointsArray;
<a name="l00470"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#4f31a905d418cd11317dbe0b494d59b9">00470</a>   BooleanArrayType                         m_WithinBSplineSupportRegionArray;
<a name="l00471"></a>00471   
<a name="l00472"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#9b38350d3b65f0f395f181d420fa1974">00472</a>   <a class="code" href="classitk_1_1FixedArray.html">BSplineParametersOffsetType</a>              m_BSplineParametersOffset;
<a name="l00473"></a>00473 
<a name="l00474"></a>00474   <span class="comment">// Variables needed for optionally caching values when using a BSpline transform.</span>
<a name="l00475"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#78c4e42322b7d53d42a72a1e2282b537">00475</a>   <span class="keywordtype">bool</span>                                    m_UseCachingOfBSplineWeights;
<a name="l00476"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#d6de69802887c5eeb3e74d828cc07ae1">00476</a>   <span class="keyword">mutable</span> <a class="code" href="classitk_1_1Array.html">BSplineTransformWeightsType</a>     m_BSplineTransformWeights;
<a name="l00477"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#b0830eaafbae699b761aa5075be41175">00477</a>   <span class="keyword">mutable</span> <a class="code" href="classitk_1_1Array.html">BSplineTransformIndexArrayType</a>  m_BSplineTransformIndices;
<a name="l00478"></a>00478 
<a name="l00479"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#4d5818aa8c4caa88c3ba93674835379a">00479</a>   <span class="keyword">mutable</span> <a class="code" href="classitk_1_1Array.html">BSplineTransformWeightsType</a>     * m_ThreaderBSplineTransformWeights;
<a name="l00480"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#bc83a78f292dd3efac9f516df875cc83">00480</a>   <span class="keyword">mutable</span> <a class="code" href="classitk_1_1Array.html">BSplineTransformIndexArrayType</a>  * m_ThreaderBSplineTransformIndices;
<a name="l00481"></a>00481 
<a name="l00482"></a>00482   <span class="keyword">virtual</span> <span class="keywordtype">void</span> PreComputeTransformValues( <span class="keywordtype">void</span> );
<a name="l00483"></a>00483 
<a name="l00486"></a>00486   <span class="keyword">virtual</span> <span class="keywordtype">void</span> TransformPoint( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleNumber,
<a name="l00487"></a>00487                                <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">MovingImagePointType</a>&amp; mappedPoint,
<a name="l00488"></a>00488                                <span class="keywordtype">bool</span>&amp; sampleWithinSupportRegion,
<a name="l00489"></a>00489                                <span class="keywordtype">double</span>&amp; movingImageValue,
<a name="l00490"></a>00490                                <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> threadID ) <span class="keyword">const</span>;
<a name="l00491"></a>00491 
<a name="l00492"></a>00492   <span class="keyword">virtual</span> <span class="keywordtype">void</span> TransformPointWithDerivatives( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleNumber,
<a name="l00493"></a>00493                                <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">MovingImagePointType</a>&amp; mappedPoint,
<a name="l00494"></a>00494                                <span class="keywordtype">bool</span>&amp; sampleWithinSupportRegion,
<a name="l00495"></a>00495                                <span class="keywordtype">double</span>&amp; movingImageValue,
<a name="l00496"></a>00496                                <a class="code" href="classitk_1_1CovariantVector.html" title="A templated class holding a n-Dimensional covariant vector.">ImageDerivativesType</a> &amp; gradient,
<a name="l00497"></a>00497                                <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> threadID ) <span class="keyword">const</span>;
<a name="l00498"></a>00498 
<a name="l00500"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#6ecac76b498113f87bc4358dc49b821d">00500</a>   <span class="keywordtype">bool</span>                                                 m_InterpolatorIsBSpline;
<a name="l00501"></a>00501 
<a name="l00503"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#eb50a809e61a868881877a4c74dd40e9">00503</a>   <span class="keyword">typename</span> <a class="code" href="classitk_1_1SmartPointer.html">BSplineInterpolatorType::Pointer</a>            m_BSplineInterpolator;
<a name="l00504"></a>00504 
<a name="l00506"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#843cb88b89c84f4a5d0bd58fe44a716c">00506</a>   <span class="keyword">typename</span> <a class="code" href="classitk_1_1SmartPointer.html">DerivativeFunctionType::Pointer</a>             m_DerivativeCalculator;
<a name="l00507"></a>00507 
<a name="l00509"></a>00509   <span class="keyword">virtual</span> <span class="keywordtype">void</span> ComputeImageDerivatives( 
<a name="l00510"></a>00510                                       <span class="keyword">const</span> <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">MovingImagePointType</a> &amp; mappedPoint,
<a name="l00511"></a>00511                                       <a class="code" href="classitk_1_1CovariantVector.html" title="A templated class holding a n-Dimensional covariant vector.">ImageDerivativesType</a> &amp; gradient,
<a name="l00512"></a>00512                                       <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> threadID ) <span class="keyword">const</span>;
<a name="l00513"></a>00513 
<a name="l00514"></a>00514 
<a name="l00519"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#da95828fefc574dd2fdaa9d6e8737887">00519</a>   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1MultiThreader.html" title="A class for performing multithreaded execution.">MultiThreader</a>               <a class="code" href="classitk_1_1MultiThreader.html" title="A class for performing multithreaded execution.">MultiThreaderType</a>;
<a name="l00520"></a>00520 
<a name="l00521"></a><a class="code" href="structitk_1_1ImageToImageMetric_1_1MultiThreaderParameterType.html">00521</a>   <span class="keyword">struct </span><a class="code" href="structitk_1_1ImageToImageMetric_1_1MultiThreaderParameterType.html">MultiThreaderParameterType</a>
<a name="l00522"></a>00522     {
<a name="l00523"></a><a class="code" href="structitk_1_1ImageToImageMetric_1_1MultiThreaderParameterType.html#95e9828dacf0d2f9260f0ef0b6f10864">00523</a>     <a class="code" href="classitk_1_1ImageToImageMetric.html" title="Computes similarity between regions of two images.">ImageToImageMetric</a>                   * metric;
<a name="l00524"></a>00524     };
<a name="l00525"></a>00525 
<a name="l00526"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#9ef98ba66c16a4de8c277725c19a527c">00526</a>   <a class="code" href="classitk_1_1SmartPointer.html">MultiThreaderType::Pointer</a>               m_Threader;
<a name="l00527"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#9f2035b6868efb94c930f9001bcfba84">00527</a>   MultiThreaderParameterType               m_ThreaderParameter;
<a name="l00528"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#a4f5346313c8bda5d08314fa7cb64029">00528</a>   <span class="keyword">mutable</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>                     m_ThreaderChunkSize;
<a name="l00529"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#31023ddd87670bd4a908fd670f719fdb">00529</a>   <span class="keyword">mutable</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>                     m_ThreaderSizeOfLastChunk;
<a name="l00530"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#93fe66361ec16e5068e06ccb53e32979">00530</a>   <span class="keyword">mutable</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>                   * m_ThreaderNumberOfMovingImageSamples;
<a name="l00531"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#90e40cb1e9c51e7c390f017dba8b5fa8">00531</a>   <span class="keywordtype">bool</span>                                     m_WithinThreadPreProcess;
<a name="l00532"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#e8f77f488213bfcab295537762e7dcbf">00532</a>   <span class="keywordtype">bool</span>                                     m_WithinThreadPostProcess;
<a name="l00533"></a>00533 
<a name="l00534"></a>00534   <span class="keywordtype">void</span>                           GetValueMultiThreadedPreProcessInitiate( 
<a name="l00535"></a>00535                                                                    <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
<a name="l00536"></a>00536   <span class="keywordtype">void</span>                           GetValueMultiThreadedInitiate( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
<a name="l00537"></a>00537   <span class="keywordtype">void</span>                           GetValueMultiThreadedPostProcessInitiate( 
<a name="l00538"></a>00538                                                                    <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
<a name="l00539"></a>00539   <span class="keyword">static</span> <a class="code" href="itkMultiThreader_8h.html#684fadc751bc200a9b267bfc38d8ae5c">ITK_THREAD_RETURN_TYPE</a>  GetValueMultiThreadedPreProcess( <span class="keywordtype">void</span> * arg );
<a name="l00540"></a>00540   <span class="keyword">static</span> <a class="code" href="itkMultiThreader_8h.html#684fadc751bc200a9b267bfc38d8ae5c">ITK_THREAD_RETURN_TYPE</a>  GetValueMultiThreaded( <span class="keywordtype">void</span> * arg );
<a name="l00541"></a>00541   <span class="keyword">static</span> <a class="code" href="itkMultiThreader_8h.html#684fadc751bc200a9b267bfc38d8ae5c">ITK_THREAD_RETURN_TYPE</a>  GetValueMultiThreadedPostProcess( <span class="keywordtype">void</span> * arg );
<a name="l00542"></a>00542 
<a name="l00543"></a>00543   <span class="keywordtype">void</span>                      GetValueThread( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> threadID ) <span class="keyword">const</span>;
<a name="l00544"></a>00544   <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span>       GetValueThreadPreProcess( 
<a name="l00545"></a>00545                                        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> threadID,
<a name="l00546"></a>00546                                        <span class="keywordtype">bool</span> withinSampleThread ) <span class="keyword">const</span>;
<a name="l00547"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#3a833bfe06f8f3053057ac370aa3caea">00547</a>   <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span>       GetValueThreadProcessSample( 
<a name="l00548"></a>00548     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="itkMacro_8h.html#6be3b439282da7a34278c0594589b972">itkNotUsed</a>(threadID),
<a name="l00549"></a>00549     <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="itkMacro_8h.html#6be3b439282da7a34278c0594589b972">itkNotUsed</a>(fixedImageSample),
<a name="l00550"></a>00550     <span class="keyword">const</span> <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">MovingImagePointType</a> &amp; <a class="code" href="itkMacro_8h.html#6be3b439282da7a34278c0594589b972">itkNotUsed</a>(mappedPoint),
<a name="l00551"></a>00551     <span class="keywordtype">double</span> <a class="code" href="itkMacro_8h.html#6be3b439282da7a34278c0594589b972">itkNotUsed</a>(movingImageValue))<span class="keyword"> const </span>
<a name="l00552"></a>00552 <span class="keyword">    </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; };
<a name="l00553"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#a4674a99b235a55fa4cfd30cfac85907">00553</a>   <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span>       GetValueThreadPostProcess( 
<a name="l00554"></a>00554     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="itkMacro_8h.html#6be3b439282da7a34278c0594589b972">itkNotUsed</a>(threadID),
<a name="l00555"></a>00555     <span class="keywordtype">bool</span> <a class="code" href="itkMacro_8h.html#6be3b439282da7a34278c0594589b972">itkNotUsed</a>(withinSampleThread) )<span class="keyword"> const </span>{};
<a name="l00556"></a>00556       
<a name="l00557"></a>00557 
<a name="l00558"></a>00558   <span class="comment">/*</span>
<a name="l00559"></a>00559 <span class="comment">  void                          InitiateGetDerivativeMultiThreaded( void) const;</span>
<a name="l00560"></a>00560 <span class="comment">  static ITK_THREAD_RETURN_TYPE GetDerivativeMultiThreaded( void * arg );</span>
<a name="l00561"></a>00561 <span class="comment">  void                       GetDerivativeThread( unsigned int threadID ) const;</span>
<a name="l00562"></a>00562 <span class="comment">  virtual inline void   GetDerivativeThreadProcessSample( unsigned int threadID,</span>
<a name="l00563"></a>00563 <span class="comment">                                             unsigned long fixedImageSample,</span>
<a name="l00564"></a>00564 <span class="comment">                                             MovingImagePointType mappedPoint,</span>
<a name="l00565"></a>00565 <span class="comment">                                             double movingImageValue) const = 0;</span>
<a name="l00566"></a>00566 <span class="comment">  */</span>
<a name="l00567"></a>00567 
<a name="l00568"></a>00568   <span class="keywordtype">void</span>                GetValueAndDerivativeMultiThreadedPreProcessInitiate( 
<a name="l00569"></a>00569                                                                     <span class="keywordtype">void</span>) <span class="keyword">const</span>;
<a name="l00570"></a>00570   <span class="keywordtype">void</span>                GetValueAndDerivativeMultiThreadedInitiate( <span class="keywordtype">void</span>) <span class="keyword">const</span>;
<a name="l00571"></a>00571   <span class="keywordtype">void</span>                GetValueAndDerivativeMultiThreadedPostProcessInitiate( 
<a name="l00572"></a>00572                                                                     <span class="keywordtype">void</span>) <span class="keyword">const</span>;
<a name="l00573"></a>00573   <span class="keyword">static</span> <a class="code" href="itkMultiThreader_8h.html#684fadc751bc200a9b267bfc38d8ae5c">ITK_THREAD_RETURN_TYPE</a> 
<a name="l00574"></a>00574                       GetValueAndDerivativeMultiThreadedPreProcess(<span class="keywordtype">void</span> * arg);
<a name="l00575"></a>00575 
<a name="l00576"></a>00576   <span class="keyword">static</span> <a class="code" href="itkMultiThreader_8h.html#684fadc751bc200a9b267bfc38d8ae5c">ITK_THREAD_RETURN_TYPE</a> 
<a name="l00577"></a>00577   GetValueAndDerivativeMultiThreaded(<span class="keywordtype">void</span> * arg);
<a name="l00578"></a>00578 
<a name="l00579"></a>00579   <span class="keyword">static</span> <a class="code" href="itkMultiThreader_8h.html#684fadc751bc200a9b267bfc38d8ae5c">ITK_THREAD_RETURN_TYPE</a> 
<a name="l00580"></a>00580                       GetValueAndDerivativeMultiThreadedPostProcess(<span class="keywordtype">void</span> * arg);
<a name="l00581"></a>00581 
<a name="l00582"></a>00582   <span class="keywordtype">void</span>                 GetValueAndDerivativeThread(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> threadID) <span class="keyword">const</span>;
<a name="l00583"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#21b4979d05ae2e61e08bb0a0068007ed">00583</a>   <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span>  GetValueAndDerivativeThreadPreProcess( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="itkMacro_8h.html#6be3b439282da7a34278c0594589b972">itkNotUsed</a>(threadID),
<a name="l00584"></a>00584     <span class="keywordtype">bool</span> <a class="code" href="itkMacro_8h.html#6be3b439282da7a34278c0594589b972">itkNotUsed</a>(withinSampleThread))<span class="keyword"> const </span>{};
<a name="l00585"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#31c4e9f7bc3ed04cd3b5313f18c68c0a">00585</a>   <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span>  GetValueAndDerivativeThreadProcessSample( 
<a name="l00586"></a>00586     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="itkMacro_8h.html#6be3b439282da7a34278c0594589b972">itkNotUsed</a>(threadID),
<a name="l00587"></a>00587     <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="itkMacro_8h.html#6be3b439282da7a34278c0594589b972">itkNotUsed</a>(fixedImageSample),
<a name="l00588"></a>00588     <span class="keyword">const</span> <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">MovingImagePointType</a> &amp; <a class="code" href="itkMacro_8h.html#6be3b439282da7a34278c0594589b972">itkNotUsed</a>(mappedPoint),
<a name="l00589"></a>00589     <span class="keywordtype">double</span> <a class="code" href="itkMacro_8h.html#6be3b439282da7a34278c0594589b972">itkNotUsed</a>(movingImageValue),
<a name="l00590"></a>00590     <span class="keyword">const</span> <a class="code" href="classitk_1_1CovariantVector.html" title="A templated class holding a n-Dimensional covariant vector.">ImageDerivativesType</a> &amp; <a class="code" href="itkMacro_8h.html#6be3b439282da7a34278c0594589b972">itkNotUsed</a>(movingImageGradientValue) )<span class="keyword"> const</span>
<a name="l00591"></a>00591 <span class="keyword">    </span>{ 
<a name="l00592"></a>00592     <span class="keywordflow">return</span> <span class="keyword">false</span>; 
<a name="l00593"></a>00593     }
<a name="l00594"></a>00594 
<a name="l00595"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#134f0ac34b2c98962872cbbab5ca57b9">00595</a>   <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span>  GetValueAndDerivativeThreadPostProcess( 
<a name="l00596"></a>00596     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="itkMacro_8h.html#6be3b439282da7a34278c0594589b972">itkNotUsed</a>(threadID),
<a name="l00597"></a>00597     <span class="keywordtype">bool</span> <a class="code" href="itkMacro_8h.html#6be3b439282da7a34278c0594589b972">itkNotUsed</a>(withinSampleThread) )<span class="keyword"> const </span>{};
<a name="l00598"></a>00598 
<a name="l00602"></a>00602   <span class="keywordtype">void</span> SynchronizeTransforms() <span class="keyword">const</span>;
<a name="l00603"></a>00603 
<a name="l00605"></a>00605   <span class="keywordtype">void</span> NumberOfFixedImageSamplesUpdated();
<a name="l00606"></a>00606 
<a name="l00607"></a>00607 <span class="keyword">private</span>:
<a name="l00608"></a>00608   <a class="code" href="classitk_1_1ImageToImageMetric.html" title="Computes similarity between regions of two images.">ImageToImageMetric</a>(<span class="keyword">const</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#ac7d0120fe5292cdcdddb6163b8cb150">Self</a>&amp;); <span class="comment">//purposely not implemented</span>
<a name="l00609"></a>00609   <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#ac7d0120fe5292cdcdddb6163b8cb150">Self</a>&amp;); <span class="comment">//purposely not implemented</span>
<a name="l00610"></a>00610   
<a name="l00611"></a>00611   FixedImageRegionType        m_FixedImageRegion;  
<a name="l00612"></a>00612 
<a name="l00613"></a>00613 };
<a name="l00614"></a>00614 
<a name="l00615"></a>00615 } <span class="comment">// end namespace itk</span>
<a name="l00616"></a>00616 
<a name="l00617"></a>00617 <span class="preprocessor">#ifndef ITK_MANUAL_INSTANTIATION</span>
<a name="l00618"></a>00618 <span class="preprocessor"></span><span class="preprocessor">#include "itkOptImageToImageMetric.txx"</span>
<a name="l00619"></a>00619 <span class="preprocessor">#endif</span>
<a name="l00620"></a>00620 <span class="preprocessor"></span>
<a name="l00621"></a>00621 <span class="preprocessor">#endif</span>
<a name="l00622"></a>00622 <span class="preprocessor"></span>
</pre></div></div>
<hr><address><small>
Generated at Thu May 7 23:44:58 2009 for ITK  by <a href="http://www.stack.nl/~dimitri/doxygen/index.html"> <img 
src="http://www.stack.nl/~dimitri/doxygen/doxygen.png" alt="doxygen"
align="middle" border=0 width=110 height=53>
</a> 1.5.9 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
 &copy;&nbsp;1997-2000</small></address>
</body>
</html>