[ITK] [ITK-users] Image conversion from 3D volume to 2D slices
Dženan Zukić
dzenanz at gmail.com
Wed May 8 14:17:20 EDT 2019
Definitions of RescaleFilterType and FilterType should be like this:
typedef itk::RescaleIntensityImageFilter< InputImageType, OutputImageType >
RescaleFilterType;
typedef itk::ExtractImageFilter< OutputImageType, OutputImageType >
FilterType;
On Wed, May 8, 2019 at 1:54 PM Shrabani Ghosh <srbn.ghosh99 at gmail.com>
wrote:
> I did it like this and I am getting images like this now.
> <http://itk-insight-users.2283740.n2.nabble.com/file/t396636/slice1.png>
>
>
>
> int main( int argc, char ** argv )
> {
>
> //typedef signed short InputPixelType;
> /*typedef unsigned char InputPixelType;
> typedef unsigned char OutputPixelType;*/
> typedef signed short InputPixelType;
> typedef unsigned char OutputPixelType;
> typedef itk::Image< InputPixelType, 3 > InputImageType;
> typedef itk::Image< OutputPixelType, 2 > OutputImageType;
> typedef itk::ImageFileReader< InputImageType > ReaderType;
> typedef itk::ImageFileWriter< OutputImageType > WriterType;
> const char * inputFilename = "G:/My Drive/BMES2019/New
> folder/subject1.nii";
>
> {
> int i = 1;
>
> std::string str="input//";
> std::string s1="slice";
> std::string s2 = std::to_string(i);
> std::string s3=".png";
> std::string s4=str+s1+s2+s3;
> const char *mycharp = s4.c_str();
>
> const char * outputFilename = mycharp;
>
> ReaderType::Pointer reader = ReaderType::New();
> WriterType::Pointer writer = WriterType::New();
>
> reader->SetFileName( inputFilename );
> writer->SetFileName( outputFilename );
>
> typedef itk::RescaleIntensityImageFilter< InputImageType, InputImageType
> > RescaleFilterType;
> RescaleFilterType::Pointer rescalefilter = RescaleFilterType::New();
> rescalefilter->SetInput( reader->GetOutput() );
>
> typedef itk::ExtractImageFilter< InputImageType,
> OutputImageType > FilterType;
> FilterType::Pointer filter = FilterType::New();
> filter->InPlaceOn();
> filter->SetDirectionCollapseToSubmatrix();
> reader->UpdateOutputInformation();
> InputImageType::RegionType inputRegion =
> reader->GetOutput()->GetLargestPossibleRegion();
>
> InputImageType::SizeType size = inputRegion.GetSize();
> size[2] = 0;
>
> InputImageType::IndexType start = inputRegion.GetIndex();
> const unsigned int sliceNumber = stoi(s2);//atoi(argv[3]);
> start[2] = sliceNumber;
>
> InputImageType::RegionType desiredRegion;
> desiredRegion.SetSize( size );
> desiredRegion.SetIndex( start );
>
> filter->SetExtractionRegion( desiredRegion );
>
> filter->SetInput( rescalefilter->GetOutput() );
> writer->SetInput( filter->GetOutput() );
> try
> {
> writer->Update();
> }
> catch( itk::ExceptionObject & err )
> {
> std::cerr << "ExceptionObject caught !" << std::endl;
> std::cerr << err << std::endl;
> getchar();
> return EXIT_FAILURE;
> }
> }
> return EXIT_SUCCESS;
> }
>
>
>
> --
> Sent from: http://itk-insight-users.2283740.n2.nabble.com/
> The ITK community is transitioning from this mailing list to
> discourse.itk.org. Please join us there!
> ________________________________
> 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:
> https://itk.org/mailman/listinfo/insight-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://itk.org/pipermail/community/attachments/20190508/317b2788/attachment.html>
-------------- next part --------------
The ITK community is transitioning from this mailing list to discourse.itk.org. Please join us there!
________________________________
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:
https://itk.org/mailman/listinfo/insight-users
More information about the Community
mailing list