[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