[ITK-users] Binary Contour Detection for 3D Image using ITK - Thickness -

Dženan Zukić dzenanz at gmail.com
Tue Feb 7 07:46:49 EST 2017


Try SetUsePixelSpacingOff.

On Feb 7, 2017 06:30, "Abdelkhalek Bakkari" <bakkari.abdelkhalek at hotmail.fr>
wrote:

> Dear ITK users,
>
>
> After using the BinaryFillHoleFilter for a 3D Dicom image (see attached),
> I adopted the BinaryContourImageFilter in order to obtain the contour of
> the image.  However, the thikness of the contour is very big. My goal is to
> obtain 1 pixel of thickness.
>
>
> The fragment of my code is :
>
>
> ------------------------------------------------------
>
> #include "itkImage.h"
> #include "itkImageFileReader.h"
> #include "itkImageFileWriter.h"
> #include "itkRescaleIntensityImageFilter.h"
> #include "itkCastImageFilter.h"
> #include "itkCannyEdgeDetectionImageFilter.h"
> #include <itkBinaryContourImageFilter.h>
> #include <vtkImageData.h>
> #include <vtkExtractVOI.h>
> #include <itkLabelToRGBImageFilter.h>
> #include <itkImageToVTKImageFilter.h>
> #include <itkVTKImageToImageFilter.h>
> #include <vtkSmartPointer.h>
>
> int main(int argc, char **argv)
> {
>
>        const unsigned int     Dimension = 3;
> typedef unsigned char InputPixelType;
> typedef unsigned char  OutputPixelType;
>
> typedef itk::Image<InputPixelType, Dimension>  InputImageType;
> typedef itk::Image<OutputPixelType, Dimension> OutputImageType;
>
> typedef itk::ImageFileReader< InputImageType > ReaderType;
> ReaderType::Pointer reader = ReaderType::New();
> reader->SetFileName("BinaryFillHoleImage.mha");
> reader->Update();
>
> //Slice by Slice Binary Contour
> // Binary Contour Filter
> typedef itk::BinaryContourImageFilter <InputImageType, InputImageType >
> binaryContourImageFilterType;
>
> binaryContourImageFilterType::Pointer binaryContourFilter =
> binaryContourImageFilterType::New ();
> binaryContourFilter->SetInput(reader->GetOutput());
> binaryContourFilter->SetFullyConnected(1); // true makes thicker contours
> binaryContourFilter->SetBackgroundValue(0);
> binaryContourFilter->SetForegroundValue(255); // the value of your binary
> mask
> binaryContourFilter->Update();
>
> typedef itk::RescaleIntensityImageFilter< InputImageType, InputImageType
> > RescaleType;
> RescaleType::Pointer rescaler = RescaleType::New();
> rescaler->SetInput( binaryContourFilter->GetOutput() );
> rescaler->SetOutputMinimum( 0 );
> rescaler->SetOutputMaximum( 255 );
>
> typedef itk::CastImageFilter< InputImageType, OutputImageType > FilterType;
> FilterType::Pointer filter = FilterType::New();
> filter->SetInput( rescaler->GetOutput() );
>
> // Save the contour
> {
> typedef itk::ImageFileWriter<OutputImageType> WriterType;
> WriterType::Pointer writer = WriterType::New();
> writer->SetFileName("Cannybinarycontour.mha");
> writer->SetInput(filter->GetOutput());
>
> try{
> writer->Update();
> }
> catch(itk::ExceptionObject &e)
> {
> std::cerr << e << std::endl;
> }
> }
>
>     return EXIT_SUCCESS;
> }
>
> ------------------------------------------------------
>
> Thank you in advance.
>
>
> Best regards,
>
>
> Abdelkhalek Bakkari
> Ph.D candidate in Computer Science
> Institute of Applied Computer Science
> Lodz University of Technology, Poland
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/insight-users/attachments/20170207/8afcd9d8/attachment.html>


More information about the Insight-users mailing list