<!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> <a href="modules.html" class="qindex">Groups</a> <a href="namespaces.html" class="qindex">Namespace List</a> <a href="hierarchy.html" class="qindex">Class Hierarchy</a> <a href="classes.html" class="qindex">Alphabetical List</a> <a href="annotated.html" class="qindex">Compound List</a> <a href="files.html" class="qindex">File List</a> <a href="namespacemembers.html" class="qindex">Namespace Members</a> <a href="functions.html" class="qindex">Compound Members</a> <a href="globals.html" class="qindex">File Members</a> <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> » <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 & 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> <<span class="keyword">class</span> TFixedImage, <span class="keyword">class</span> TMovingImage> <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<Self></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<const Self></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><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)> <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<FixedImageIndexType> 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>< MovingImageType, <a name="l00118"></a>00118 CoordinateRepresentationType > <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<MovingImagePixelType>::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><RealType, <a name="l00125"></a>00125 <a class="code" href="itkMacro_8h.html#94ef2dc11d52c8ef0a78e34558feb8cb">itkGetStaticConstMacro</a>(MovingImageDimension)> <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><<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)> <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<GradientImageType></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>< MovingImageType, <a name="l00132"></a>00132 <a class="code" href="classitk_1_1Image.html" title="Templated n-dimensional image class.">GradientImageType</a> > <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< itkGetStaticConstMacro(FixedImageDimension) ></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< itkGetStaticConstMacro(MovingImageDimension) ></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 & 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 & 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->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> << numSamples ); <a name="l00255"></a>00255 <span class="keywordflow">if</span> (this->m_NumberOfFixedImageSamples != numSamples) <a name="l00256"></a>00256 { <a name="l00257"></a>00257 <span class="keywordflow">if</span>( this->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->m_NumberOfFixedImageSamples = 1; <a name="l00261"></a>00261 } <a name="l00262"></a>00262 this->m_UseAllPixels = <span class="keyword">false</span>; <a name="l00263"></a>00263 this->m_NumberOfFixedImageSamples = numSamples; <a name="l00264"></a>00264 this->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->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->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 & 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& 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<FixedImageSamplePoint> FixedImageSampleContainer; <a name="l00368"></a>00368 <a name="l00370"></a>00370 <span class="keyword">virtual</span> <span class="keywordtype">void</span> SampleFixedImageDomain( FixedImageSampleContainer & 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 & <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 & <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>< 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<FixedImageType>::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) > <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<WeightsValueType></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<IndexValueType></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<MovingImagePointType> MovingImagePointArrayType; <a name="l00443"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#5808b1983f1927f1e101b47982a852a5">00443</a> <span class="keyword">typedef</span> std::vector<bool> 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>< <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<FixedImageType></a> <a name="l00446"></a><a class="code" href="classitk_1_1ImageToImageMetric.html#9c6f5ca2e705ef601541bcd64704e72a">00446</a> ::ImageDimension > <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><MovingImageType, <a name="l00453"></a>00453 CoordinateRepresentationType> <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><MovingImageType, <a name="l00458"></a>00458 CoordinateRepresentationType> <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>< double, <a name="l00461"></a>00461 <a class="code" href="itkMacro_8h.html#94ef2dc11d52c8ef0a78e34558feb8cb">itkGetStaticConstMacro</a>(MovingImageDimension) > <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>& mappedPoint, <a name="l00488"></a>00488 <span class="keywordtype">bool</span>& sampleWithinSupportRegion, <a name="l00489"></a>00489 <span class="keywordtype">double</span>& 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>& mappedPoint, <a name="l00494"></a>00494 <span class="keywordtype">bool</span>& sampleWithinSupportRegion, <a name="l00495"></a>00495 <span class="keywordtype">double</span>& 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> & 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> & 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> & 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> & <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> & <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> & <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>&); <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>&); <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>, © 1997-2000</small></address> </body> </html>