[Insight-users] Questions about ITK4

Arnaud Gelas arnaud_gelas at hms.harvard.edu
Sun Oct 2 17:38:23 EDT 2011


Hui,

It would be really nice if you could contribute your code to the 
community via an Insight Journal.

     http://www.insight-journal.org/

You could explain your new term, and show how to use it in one example.

I am sure there are people here who would be interested in such a new 
functionality, and see how complicated it is to create a new level set term.
It could even end up in ITK4 ;)

Best,
Arnaud


On 10/02/2011 04:20 PM, Arnaud Gelas wrote:
> Dear Hui,
>
> In ITK3, the "evolution" class inherits from a ProcessObject and you 
> are right this is the typical way to add one more input to a filter, 
> to benefit from ITK's pipeline architecture.
>
> Here, LevelSetEquationChanAndVeseInternalTerm inherits from 
> LevelSetEquationTermBase, which inherits from Object. Thus a term is 
> not a filter, there is no input, no output.
> You can also add as many internal members. You can now decide what is 
> going to be inside your term.
>
> You can definitively add another InputImagePointer m_MeanImage.
>
> BTW, are you hacking itkLevelSetEquationChanAndVeseInternalTerm.* ?
>
> Arnaud
>
> On 10/02/2011 04:03 PM, Hui Tang wrote:
>> Dear Arnaud,
>> thanks for the quick reply!!!
>> Yes you are very right, I need to do that by m_Mean = 
>> m_MeanImage->GetPixel( iP ).
>> By the way in ITK3 I used 
>> this->ProcessObject::SetNthInput(1,InputImageType* image) to add one 
>> more image as input, but in ITK 4, it seems that ProcessObject is not 
>> a member function of itkLevelSetEquationChanAndVeseInternalTerm or
>>
>> LevelSetEquationTermBase.
>>
>> I guess I can add one more  class member InputImageType* m_MeanImage?
>>
>> Thanks again for the reply.
>>
>> Best,
>>
>> Hui
>>
>>
>> Please, let us know if it works.
>>
>>
>> On Sun, Oct 2, 2011 at 9:21 PM, Arnaud Gelas 
>> <Arnaud_Gelas at hms.harvard.edu <mailto:Arnaud_Gelas at hms.harvard.edu>> 
>> wrote:
>>
>>     Hi Hui,
>>
>>     The principle of Chan and Vese formulation is to assume there are
>>     two parts in your image: background and foreground and each of
>>     them are represented by a constant mean value.
>>     In the implementation, we did follow the same principle, e.g. the
>>     mean is a scalar if you are working with scalar images, a vector
>>     if you are working with vector images, etc.
>>
>>     So, now you want to create a new term / formulation (there might
>>     be a specific name for that, but I am not aware of it).
>>     Once you provide the mean image, you need to replace m_Mean by
>>     the pixel value for the given input location iP. In your special
>>     case, most likely you would only need to change m_Mean by
>>     m_MeanImage->GetPixel( iP )
>>
>>     Please, let us know if it works.
>>
>>     Best,
>>     Arnaud
>>
>>     On Oct 2, 2011, at 1:55 PM, Hui Tang wrote:
>>
>>>     Dear Arnaud,
>>>     That works!!Thanks!
>>>     Now may I ask if my mean intensity is a constant over time but
>>>     varies in the image, so I will have a mean intensity image, how
>>>     can I add that to interal term? I know how to get and set image
>>>     to get the mean intensity image, but in update(), it seems that
>>>     this->mean can only be a scalar.......
>>>     Do you have any idea on solve this?
>>>     thanks,
>>>     Best,
>>>     Hui
>>>
>>>
>>>     On Fri, Sep 30, 2011 at 3:14 PM, Arnaud Gelas
>>>     <arnaud_gelas at hms.harvard.edu
>>>     <mailto:arnaud_gelas at hms.harvard.edu>> wrote:
>>>
>>>         Hi Hui,
>>>
>>>         Sorry, there was a typo in my previous email :-/...
>>>
>>>         Here you go:
>>>
>>>             $ git checkout -t origin/v4.0b01
>>>
>>>         Here are the *.h you are looking for
>>>
>>>         $ find . | grep itkBinaryImageToWhitakerSparseLevelSetAdaptor.h
>>>         ./Modules/Segmentation/LevelSetsv4/include/itkBinaryImageToWhitakerSparseLevelSetAdaptor.hxx
>>>         ./Modules/Segmentation/LevelSetsv4/include/itkBinaryImageToWhitakerSparseLevelSetAdaptor.h
>>>
>>>         To be able to use the LevelSetsv4, you should either build
>>>         ITK with all modules, or explicitly turn on the LevelSetsv4
>>>         one (which is part of the Segmentation group).
>>>
>>>         Please keep the conversation on the mailing list, other
>>>         users may have the same problem.
>>>
>>>         Best,
>>>         Arnaud
>>>
>>>
>>>         On 09/30/2011 09:06 AM, Hui Tang wrote:
>>>>         Dear Arnaud,
>>>>         Thanks for your help.  I still can not find
>>>>         itkBinaryImageToWhitakerSparseLevelSetAdaptor.h in v4.0b1.
>>>>         git shows the version number, so it should be right.....
>>>>         Best,
>>>>         Hui
>>>>         On Thu, Sep 29, 2011 at 7:05 PM, Hui Tang
>>>>         <tanghui.seu at gmail.com <mailto:tanghui.seu at gmail.com>> wrote:
>>>>
>>>>             Hi arnaud thanks a loooooot for this! I will try, I
>>>>             will let you know how it works:) best hui
>>>>
>>>>             Op 29 sep. 2011 18:55 schreef "Gelas, Arnaud Joel
>>>>             Florent" <Arnaud_Gelas at hms.harvard.edu
>>>>             <mailto:Arnaud_Gelas at hms.harvard.edu>> het volgende:
>>>>
>>>>             > Hi Hui Tang,
>>>>             >
>>>>             > I am really happy to see you are interested and are
>>>>             testing the new level set infrastructure!
>>>>             >
>>>>             > If you get this error, I can only assume that you are
>>>>             now using the git master version of ITK, this file has
>>>>             been remove recently from the repository...
>>>>             > I would strongly recommend to stick to ITK tags,
>>>>             since API keeps on changing all around the place in the
>>>>             toolkit.
>>>>             >
>>>>             > Here is how you'd get the last tagged version:
>>>>             >
>>>>             > $ git fetch --all
>>>>             > $ git checkout -t origin/v4.0b1
>>>>             >
>>>>             > With this version, you should be able to find
>>>>             itkBinaryImageToWhitakerSparseLevelSetAdaptor.h
>>>>             >
>>>>             > If you are more adventurous, and want to be part of
>>>>             the development, you can use master, but expect API /
>>>>             files / class name to change.
>>>>             > You can also create a gerrit account to review
>>>>             patches (instructions are on the wiki). Note that all
>>>>             contributions / inputs on this effort are welcome!!
>>>>             >
>>>>             > Now regarding your question, this is really easy to
>>>>             make it happened in the v4 infrastructure. You have two
>>>>             possibilities:
>>>>             >
>>>>             > 1- grab the code from iternal or external term
>>>>             (depending on your case); copy the code; you modify and
>>>>             remove the part in which the mean gets updated.
>>>>             > and you add itkSetMacro to set the mean at the beginning.
>>>>             >
>>>>             > 2- you inherit, might need to change some method to
>>>>             virtual (if needed, let me know that'd be easy to fix).
>>>>             >
>>>>             > If you need more details on how to proceed for 1 or
>>>>             2, just let me know, we can definitively give you some
>>>>             more details on how to proceed.
>>>>             >
>>>>             > Thanks,
>>>>             >
>>>>             > Best,
>>>>             > Arnaud
>>>>             >
>>>>             > ________________________________________
>>>>             > From: Hui Tang [tanghui.seu at gmail.com
>>>>             <mailto:tanghui.seu at gmail.com>]
>>>>             > Sent: Thursday, September 29, 2011 12:20 PM
>>>>             > To: Gelas, Arnaud Joel Florent
>>>>             > Subject: Questions about ITK4
>>>>             >
>>>>             > Dear Arnaud,
>>>>             >
>>>>             > How are you?
>>>>             > I am using ITK4, but this headfile
>>>>             "itkBinaryImageToWhitakerSparseLevelSetAdaptor.h" can
>>>>             not be found in ITK4. Did I do anything wrong?
>>>>             > And maybe you could help me with another question:)
>>>>             in chanvase model, if my I would like to have a fixed
>>>>             average intensity ("c1") for the foreground how can I
>>>>             implement that using ITK4?
>>>>             >
>>>>             > Thanks so much.
>>>>             >
>>>>             > Looking forward to your reply.
>>>>             >
>>>>             > Best,
>>>>             >
>>>>             > Hui Tang
>>>>
>>>>
>>>
>>>
>>
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20111002/1a8d3399/attachment.htm>


More information about the Insight-users mailing list