[Rtk-users] error on build rtk in visual studio 2012 when rtk use cuda

safdary mohsen ieee.safdary at gmail.com
Wed Jun 24 03:48:46 EDT 2015


Hi

I cheched projectionreader and i abtained that all projection are readed.
( by using:

typedef itk::ImageFileWriter<OutputImageType> WriterType;

WriterType::Pointer writer = WriterType::New();

writer->SetFileName( "reader.mha" );

writer->SetInput( reader->GetOutput() );

writer->Update();
)

and

geometry is work for cpu mode means outputs are ok .


I am confused for solving this problem!!!!!!!!!!!!!!!!!

On Tue, Jun 16, 2015 at 11:09 AM, Cyril Mory <
cyril.mory at creatis.insa-lyon.fr> wrote:

>  Hi Safdary,
>
> Just to be sure: have you tried reconstructing in a larger volume
> (something really huge), just to make sure you are not trying to
> reconstruct some portion of space where, indeed, there is nothing ?
> You can try that easily, just replace your spacing, dimension and origin
> with
> --spacing 16,16,16 --dimension 256,256,256 --origin -2040,-2040,-2040
> in your rtkfdk command line.
>
> Cyril
>
>
> On 06/15/2015 05:19 PM, safdary mohsen wrote:
>
>  Hi Yang
>
>
>  I am use rtkfdk.exe but the results are same as  my code,
>
> means all pixels are zero!!!
>
>
>  regards
>
>
>
> safdari
>
> On Mon, Jun 15, 2015 at 7:10 PM, Yang K Park <theday79 at gmail.com> wrote:
>
>>  Hi Safdary,
>>
>>
>>
>> Again, please cc rtk-users at openrtk.org when you send your email, since
>> other users (much better experts than me!) can give us any suggestions.
>>
>>
>>
>> Thanks.
>>
>>
>>
>> Yang
>>
>>
>>
>> *From:* Yang K Park [mailto:theday79 at gmail.com]
>> *Sent:* Monday, June 15, 2015 10:37 AM
>> *To:* 'safdary mohsen'
>> *Cc:* rtk-users at openrtk.org
>> *Subject:* RE: [Rtk-users] error on build rtk in visual studio 2012 when
>> rtk use cuda
>>
>>
>>
>> Hi Safdary,
>>
>>
>>
>> I recommend you to try rtkfdk.exe first (with cuda option) to see if it
>> works for you.
>>
>>
>>
>> The example of the command line would be:
>>
>>
>>
>> rtkfdk --geometry geom.xml --path proj_dir --regexp .*.his --output
>> test_output.mha --verbos  --spacing 1,1,1 --dimension 512,10,512 --origin
>> -127.875,29.5,-127.875 --hardware cuda
>>
>>
>>
>> If it works for your image, then you can mimic the original rtkfdk code
>> to make your own one.
>>
>>
>>
>> Good luck!
>>
>>
>>
>> Yang
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *From:* safdary mohsen [mailto:ieee.safdary at gmail.com
>> <ieee.safdary at gmail.com>]
>> *Sent:* Saturday, June 13, 2015 11:58 PM
>> *To:* Yang K Park
>> *Subject:* Re: [Rtk-users] error on build rtk in visual studio 2012 when
>> rtk use cuda
>>
>>
>>
>> Hi Yang
>>
>>
>>
>> I have tried to adjust the window/level to see something inside of the
>> image but all pixels set to zero.
>>
>> *My code is:*
>>
>> #define USE_CUDA
>>
>> int main(int , char **)
>>
>> {
>>
>> //// variable
>>
>> const unsigned int Dimension = 3;
>>
>> typedef float OutputPixelType;
>>
>> #ifdef USE_CUDA
>>
>> typedef itk::CudaImage< OutputPixelType, Dimension > OutputImageType;
>>
>> #else
>>
>> typedef itk::Image< OutputPixelType, Dimension > OutputImageType;
>>
>> #endif
>>
>>
>> ////////////////////////////////////////////////////////////////////////////////////////////////////
>>
>> // Generate file names of projections
>>
>> itk::RegularExpressionSeriesFileNames::Pointer names = itk::
>> RegularExpressionSeriesFileNames::New();
>>
>> names->SetDirectory(std::string("d://RTK/build/bin/Release/Scan1/"));
>>
>> names->SetRegularExpression(std::string("Proj_.*.hnd"));
>>
>>
>> ////////////////////////////////////////////////////////////////////////////////////////////////////
>>
>> //// geometry
>>
>> // Defines the RTK geometry object
>>
>> typedef rtk::ThreeDCircularProjectionGeometry GeometryType;
>>
>> GeometryType::Pointer geometry = GeometryType::New();
>>
>> // Projection matrices
>>
>> unsigned int numberOfProjections = 86;
>>
>> unsigned int firstAngle = 0;
>>
>> unsigned int angularArc = 360;
>>
>> unsigned int sid = 1000;
>>
>> unsigned int sdd = 1200;
>>
>> int isox = 0;
>>
>> int isoy = 0 ;
>>
>> for(unsigned int noProj=0; noProj<numberOfProjections; noProj++)
>>
>> {
>>
>> double angle = (float)firstAngle + (float)noProj * angularArc / (float
>> )numberOfProjections;
>>
>> geometry->AddProjection(sid,
>>
>> sdd,
>>
>> angle,
>>
>> isox,
>>
>> isoy);
>>
>> }
>>
>>
>> /////////////////////////////////////////////////////////////////////////////////////////////////////
>>
>>
>> ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>>
>> // Projections reader
>>
>> typedef rtk::ProjectionsReader< OutputImageType > ReaderType;
>>
>> ReaderType::Pointer reader = ReaderType::New();
>>
>> reader->SetFileNames(names->GetFileNames());
>>
>> ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>>
>>
>> // Create reconstructed image ////////////////////////////////////
>>
>> typedef rtk::ConstantImageSource< OutputImageType >
>> ConstantImageSourceType;
>>
>> ConstantImageSourceType::Pointer ImageSource = ConstantImageSourceType
>> ::New();
>>
>> ConstantImageSourceType::PointType origin;
>>
>> ConstantImageSourceType::SizeType sizeOutput;
>>
>> ConstantImageSourceType::SpacingType spacing;
>>
>> origin[0] = -127.75;
>>
>> origin[1] = -127.75;
>>
>> origin[2] = -127.75;
>>
>>
>>
>> sizeOutput[0] = 512;
>>
>> sizeOutput[1] = 512;
>>
>> sizeOutput[2] = 512;
>>
>> spacing[0] = .5;
>>
>> spacing[1] = .5;
>>
>> spacing[2] = .5;
>>
>> ImageSource->SetOrigin( origin );
>>
>> ImageSource->SetSpacing( spacing );
>>
>> ImageSource->SetSize( sizeOutput );
>>
>> ImageSource->SetConstant( 0. );
>>
>> // getchar(); //////////////////////////////////////
>>
>> /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>>
>>
>> std::cout << "Performing reconstruction" << std::endl;
>>
>> // FDK reconstruction filtering
>>
>> // FDK reconstruction filtering
>>
>> #ifdef USE_CUDA
>>
>> typedef rtk::CudaFDKConeBeamReconstructionFilter FDKType;
>>
>> #elif USE_OPENCL
>>
>> typedef rtk::OpenCLFDKConeBeamReconstructionFilter FDKType;
>>
>> #else
>>
>> typedef rtk::FDKConeBeamReconstructionFilter< OutputImageType > FDKType;
>>
>> #endif
>>
>> FDKType::Pointer feldkamp = FDKType::New();
>>
>> feldkamp->SetInput( 0, ImageSource->GetOutput() );
>>
>> feldkamp->SetInput( 1, reader->GetOutput());
>>
>> feldkamp->SetGeometry( geometry);
>>
>> TRY_AND_EXIT_ON_ITK_EXCEPTION( feldkamp->Update() );
>>
>> std::cout << "Writing output image" << std::endl;
>>
>> // Writer
>>
>> typedef itk::Image< float, 3 > ImageType;
>>
>> typedef itk::ImageFileWriter<ImageType> WriterType;
>>
>> WriterType::Pointer writer = WriterType::New();
>>
>> writer->SetFileName( "output11.mha" );
>>
>> writer->SetInput( feldkamp->GetOutput() );
>>
>> writer->Update();
>>
>>
>>
>> getchar();
>>
>> return 0;
>>
>> }
>>
>
>
>
> _______________________________________________
> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/rtk-users/attachments/20150624/086c1382/attachment-0002.html>


More information about the Rtk-users mailing list