<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><br> <div style="font-family: times new roman, new york, times, serif; font-size: 12pt;">Hi ,<br><br> I am using the sobelOperator provided in itk. The following is my code snippet. I would like to understand<br><br>1. the default setting of the sobel and <br>2. how I can tune it. There dont seem to be too many member functions to manipulate the sobel.<br>3. If I need to use Erosion filter to thin the edges, how do I design a 'line' structuring element. My code ( also added below) does not seem to allow line (which I am guessing derives from Box, line = 1-D Box)<br><br>Any help/suggestions is truly appreciated.<br><br>Thank you,<br>Emma<br><br><br>typedef itk::ConstNeighborhoodIterator<ImageType> NeighborhoodIteratorType;<br> typedef itk::ImageRegionIterator<
ImageType> IteratorType;<br><br> itk::SobelOperator<PixelType, 2> sobel;<br> sobel.SetDirection(1); <br> itk::Size<2> radius_s;<br> radius_s.Fill(1);<br> sobel.CreateToRadius(radius_s);<br><br> <br> NeighborhoodIteratorType::RadiusType radius = sobel.GetRadius();<br> NeighborhoodIteratorType it( radius, my_image, my_image->GetRequestedRegion() );<br> itk::NeighborhoodInnerProduct<ImageType> inner_product;<br><br> ImageType::Pointer output = ImageType::New();<br> output->SetRegions(my_image->GetRequestedRegion());<br> output->Allocate();<br> <br> IteratorType out(output, my_image->GetRequestedRegion());<br>
<br> for (it.GoToBegin(), out.GoToBegin(); !it.IsAtEnd(); ++it, ++out)<br> {<br> out.Set( inner_product( it, sobel ) );<br> }<br><br> output->Update();<br> <br><br>//Erosion Structuring Element: The following fails to compile if I use '1' instead of '2'<br>typedef itk::FlatStructuringElement<2> StructuringElementType;<br> StructuringElementType::RadiusType element_radius;<br> element_radius.Fill(5);<br> <br> StructuringElementType strel = StructuringElementType::Box(element_radius);<br> </div> </div></body></html>