[Insight-users] Create my own filter

rashedk rashed.vtk at googlemail.com
Tue Sep 18 18:04:40 EDT 2007


Hi Dan, 

Thanks a lot!! 

Your suggestion helped me great deal and I was able to use
itkAndImageFilter's template to implement my own filter. 

I havent changed the concept checking though, as I have no idea what this
thing actually means. Where can I find more documentation on itk's
NumericTraits? You used NumericTraits< TInput1 >::Zero, what if i needed
some number other than zero, what would I use instead? 

Thanks again guys .. 

Rashed


Dan Mueller-2 wrote:
> 
> Hi Rashedk,
> 
> Thanks for describing the filter you are trying to create.
> 
> Seeing it is a pixel-wise filter, it's probably best to use the
> itkAndImageFilter as a template (this filter is a specialization of
> itkBinaryFunctorImageFilter). You will need to rename the functor
> (something like "SelectFirstInputIfNotZero") and change the operator()
> method to implement your selection:
> 
> inline TOutput operator()( const TInput1 & A, const TInput2 & B)
>   {
>     if ( A > NumericTraits< TInput1 >::Zero )
>       {
>       return static_cast<TOutput>( A );
>       }
>    else
>       {
>       return static_cast<TOutput>( B );
>       }
>   }
> 
> You will then need to rename the filter (including
> constructor/destructor), change the functor in the inheritance
> statement, and maybe think about the concept checking.
> 
> I have had need for such a filter but been too lazy to create it
> myself -- perhaps you could submit a short Insight Journal article
> (http://www.insight-journal.org) describing the filter?
> 
> HTH
> 
> Cheers, Dan
> 
> On 18/09/2007, rashedk <rashed.vtk at googlemail.com> wrote:
>>
>> Hi Luis,
>>
>> Thanks for your quick reply. I was looking at
>> itkBinaryFunctionImageFilter
>> since this closely resembles what my filter is aiming to accomplish. I
>> have
>> two inputs Image1 and Image2. The output of the filter is a pixel-wise
>> selection of the intensity from either Image1 or Image2. At a pixel
>> (x,y,z)
>> if Image1(x,y,z) > 0 then output(x,y,z) = image1(x,y,z) ELSE if
>> Image1(x,y,z) == 0 then output(x,y,z) = Image2(x,y,z).
>>
>> I am trying to modify the itkBinaryFunctionImageFilter, but dont
>> understand
>> what m_Functor ( ) function in the ThreadedGenerateData( ) function does.
>> I
>> can see that it implements the pixel-wise addition, but where is this
>> function defined?
>>
>> Thanks in advance,
>>
>> Rashed karim
>>
>>
>> Luis Ibanez wrote:
>> >
>> >
>> > Hi Rashedk,
>> >
>> > It is very easy to create ITK filters that take two images.
>> >
>> > You may want to look first at the "itkBinaryFunctorImageFilter"
>> >
>> > This is the base class of all the filters that take two images
>> > as input and compute a pixel-wise output.
>> >
>> > You can ignore the "Functor" aspects of it, and focus on the
>> > SetInput1(), SetInput2() methods, the SetNumberOfRequiredInputs()
>> > call in the constructor.
>> >
>> > There are many other filters in ITK that take two images as input.
>> >
>> > For example:
>> >
>> > $ grep -l "RequiredInputs( 2 )" *.txx
>> > itkBinaryFunctorImageFilter.txx
>> > itkContourDirectedMeanDistanceImageFilter.txx
>> > itkContourMeanDistanceImageFilter.txx
>> > itkDirectedHausdorffDistanceImageFilter.txx
>> > itkHausdorffDistanceImageFilter.txx
>> > itkInterpolateImageFilter.txx
>> > itkNaryFunctorImageFilter.txx
>> > itkPolylineMask2DImageFilter.txx
>> > itkPolylineMaskImageFilter.txx
>> > itkSimilarityIndexImageFilter.txx
>> > itkWarpImageFilter.txx
>> > itkWarpVectorImageFilter.txx
>> >
>> >
>> > Please let us know if you encounter any problems,
>> >
>> >
>> >     Thanks
>> >
>> >
>> >         Luis
>> >
>> >
>> > ----------------
>> > rashedk wrote:
>> >> Hi everyone,
>> >>
>> >> I am trying to write my own filter. The filter will take in two images
>> >> (of
>> >> the same type) as input and output a single image. All the images are
>> of
>> >> the
>> >> same dimensions. I was looking at Chapter 13 of the ITK software
>> guide,
>> >> especially 13.6. I don't know how to go about extending this since I
>> have
>> >> two images as input. I am also not sure If it would be appropriate to
>> >> derive
>> >> from ImageToImageFilter.
>> >>
>> >> Any ideas how I should go about doing this?
>> >>
>> >> Thanks in advance,
>> >> Rashed karim.
>> >>
>> >>
>> > _______________________________________________
>> > Insight-users mailing list
>> > Insight-users at itk.org
>> > http://www.itk.org/mailman/listinfo/insight-users
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Create-my-own-filter-tf4449323.html#a12746845
>> Sent from the ITK - Users mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> Insight-users mailing list
>> Insight-users at itk.org
>> http://www.itk.org/mailman/listinfo/insight-users
>>
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
> 
> 

-- 
View this message in context: http://www.nabble.com/Create-my-own-filter-tf4449323.html#a12767042
Sent from the ITK - Users mailing list archive at Nabble.com.



More information about the Insight-users mailing list