<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">I have seen that before. That is why this class is not wrapped with WrapITK. But it is wrapped with SimpleITK.<div><br></div><div>I believe and EnablelIf is required.</div><div><br></div><div>Brad</div><div><br><div><div>On Jun 26, 2014, at 1:53 PM, Williams, Norman K <<a href="mailto:norman-k-williams@uiowa.edu">norman-k-williams@uiowa.edu</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">

<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div style="font-family: Calibri, sans-serif; font-size: 14px;">
<div>The following two lines of code generates hundreds of lines of error messages:</div>
<div><br>
</div>
<div>#include "itkPatchBasedDenoisingImageFilter.h"</div>
<div>template class itk::PatchBasedDenoisingImageFilter<itk::Image<float, 3u>, itk::Image<float, 3u> >;</div>
</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px;">
<br>
</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px;">
Interestingly enough, this code does not:</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px;">
<br>
</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px;">
typedef itk::Image<float,3u> ImageType;</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px;">
typedef itk::PatchBasedDenoisingImageFilter<ImageType,ImageType> PDIFType;</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px;">
PDIFType::Pointer filter = PDIFType::New();</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px;">
<br>
</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px;">
Here are the compiler errors:</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px;">
<br>
</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px;">
make</div>
<div>
<div><font face="Calibri,sans-serif">Scanning dependencies of target PatchBasedDenoisingTest</font></div>
<div><font face="Calibri,sans-serif">[100%] Building CXX object CMakeFiles/PatchBasedDenoisingTest.dir/PatchBasedDenoisingTest.cxx.o</font></div>
<div><font face="Calibri,sans-serif">In file included from /scratch/kent/itktest/PatchBasedDenoisingTest/src/PatchBasedDenoisingTest.cxx:1:</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.h:337:62: error: no viable</font></div>
<div><font face="Calibri,sans-serif">      conversion from 'const DiffusionTensor3D<PixelValueType>' to 'const PixelType' (aka 'const float')</font></div>
<div><font face="Calibri,sans-serif">      ComputeSignedEuclideanDifferenceAndWeightedSquaredNorm(a, b, weight,</font></div>
<div><font face="Calibri,sans-serif">                                                             ^</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/PatchBasedDenoisingTest/src/PatchBasedDenoisingTest.cxx:3:21: note: in instantiation of member</font></div>
<div><font face="Calibri,sans-serif">      function 'itk::PatchBasedDenoisingImageFilter<itk::Image<float, 3>, itk::Image<float, 3></font></div>
<div><font face="Calibri,sans-serif">      >::ComputeDifferenceAndWeightedSquaredNorm' requested here</font></div>
<div><font face="Calibri,sans-serif">template class itk::PatchBasedDenoisingImageFilter<itk::Image<float, 3u>, itk::Image<float, 3u> >; //Instantiated 9 times</font></div>
<div><font face="Calibri,sans-serif">                    ^</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.h:501:80: note: passing</font></div>
<div><font face="Calibri,sans-serif">      argument to parameter 'a' here</font></div>
<div><font face="Calibri,sans-serif">  void ComputeSignedEuclideanDifferenceAndWeightedSquaredNorm(const PixelType& a, const PixelType& b,</font></div>
<div><font face="Calibri,sans-serif">                                                                               ^</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.h:372:39: error: no viable</font></div>
<div><font face="Calibri,sans-serif">      conversion from 'const DiffusionTensor3D<RealValueType>' to 'const RealType' (aka 'const double')</font></div>
<div><font face="Calibri,sans-serif">      return this->AddEuclideanUpdate(a, b);</font></div>
<div><font face="Calibri,sans-serif">                                      ^</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/PatchBasedDenoisingTest/src/PatchBasedDenoisingTest.cxx:3:21: note: in instantiation of member</font></div>
<div><font face="Calibri,sans-serif">      function 'itk::PatchBasedDenoisingImageFilter<itk::Image<float, 3>, itk::Image<float, 3> >::AddUpdate' requested here</font></div>
<div><font face="Calibri,sans-serif">template class itk::PatchBasedDenoisingImageFilter<itk::Image<float, 3u>, itk::Image<float, 3u> >; //Instantiated 9 times</font></div>
<div><font face="Calibri,sans-serif">                    ^</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.h:524:47: note: passing</font></div>
<div><font face="Calibri,sans-serif">      argument to parameter 'a' here</font></div>
<div><font face="Calibri,sans-serif">  RealType AddEuclideanUpdate(const RealType& a, const RealType& b);</font></div>
<div><font face="Calibri,sans-serif">                                              ^</font></div>
<div><font face="Calibri,sans-serif">In file included from /scratch/kent/itktest/PatchBasedDenoisingTest/src/PatchBasedDenoisingTest.cxx:1:</font></div>
<div><font face="Calibri,sans-serif">In file included from /scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.h:541:</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.hxx:784:5: error: called</font></div>
<div><font face="Calibri,sans-serif">      object type 'PixelType' (aka 'float') is not a function or function pointer</font></div>
<div><font face="Calibri,sans-serif">    identityTensor(ii,ii) = NumericTraits<PixelValueType>::One;</font></div>
<div><font face="Calibri,sans-serif">    ^~~~~~~~~~~~~~</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/PatchBasedDenoisingTest/src/PatchBasedDenoisingTest.cxx:3:21: note: in instantiation of member</font></div>
<div><font face="Calibri,sans-serif">      function 'itk::PatchBasedDenoisingImageFilter<itk::Image<float, 3>, itk::Image<float, 3> >::ThreadedRiemannianMinMax'</font></div>
<div><font face="Calibri,sans-serif">      requested here</font></div>
<div><font face="Calibri,sans-serif">template class itk::PatchBasedDenoisingImageFilter<itk::Image<float, 3u>, itk::Image<float, 3u> >; //Instantiated 9 times</font></div>
<div><font face="Calibri,sans-serif">                    ^</font></div>
<div><font face="Calibri,sans-serif">In file included from /scratch/kent/itktest/PatchBasedDenoisingTest/src/PatchBasedDenoisingTest.cxx:1:</font></div>
<div><font face="Calibri,sans-serif">In file included from /scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.h:541:</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.hxx:1067:20: error: type</font></div>
<div><font face="Calibri,sans-serif">      'PixelType' (aka 'float') cannot be used prior to '::' because it has no members</font></div>
<div><font face="Calibri,sans-serif">  typedef typename PixelType::MatrixType            MatrixType;</font></div>
<div><font face="Calibri,sans-serif">                   ^</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/PatchBasedDenoisingTest/src/PatchBasedDenoisingTest.cxx:3:21: note: in instantiation of member</font></div>
<div><font face="Calibri,sans-serif">      function 'itk::PatchBasedDenoisingImageFilter<itk::Image<float, 3>, itk::Image<float, 3></font></div>
<div><font face="Calibri,sans-serif">      >::ComputeLogMapAndWeightedSquaredGeodesicDifference' requested here</font></div>
<div><font face="Calibri,sans-serif">template class itk::PatchBasedDenoisingImageFilter<itk::Image<float, 3u>, itk::Image<float, 3u> >; //Instantiated 9 times</font></div>
<div><font face="Calibri,sans-serif">                    ^</font></div>
<div><font face="Calibri,sans-serif">In file included from /scratch/kent/itktest/PatchBasedDenoisingTest/src/PatchBasedDenoisingTest.cxx:1:</font></div>
<div><font face="Calibri,sans-serif">In file included from /scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.h:541:</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.hxx:1068:20: error: type</font></div>
<div><font face="Calibri,sans-serif">      'RealType' (aka 'double') cannot be used prior to '::' because it has no members</font></div>
<div><font face="Calibri,sans-serif">  typedef typename RealType::EigenValuesArrayType   RealEigenValuesArrayType;</font></div>
<div><font face="Calibri,sans-serif">                   ^</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.hxx:1069:20: error: type</font></div>
<div><font face="Calibri,sans-serif">      'RealType' (aka 'double') cannot be used prior to '::' because it has no members</font></div>
<div><font face="Calibri,sans-serif">  typedef typename RealType::EigenVectorsMatrixType RealEigenVectorsMatrixType;</font></div>
<div><font face="Calibri,sans-serif">                   ^</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.hxx:1070:20: error: type</font></div>
<div><font face="Calibri,sans-serif">      'RealType' (aka 'double') cannot be used prior to '::' because it has no members</font></div>
<div><font face="Calibri,sans-serif">  typedef typename RealType::MatrixType             RealMatrixType;</font></div>
<div><font face="Calibri,sans-serif">                   ^</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.hxx:1132:3: error: </font></div>
<div><font face="Calibri,sans-serif">      subscripted value is not an array, pointer, or vector</font></div>
<div><font face="Calibri,sans-serif">  Y[0] = ( eigenVecs(0,0) * factor0 + eigenVecs(0,1) * factor1 + eigenVecs(0,2) * factor2 ) / eigenVals[0];</font></div>
<div><font face="Calibri,sans-serif">  ^ ~</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.hxx:1133:3: error: </font></div>
<div><font face="Calibri,sans-serif">      subscripted value is not an array, pointer, or vector</font></div>
<div><font face="Calibri,sans-serif">  Y[1] = ( eigenVecs(1,0) * factor0 + eigenVecs(1,1) * factor1 + eigenVecs(1,2) * factor2 ) / std::sqrt(</font></div>
<div><font face="Calibri,sans-serif">  ^ ~</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.hxx:1135:3: error: </font></div>
<div><font face="Calibri,sans-serif">      subscripted value is not an array, pointer, or vector</font></div>
<div><font face="Calibri,sans-serif">  Y[2] = ( eigenVecs(2,0) * factor0 + eigenVecs(2,1) * factor1 + eigenVecs(2,2) * factor2 ) / std::sqrt(</font></div>
<div><font face="Calibri,sans-serif">  ^ ~</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.hxx:1142:3: error: </font></div>
<div><font face="Calibri,sans-serif">      subscripted value is not an array, pointer, or vector</font></div>
<div><font face="Calibri,sans-serif">  Y[3] = ( eigenVecs(1,0) * factor0 + eigenVecs(1,1) * factor1 + eigenVecs(1,2) * factor2 ) / eigenVals[1];</font></div>
<div><font face="Calibri,sans-serif">  ^ ~</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.hxx:1143:3: error: </font></div>
<div><font face="Calibri,sans-serif">      subscripted value is not an array, pointer, or vector</font></div>
<div><font face="Calibri,sans-serif">  Y[4] = ( eigenVecs(2,0) * factor0 + eigenVecs(2,1) * factor1 + eigenVecs(2,2) * factor2 ) / std::sqrt(</font></div>
<div><font face="Calibri,sans-serif">  ^ ~</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.hxx:1150:3: error: </font></div>
<div><font face="Calibri,sans-serif">      subscripted value is not an array, pointer, or vector</font></div>
<div><font face="Calibri,sans-serif">  Y[5] = ( eigenVecs(2,0) * factor0 + eigenVecs(2,1) * factor1 + eigenVecs(2,2) * factor2 ) / eigenVals[2];</font></div>
<div><font face="Calibri,sans-serif">  ^ ~</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.hxx:1154:5: error: no</font></div>
<div><font face="Calibri,sans-serif">      matching member function for call to 'Compute3x3EigenAnalysis'</font></div>
<div><font face="Calibri,sans-serif">    Compute3x3EigenAnalysis(Y, YEigenVals, YEigenVecs);</font></div>
<div><font face="Calibri,sans-serif">    ^~~~~~~~~~~~~~~~~~~~~~~</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.h:520:8: note: candidate</font></div>
<div><font face="Calibri,sans-serif">      template ignored: could not match 'DiffusionTensor3D<type-parameter-0-0>' against 'double'</font></div>
<div><font face="Calibri,sans-serif">  void Compute3x3EigenAnalysis(const DiffusionTensor3D<TensorValueT>& spdMatrix,</font></div>
<div><font face="Calibri,sans-serif">       ^</font></div>
<div><font face="Calibri,sans-serif">In file included from /scratch/kent/itktest/PatchBasedDenoisingTest/src/PatchBasedDenoisingTest.cxx:1:</font></div>
<div><font face="Calibri,sans-serif">In file included from /scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.h:541:</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.hxx:1177:5: error: </font></div>
<div><font face="Calibri,sans-serif">      subscripted value is not an array, pointer, or vector</font></div>
<div><font face="Calibri,sans-serif">    YEigenVals[ii] = std::log(vnl_math_max(RealValueType(1e-15),YEigenVals[ii]) );</font></div>
<div><font face="Calibri,sans-serif">    ^~~~~~~~~~ ~~</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.hxx:1182:34: error: </font></div>
<div><font face="Calibri,sans-serif">      subscripted value is not an array, pointer, or vector</font></div>
<div><font face="Calibri,sans-serif">  const RealValueType YEigVal0 = YEigenVals[0];</font></div>
<div><font face="Calibri,sans-serif">                                 ^~~~~~~~~~ ~</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.hxx:1183:34: error: </font></div>
<div><font face="Calibri,sans-serif">      subscripted value is not an array, pointer, or vector</font></div>
<div><font face="Calibri,sans-serif">  const RealValueType YEigVal1 = YEigenVals[1];</font></div>
<div><font face="Calibri,sans-serif">                                 ^~~~~~~~~~ ~</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.hxx:1184:34: error: </font></div>
<div><font face="Calibri,sans-serif">      subscripted value is not an array, pointer, or vector</font></div>
<div><font face="Calibri,sans-serif">  const RealValueType YEigVal2 = YEigenVals[2];</font></div>
<div><font face="Calibri,sans-serif">                                 ^~~~~~~~~~ ~</font></div>
<div><font face="Calibri,sans-serif">/scratch/kent/itktest/ITK/Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.hxx:1186:49: error: called</font></div>
<div><font face="Calibri,sans-serif">      object type 'RealEigenVectorsMatrixType' (aka 'int') is not a function or function pointer</font></div>
<div><font face="Calibri,sans-serif">  const RealValueType temp00 = eigenVecs(0,0) * YEigenVecs(0,0) * eigVal0 +</font></div>
<div><font face="Calibri,sans-serif">                                                ^~~~~~~~~~</font></div>
<div><font face="Calibri,sans-serif">fatal error: too many errors emitted, stopping now [-ferror-limit=]</font></div>
<div><font face="Calibri,sans-serif">20 errors generated.</font></div>
<div><font face="Calibri,sans-serif">make[2]: *** [CMakeFiles/PatchBasedDenoisingTest.dir/PatchBasedDenoisingTest.cxx.o] Error 1</font></div>
<div><font face="Calibri,sans-serif">make[1]: *** [CMakeFiles/PatchBasedDenoisingTest.dir/all] Error 2</font></div>
<div><font face="Calibri,sans-serif">make: *** [all] Error 2</font></div>
<div><font face="Calibri,sans-serif"><br>
</font></div>
<div><font face="Calibri,sans-serif">Compilation exited abnormally with code 2 at Thu Jun 26 12:35:30</font></div>
</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px;">
<br>
</div>
<br>
<br>
<hr>
Notice: This UI Health Care e-mail (including attachments) is covered by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and may be legally privileged.  If you are not the intended recipient, you are hereby notified that any
 retention, dissemination, distribution, or copying of this communication is strictly prohibited.  Please reply to the sender that you have received the message in error, then delete it.  Thank you.
<hr>
</div>

_______________________________________________<br>Powered by <a href="http://www.kitware.com">www.kitware.com</a><br><br>Visit other Kitware open-source projects at<br><a href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a><br><br>Kitware offers ITK Training Courses, for more information visit:<br>http://kitware.com/products/protraining.php<br><br>Please keep messages on-topic and check the ITK FAQ at:<br>http://www.itk.org/Wiki/ITK_FAQ<br><br>Follow this link to subscribe/unsubscribe:<br>http://public.kitware.com/mailman/listinfo/insight-developers<br></blockquote></div><br></div></body></html>