<div class="gmail_quote">On Tue, Jun 26, 2012 at 9:42 AM, Bradley Lowekamp <span dir="ltr">&lt;<a href="mailto:blowekamp@mail.nih.gov" target="_blank">blowekamp@mail.nih.gov</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div style="word-wrap:break-word">David,<div><br></div><div>This certainly sounds like a bug.</div><div><br></div><div>Do you have a patch?</div><div><br></div><div>If the patch is not invasive and gets approved today, it may... just may be able to make it into the RC4.</div>


<div><br></div><div>Brad</div></div></blockquote><div><br></div><div>Hi Brad,</div><div><br></div>I think there are actually three separate problems/questions here - </div><div class="gmail_quote"><br></div><div class="gmail_quote">
1)</div><div class="gmail_quote"><div>
I realized that I can specify a 4th template parameter (TOperatorValueType):</div><div><br></div><div><div>  typedef itk::NormalizedCorrelationImageFilter&lt;FloatVectorImageType, MaskType,</div><div>                                                FloatImageType, FloatVectorType&gt; CorrelationFilterType;</div>

<div>  CorrelationFilterType::Pointer correlationFilter = CorrelationFilterType::New();</div></div><div><br></div><div>However, when I do this, I get a concept check error that ‘itk::CovariantVector&lt;float, 3u&gt; can&#39;t be casted to type ‘float’. I&#39;m assuming this means that this filter can only operate on scalar images? I guess now that I think about it, the standard correlation computation doesn&#39;t seem to naturally extend to vector-valued pixels... Perhaps there should at least be a mention of this in the documentation, or better, a concept check on TInputImage.</div>

<div><br></div><div>2)</div></div><div class="gmail_quote">Though I don&#39;t think I&#39;ll be able to use the filter as I was trying to in (1), I still think the variable names and default template parameters are confusing, even for correct usage.</div>
<div class="gmail_quote"><br></div><div class="gmail_quote">In the parent class:<div><br></div><div><div>template&lt; class TInputImage, class TOutputImage, class TOperatorValueType = typename TOutputImage::PixelType &gt;</div>


<div>class ITK_EXPORT NeighborhoodOperatorImageFilter:</div><br></div><div>we see that TOperatorValueType defaults to the output image type. Wouldn&#39;t it make more sense to default to the input image type, since you&#39;d usually be correlating two images of the same type? </div>
<div><br></div><div>3)</div><div>With or without the default in (2), the class then goes on to define:</div><div><br></div><div><div>  typedef Neighborhood&lt; OperatorValueType,</div><div>                        itkGetStaticConstMacro(ImageDimension) &gt; OutputNeighborhoodType;</div>
</div><div><br></div><div>should this be renamed OperatorNeighborhoodType - as I&#39;m not sure what it has to do with &#39;Output&#39;? That would then trickle down to clarify the confusion with the type of the SetTemplate() parameter.</div>
<div><br></div><div>If you agree, I can make a patch for 2 and 3, but 1 probably just needs a comment or a new concept check rather than a patch.</div><div><br></div><div>David</div></div>