Thank you for the explanation of &quot;Nary&quot; ;-)<br>
<br>
I&#39;m not an expert... but to change something in the code I need &quot;itkNaryAddImageFilter<b>.cxx</b>&quot; and not &quot;itkNaryAddImageFilter<b>.h</b>&quot; ?<br><br>Do I talk nonsense?<br><br><br><br>Thank you,<br>
<br>Stéphane<br><br><br><br>&nbsp;<br><div class="gmail_quote">2008/10/22 Dan Mueller <span dir="ltr">&lt;<a href="mailto:dan.muel@gmail.com">dan.muel@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Stéphane,<br>
<div class="Ih2E3d"><br>
&gt; - Why do you tell me about &quot;NaryAddImageFilter&quot; ? I was using<br>
&gt; AddImageFilter.<br>
</div>I mentioned NaryAddImageFilter in my first response to your question<br>
(which I see now I forgot to send to the mailing list).<br>
<br>
&gt; What&#39;s the difference ?<br>
AddImageFilter takes 2 inputs, NaryAddImageFilter takes N inputs (ie.<br>
unary, binary, &quot;n&quot;-ary).<br>
<div class="Ih2E3d"><br>
&gt; - I have no &quot;NaryAddImageFilter.cxx&quot; or &quot;AddImageFilter.cxx&quot; in my ITK<br>
&gt; repertory. I didn&#39;t find it on the Internet either. Where can I find it if I<br>
&gt; want to transform &quot;Add&quot; to &quot;Mean&quot; ?<br>
</div>You will find it in Code\BasicFilters\itkNaryAddImageFilter.h.<br>
<div><div></div><div class="Wj3C7c"><br>
Hope this helps.<br>
<br>
Regards, Dan<br>
<br>
2008/10/22 Stéphane CALANDE &lt;<a href="mailto:scalande@gmail.com">scalande@gmail.com</a>&gt;:<br>
&gt; Thank you Dan ;-)<br>
&gt;<br>
&gt; I have 2 questions :<br>
&gt;<br>
&gt; - Why do you tell me about &quot;NaryAddImageFilter&quot; ? I was using<br>
&gt; AddImageFilter. What&#39;s the difference ?<br>
&gt;<br>
&gt; - I have no &quot;NaryAddImageFilter.cxx&quot; or &quot;AddImageFilter.cxx&quot; in my ITK<br>
&gt; repertory. I didn&#39;t find it on the Internet either. Where can I find it if I<br>
&gt; want to transform &quot;Add&quot; to &quot;Mean&quot; ?<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Have a nice day,<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Stéphane<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; 2008/10/22 Dan Mueller &lt;<a href="mailto:dan.muel@gmail.com">dan.muel@gmail.com</a>&gt;<br>
&gt;&gt;<br>
&gt;&gt; Hi Stéphane,<br>
&gt;&gt;<br>
&gt;&gt; Yes, good point: the MeanImageFilter will not work for multiple<br>
&gt;&gt; images. Sorry for the confusion, I did not think carefully enough<br>
&gt;&gt; before sending the email.<br>
&gt;&gt;<br>
&gt;&gt; You will either have to make your own NaryMeanImageFilter (similar to<br>
&gt;&gt; NaryAddImageFilter) or use the NaryAddImageFilter and the<br>
&gt;&gt; DivideImageFilter together.<br>
&gt;&gt;<br>
&gt;&gt; Regards, Dan<br>
&gt;&gt;<br>
&gt;&gt; 2008/10/22 Stéphane CALANDE &lt;<a href="mailto:scalande@gmail.com">scalande@gmail.com</a>&gt;:<br>
&gt;&gt; &gt; Thank you very much for your help Dan,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I tried &quot;MeanImageFilter&quot; but I&#39;m not sure I can calculate the mean of<br>
&gt;&gt; &gt; several images.<br>
&gt;&gt; &gt; In fact, the functions SetInput1, SetInput2,... don&#39;t exist for<br>
&gt;&gt; &gt; MeanImageFilter...<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Do you have some advice ?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Meanwhile, I&#39;m going to try the DivideImageFilter.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Thank you in advance,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Stéphane<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 2008/10/22 Dan Mueller &lt;<a href="mailto:dan.muel@gmail.com">dan.muel@gmail.com</a>&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Hi Stéphane,<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; You probably want the MeanImageFilter:<br>
&gt;&gt; &gt;&gt; &nbsp; &nbsp;<a href="http://www.itk.org/Doxygen/html/classitk_1_1MeanImageFilter.html" target="_blank">http://www.itk.org/Doxygen/html/classitk_1_1MeanImageFilter.html</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; You can use it in the same way as the add image filter that Luis<br>
&gt;&gt; &gt;&gt; described in his reply to your original question.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &nbsp; reader-&gt;SetFileName( name[0] );<br>
&gt;&gt; &gt;&gt; &nbsp; reader-&gt;Update();<br>
&gt;&gt; &gt;&gt; &nbsp; ImageType::Pointer inputImage1 = reader-&gt;GetOutput();<br>
&gt;&gt; &gt;&gt; &nbsp; mean-&gt;SetInput1( inputImage1 );<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &nbsp; for( int i=1; i&lt;numberOfFiles; i++)<br>
&gt;&gt; &gt;&gt; &nbsp; &nbsp; {<br>
&gt;&gt; &gt;&gt; &nbsp; &nbsp; reader-&gt;SetFileName( name[i] );<br>
&gt;&gt; &gt;&gt; &nbsp; &nbsp; reader-&gt;Update();<br>
&gt;&gt; &gt;&gt; &nbsp; &nbsp; ImageType::Pointer inputImage2 = reader-&gt;GetOutput();<br>
&gt;&gt; &gt;&gt; &nbsp; &nbsp; inputImage2-&gt;DisconnectPipeline();<br>
&gt;&gt; &gt;&gt; &nbsp; &nbsp; mean&gt;SetInput2( inputImage2 );<br>
&gt;&gt; &gt;&gt; &nbsp; &nbsp; mean-&gt;Update();<br>
&gt;&gt; &gt;&gt; &nbsp; &nbsp; ImageType::Pointer sumImage = adder-&gt;GetOutput();<br>
&gt;&gt; &gt;&gt; &nbsp; &nbsp; meanImage-&gt;DisconnectPipeline();<br>
&gt;&gt; &gt;&gt; &nbsp; &nbsp; mean-&gt;SetInput1( meanImage );<br>
&gt;&gt; &gt;&gt; &nbsp; &nbsp; }<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &nbsp;// Here &nbsp;meanImage has the output.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Alternatively, you could use the DivideImageFilter after you have<br>
&gt;&gt; &gt;&gt; computed the sum:<br>
&gt;&gt; &gt;&gt; &nbsp; &nbsp;<a href="http://www.itk.org/Doxygen/html/classitk_1_1DivideImageFilter.html" target="_blank">http://www.itk.org/Doxygen/html/classitk_1_1DivideImageFilter.html</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Hope this helps.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Regards, Dan<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; 2008/10/22 Stéphane CALANDE &lt;<a href="mailto:scalande@gmail.com">scalande@gmail.com</a>&gt;:<br>
&gt;&gt; &gt;&gt; &gt; Finally, I think that &quot;itkAddImageFilter&quot; is not what I need.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; Which function can I use to create a program that takes multiple 3D<br>
&gt;&gt; &gt;&gt; &gt; images.mhd as input and create as output one 3D image.mhd containing<br>
&gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt; &gt;&gt; &gt; average(mean) of the multiple images ?<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; Any help is appreciated...<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; Thank you !<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; Stéphane<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; 2008/10/22 Stéphane CALANDE &lt;<a href="mailto:scalande@gmail.com">scalande@gmail.com</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; Hi Luis, hi everybody...<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; I have little problems with the program I created to add my images<br>
&gt;&gt; &gt;&gt; &gt;&gt; (see<br>
&gt;&gt; &gt;&gt; &gt;&gt; former mail) : in fact I badly expressed myself.<br>
&gt;&gt; &gt;&gt; &gt;&gt; I don&#39;t want a program that &quot;sums&quot; my 3D metaheaders images, but I<br>
&gt;&gt; &gt;&gt; &gt;&gt; want<br>
&gt;&gt; &gt;&gt; &gt;&gt; a<br>
&gt;&gt; &gt;&gt; &gt;&gt; program that give, as output, a file containing a MEAN of the<br>
&gt;&gt; &gt;&gt; &gt;&gt; images.<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; If I have 10 images represented by different &quot;grey-level&quot;, the image<br>
&gt;&gt; &gt;&gt; &gt;&gt; I<br>
&gt;&gt; &gt;&gt; &gt;&gt; want is an other &quot;grey-level&quot; one (but now the problem is that the<br>
&gt;&gt; &gt;&gt; &gt;&gt; output<br>
&gt;&gt; &gt;&gt; &gt;&gt; image is black and white, probably because of the SUM, isn&#39;t it?)<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; Luis, I&#39;d like to know if the program you gave me (just under this<br>
&gt;&gt; &gt;&gt; &gt;&gt; mail)<br>
&gt;&gt; &gt;&gt; &gt;&gt; can resolve that problem ?<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; I&#39;m trying to compile it but the variable &quot;adder&quot; is undeclared...<br>
&gt;&gt; &gt;&gt; &gt;&gt; What<br>
&gt;&gt; &gt;&gt; &gt;&gt; is<br>
&gt;&gt; &gt;&gt; &gt;&gt; the type of &quot;adder&quot; ? Can you help me ?<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; Thank you very much !!<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; Stéphane<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; 2008/10/16 Luis Ibanez &lt;<a href="mailto:luis.ibanez@kitware.com">luis.ibanez@kitware.com</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; Hi Stéphane<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; It should be relatively straight forward to implement this.<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; Put the list of filenames in an array of std::strings called<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &quot;name&quot; and do the following:<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &nbsp; &nbsp;reader-&gt;SetFileName( name[0] );<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &nbsp; &nbsp;reader-&gt;Update();<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &nbsp; &nbsp;ImageType::Pointer inputImage1 = reader-&gt;GetOutput();<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &nbsp; &nbsp;adder-&gt;SetInput1( inputImage1 );<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &nbsp; &nbsp;for( int i=0; i&lt;numberOfFiles; i++)<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &nbsp; &nbsp; &nbsp;{<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &nbsp; &nbsp; &nbsp;reader-&gt;SetFileName( name[i] );<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &nbsp; &nbsp; &nbsp;reader-&gt;Update();<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &nbsp; &nbsp; &nbsp;ImageType::Pointer inputImage2 = reader-&gt;GetOutput();<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &nbsp; &nbsp; &nbsp;inputImage2-&gt;DisconnectPipeline();<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &nbsp; &nbsp; &nbsp;adder-&gt;SetInput2( inputImage2 );<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &nbsp; &nbsp; &nbsp;adder-&gt;Update();<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &nbsp; &nbsp; &nbsp;ImageType::Pointer sumImage = adder-&gt;GetOutput();<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &nbsp; &nbsp; &nbsp;sumImage-&gt;DisconnectPipeline();<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &nbsp; &nbsp; &nbsp;adder-&gt;SetInput1( sumImage );<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &nbsp; &nbsp; &nbsp;}<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &nbsp; // Here &nbsp;sumImage has the output.<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; Note the use of the DisconnectPipeline() method, that<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; makes possible to reuse the reader and the adder filter.<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; Regards,<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &nbsp; Luis<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; -------------------------<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; Stéphane CALANDE wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt; Hi,<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt; I&#39;m a newbie in ITK and I&#39;m looking for a example of program that<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt; takes,<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt; as input, several 3D metaheader image (.mhd) having the same<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt; spacing,<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt; size,... and that &quot;sums&quot; these images to create one<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt; &quot;total_Image.mhd&quot;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt; having<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt; the same size, spacing,... than the input ones.<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt; Does it exist ?<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt; Thank you very much.<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt; Regards,<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt; Stéphane<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt; ------------------------------------------------------------------------<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt; Insight-users mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt; <a href="mailto:Insight-users@itk.org">Insight-users@itk.org</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;&gt; <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt; Insight-users mailing list<br>
&gt;&gt; &gt;&gt; &gt; <a href="mailto:Insight-users@itk.org">Insight-users@itk.org</a><br>
&gt;&gt; &gt;&gt; &gt; <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;<br>
&gt;<br>
</div></div></blockquote></div><br>