[ITK] Binary Dilate/Erode filter
Matt McCormick
matt.mccormick at kitware.com
Fri Jun 2 15:05:44 EDT 2017
Hi Jay,
I am not sure that I fully understand your question, then.
Matt
On Fri, Jun 2, 2017 at 11:01 AM, jay nanavati <jaysnanavati at hotmail.co.uk>
wrote:
> Hi Matt,
>
> I think your answer might be referring to my original question. But I
> could you please confirm my understanding on the painting of all of the SE
> points.
>
> Thanks,
> Jay
>
> On 2 Jun 2017, at 15:57, Matt McCormick <matt.mccormick at kitware.com>
> wrote:
>
> Hi Jay,
>
> Yes, outputRegion.IsInside(idx) means that we only are changing the region
> we are processing.
>
> HTH,
> Matt
>
> On Thu, Jun 1, 2017 at 7:26 AM, jay nanavati <jaysnanavati at hotmail.co.uk>
> wrote:
>
>> Hi Matt,
>>
>> Thanks for the help on this, it makes sense now.
>>
>> Also with regards to the following :
>>
>> typename NeighborIndexContainer::const_iterator itIdx;
>> NeighborIndexContainer & idxDifferenceSet =
>> this->GetDifferenceSet(centerPixelCode);
>> for ( itIdx = idxDifferenceSet.begin();
>> itIdx != idxDifferenceSet.end();
>> ++itIdx )
>> {
>> IndexType idx = tmpRegIndexIt.GetIndex() + *itIdx;
>> if ( outputRegion.IsInside(idx) )
>> {
>> output->SetPixel(idx, backgroundValue);
>> }
>> }
>>
>> Am I correct in understanding that the entire SE is being painted? and is
>> the reason why this is done at least one to take care of an edge case where
>> the radius of the SE is bigger than the surface being painted, which means
>> just painting the surface points wont actually be correct?
>>
>> Thanks,
>> Jay
>> ------------------------------
>> *From:* Matt McCormick <matt.mccormick at kitware.com>
>> *Sent:* 29 May 2017 18:41:13
>> *To:* jay nanavati
>> *Cc:* community at itk.org
>> *Subject:* Re: [ITK] Binary Dilate/Erode filter
>>
>> Hi Jay,
>>
>> The region will be padded by the radius. The cropping will possibly
>> shrink the region at the input image's boundaries.
>>
>> HTH,
>> Matt
>>
>> On Mon, May 29, 2017 at 12:54 PM, jay nanavati
>> <jaysnanavati at hotmail.co.uk> wrote:
>> > Hi - Looking at
>> > ITK\Modules\Filtering\BinaryMathematicalMorphology\include\i
>> tkBinaryErodeImageFilter.hxx,
>> > I am a bit confused with regards to the padding and cropping of the
>> regions
>> > for example, in the snippet below:
>> >
>> > ypename TInputImage::RegionType tmpRequestedRegion = outputRegion;
>> > typename TInputImage::RegionType paddedInputRegion =
>> > input->GetBufferedRegion();
>> > paddedInputRegion.PadByRadius(radius); // to support boundary
>> values
>> > InputSizeType padBy = radius;
>> > for ( i = 0; i < KernelDimension; ++i )
>> > {
>> > padBy[i] = ( padBy[i] > kernel.GetRadius(i) ? padBy[i] :
>> > kernel.GetRadius(i) );
>> > }
>> > tmpRequestedRegion.PadByRadius(padBy);
>> > tmpRequestedRegion.Crop(paddedInputRegion);
>> >
>> > It appears that tmpRequestedRegion is padded but then immediately
>> cropped,
>> > which means it will always be padded by a radius of 1 in each dimension
>> > anyways? Similar operations are performed when padding the
>> > inputRegionForThread:
>> >
>> > // Pad the input region by the kernel
>> > inputRegionForThread.PadByRadius( kernel.GetRadius() );
>> > inputRegionForThread.Crop( input->GetBufferedRegion() );
>> >
>> > It would be great if someone could guide me on this.
>> >
>> > Thanks,
>> > Jay
>> >
>> >
>> > _______________________________________________
>> > Community mailing list
>> > Community at itk.org
>> > http://public.kitware.com/mailman/listinfo/community
>> >
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/community/attachments/20170602/cfd03f9e/attachment.html>
More information about the Community
mailing list