[Insight-users] I want to segment blood vessels from a series of picture with ITK , please help me

Wes Turner wes.turner at kitware.com
Mon Aug 5 09:57:17 EDT 2013


Also, segmentation of vessels and other tubular structures is an active
area of research. You may want to look at http://www.tubetk.org/ (TubeTK)
it is an open source resource for segmenting vessels and surfaces bult on
top of ITK.

- Wes


On Sat, Aug 3, 2013 at 5:05 PM, Matt McCormick
<matt.mccormick at kitware.com>wrote:

> Hi zhq,
>
> It may be that you are running out of memory.  If that is the case,
> streaming can be applied to process the image in small chunks.  This can be
> achived with the StreamingImageFilter [1] or SetNumberOfStreamDivisions [2]
> on ImageFileWriter.
>
> Thanks,
> Matt
>
> [1] http://www.itk.org/Doxygen/html/classitk_1_1StreamingImageFilter.html
> [2]
> http://www.itk.org/Doxygen/html/classitk_1_1ImageFileWriter.html#a3dc8330ca50ef60844a15c1a81cc6ade
>
> On Fri, Aug 2, 2013 at 8:46 PM, zhq <15891495523 at 126.com> wrote:
>
>> Hello :
>>      I must make an apology for my yesterday email .
>>      With referencing to the [1] , I can successfully segment blood
>> vessels . Thank you very much . Although the result isn't very well , it
>> help me a lot .
>>      But , there still a problem . I have 100 dicom files , and I thought
>> read 100 files , and then segment those files . But , if I read more then
>> 43 files , an error happened .
>>      My code and the error are shown as follow .
>>
>> my code :
>> //use the itkHessian3DToVesselnessMeasureImageFilter method to segment
>> //bright blood vessel
>>  #include "itkImage.h"
>> #include "itkImageSeriesReader.h"
>> #include "itkImageFileWriter.h"
>> #include "itkNumericSeriesFileNames.h"
>> #include "itkGDCMImageIO.h"
>> #include <Windows.h>
>> #include "itkShiftScaleImageFilter.h"
>> #include "itkHessianRecursiveGaussianImageFilter.h"
>> #include "itkHessian3DToVesselnessMeasureImageFilter.h"
>> void main()
>> {
>> typedef unsigned short PixelType ;
>> const unsigned int Dimension = 3;
>> typedef itk::Image<PixelType , Dimension> ImageType ;
>>  typedef itk::ImageSeriesReader<ImageType> ReaderType ;
>> //there still some parameters can be set
>>  typedef itk::NumericSeriesFileNames NameGeneratorType ;
>> NameGeneratorType::Pointer nameGenerator = NameGeneratorType::New();
>>
>> nameGenerator->SetSeriesFormat("C:\\Users\\zhq\\Desktop\\data\\SNAP_CR\\E403434298\\E403434298S1901I%3d.dcm");
>> nameGenerator->SetStartIndex(301);
>>  nameGenerator->SetEndIndex(350);
>> nameGenerator->SetIncrementIndex(1);
>>   ReaderType::Pointer reader = ReaderType::New();
>> reader->SetImageIO(itk::GDCMImageIO::New());
>> reader->SetFileNames(nameGenerator->GetFileNames());
>>  reader->Update();
>> std::cout<<"reader updata"<<std::endl;
>>
>>  typedef itk::Image<double,3> doubleImageType ;
>> typedef itk::ShiftScaleImageFilter<ImageType,doubleImageType> ShiftFilter
>> ;
>>  ShiftFilter::Pointer filter = ShiftFilter::New();
>> filter->SetInput(reader->GetOutput());
>> filter->Update();
>>  std::cout<<"filter updata"<<std::endl ;
>>
>> typedef itk::HessianRecursiveGaussianImageFilter<doubleImageType>
>> HessianFilterType;
>>  HessianFilterType::Pointer hessianFilter = HessianFilterType::New();
>> hessianFilter->SetInput(filter->GetOutput());
>>  hessianFilter->Update();
>> std::cout<<"hessian Filter"<<std::endl ;
>> //if read 44 files , there is a error
>>  typedef itk::Hessian3DToVesselnessMeasureImageFilter<float>
>> VesselMeasureFilterType ;
>> VesselMeasureFilterType::Pointer vesselFilter =
>> VesselMeasureFilterType::New();
>>  vesselFilter->SetInput(hessianFilter->GetOutput());
>> vesselFilter->Update();
>> std::cout<<"vesselFilter update"<<std::endl;
>>
>> typedef itk::ImageFileWriter< itk::Image<float,3> > WriterType ;
>> WriterType::Pointer writer = WriterType::New();
>>  writer->SetInput(vesselFilter->GetOutput());
>> writer->SetFileName("C:\\Users\\zhq\\Desktop\\mydata.vtk");
>>  writer->Update();
>> std::cout<<"writer updata"<<std::endl ;
>>
>>  system("pause");
>> }
>>
>>
>>
>>
>>
>>
>> At 2013-08-02 11:24:29,"Matt McCormick" <matt.mccormick at kitware.com
>>
>>
>> > wrote:
>> >Hi,
>> >
>> >Here[1] is a very simple brain vessel segmentation example.
>> >
>> >For more advanced vessel segmentation methods, you may want to try
>> >TubeTK[2], which supports analysis and visualization with the ITK and
>> >VTK based 3DSlicer[3].
>> >
>> >Thanks,
>> >Matt
>> >
>> >[1] http://itk.org/ITKExamples/src/Filtering/ImageFeature/SegmentBloodVessels/Documentation.html
>>
>>
>> >[2] http://tubetk.org/
>> >[3] http://slicer.org/
>> >
>> >On Fri, Jul 26, 2013 at 9:19 PM, 章强 <15891495523 at 126.com> wrote:
>> >> Hello :
>> >>       there is a series of dcm format files which is the results of scanning
>> >> the brain . I want to segment blood vessels from these files with ITK , and
>> >> show it with VTK . Please give me a simple case . I have a  problem with
>> >> this project .
>> >>       how can I segment a specified region ? I know that ITK provide some
>> >> segmentation algorithm  , but they need the Index of seeds . Can I show the
>> >> picture with VTK fristly ,and then point out a seed in the picture ? And if
>> >> there are some algorithms which can segment volume data ?
>> >>
>> >>
>> >> 来自网易手机号码邮箱了解更多
>> >>
>> >> _____________________________________
>> >> Powered by www.kitware.com
>> >>
>> >> Visit other Kitware open-source projects at
>> >> http://www.kitware.com/opensource/opensource.html
>> >>
>> >> Kitware offers ITK Training Courses, for more information visit:
>> >> http://www.kitware.com/products/protraining.php
>> >>
>> >> Please keep messages on-topic and check the ITK FAQ at:
>> >> http://www.itk.org/Wiki/ITK_FAQ
>> >>
>> >> Follow this link to subscribe/unsubscribe:
>> >> http://www.itk.org/mailman/listinfo/insight-users
>> >>
>>
>>
>>
>> 来自网易手机号码邮箱了解更多 <http://shouji.163.com>
>>
>
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.php
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users
>
>


-- 
Wesley D. Turner, Ph.D.
Kitware, Inc.
Technical Leader
28 Corporate Drive
Clifton Park, NY 12065-8662
Phone: 518-881-4920
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20130805/54a52162/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/jpeg
Size: 51023 bytes
Desc: not available
URL: <http://www.itk.org/pipermail/insight-users/attachments/20130805/54a52162/attachment-0001.jpeg>


More information about the Insight-users mailing list