[Insight-users] Image filtering and feature detection-

Dan Mueller dan.muel at gmail.com
Thu Aug 19 15:59:00 EDT 2010


Hi Ryan,

(Sorry for the flood of emails).

I just had a closer look at your connected component image. It almost
looks like you have saved the binary image as a lossy compressed JPG
image, and then read that image from disk and passed it to the
connected component filter. Is this what you did? If so, note that you
should avoid using lossy compression (eg. JPG image format) for
binary/label images. Instead using PNG or MHD/MHA.

Cheers, Dan

On 19 August 2010 21:54, Dan Mueller <dan.muel at gmail.com> wrote:
> Hi Ryan,
>
> My previous email was bounced. See response below, now with smaller attachments.
>
> ---------- Forwarded message ----------
> From: Dan Mueller <dan.muel at gmail.com>
> Date: 19 August 2010 21:51
> Subject: Re: [Insight-users] Image filtering and feature detection-
> To: Ryan Smith <ryanleesmith at gmail.com>
> Cc: insight-users at itk.org
>
>
> Hi Ryan,
>
> 1. The output of the connected component filter you provided does not
> seem right. Are you doubly sure you are passing the binary image to
> the connected component filter? I have attached the output you should
> get.
>
> 2. That said, if you just need to extract seeds for further
> processing, I don't think you need to use the connected component
> filter. This filter simply assigns a unique identifier (Eg. 1, 2, 3,
> 4, etc) to each component or "blob" in the image. One way of obtaining
> seeds is to take the binary image, compute the distance transform (try
> Code/BasicFilters/itkSignedMaurerDistanceMapImageFilter.h), and the
> apply the regional maxima filter
> (Code/Review/itkRegionalMaximaImageFilter.h). I have attached the
> output from this chain.
>
> HTH
>
> Cheers, Dan
>
> On 19 August 2010 21:20, Ryan Smith <ryanleesmith at gmail.com> wrote:
>> Hi Dan-
>> The white top hat worked great at removing my extra features, and the binary
>> thresholding cleaned everything else up, however I am still having some
>> trouble using the ConnectedComponentFilter.  I found this article which is
>> trying to do exactly what I am attempting:
>> http://www.itk.org/pipermail/insight-users/2007-January/020532.html
>> I want the position and full width half max (FWHM) of each intensity maxima
>> in the image.  I tried using the connected component filter and got the
>> output found at the following URL: http://i.imgur.com/TCqL8.png
>> It appears each feature is being tagged as several different features.  Just
>> to confirm I am sending the binary thresholded image, not the
>> original Gaussian spot image into the ConnectedComponentFilter.
>> I feel like I am going down the wrong path here.  I don't necessarily need
>> to segment my points, I just need to clean up the image (done) and
>> potentially use techniques such as those in other ITK problems I have read
>> to find 'seed points' for some region growing algorithms based on the
>> intensity maxima of my image.  Any thoughts? Thanks in advance-
>> -Ryan
>>
>>
>> On Sun, Aug 15, 2010 at 11:22 PM, Dan Mueller <dan.muel at gmail.com> wrote:
>>>
>>> Hi Ryan,
>>>
>>> You might consider using the "white top hat" operation to remove the
>>> background:
>>>    WhiteTopHat = I - Dilate( Erode(I) )
>>> where I is the image, Erode is morphological erosion, and Dilate is
>>> morphological dilation.
>>>
>>> You can find an implementation of this operation in:
>>>    Code/BasicFilters/itkWhiteTopHatImageFilter.h
>>>
>>> Once the background is removed, a simple global intensity threshold
>>> should suffice to segment the spots. The following filters may be
>>> helpful for that task:
>>>    Code/BasicFilters/itkBinaryThresholdImageFilter.h
>>>    Code/Algorithms/itkOtsuThresholdImageFilter.h
>>>    Code/Review/itkKappaSigmaThresholdImageFilter.h
>>>
>>> HTH
>>>
>>> Cheers, Dan
>>>
>>> On 15 August 2010 23:04, Ryan Smith <ryanleesmith at gmail.com> wrote:
>>> > Hi-
>>> > I am attempting to remove the background and detect features in the
>>> > following image:
>>> > http://i.imgur.com/wd3Yt.jpg
>>> >
>>> > I have a series of images in which the white circular spots travel and
>>> > the
>>> > white vertical stripes remain stationary.  I would like to apply some
>>> > simple
>>> > background subtraction to remove the white stripes then autodetect the
>>> > intensity maxima associated with the circular features.
>>> >
>>> > A brief search provided the following results which address similar
>>> > problems
>>> > using itkConnectedComponentFilter.  Is this what I want after my
>>> > background
>>> > is subtracted?  Any example code on how to get the location and sizes of
>>> > the
>>> > components? Thanks in advance-
>>> >
>>> > -Ryan
>


More information about the Insight-users mailing list