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

Simon Rit simon.rit at creatis.insa-lyon.fr
Thu Jun 25 03:20:06 EDT 2015


So your projections are empty (default window/level is computed from the
min/max so if it's set to 0/0, all pixels equal 0) and it's not a surprise
that your reconstruction too. I don't know exactly where do your hnd files
come from but this is currently detected and treated as a Varian file
format in RTK, see the graph here
<http://www.openrtk.org/Doxygen/dot_inline_dotgraph_16.png>.
Simon

On Thu, Jun 25, 2015 at 9:15 AM, safdary mohsen <ieee.safdary at gmail.com>
wrote:

> Hi
> my screenshot is:
> [image: Inline image 1]
>
> On Thu, Jun 25, 2015 at 11:27 AM, Simon Rit <
> simon.rit at creatis.insa-lyon.fr> wrote:
>
>> Hi,
>> So you checked that projections are read but did you check what's read
>> with a viewer, e.g. vv <http://vv.creatis.insa-lyon.fr>? Can you also
>> tell us what's the offset and the spacing in the reader.mha file?
>> Simon
>>
>> On Thu, Jun 25, 2015 at 7:27 AM, safdary mohsen <ieee.safdary at gmail.com>
>> wrote:
>>
>>> Hi
>>>
>>>  what is genuine rtkfdk.exe ?
>>>
>>> source code is attached to mail and command line is:
>>> rtkfdk --geometry geometry.xml --regexp .*.hnd --path Scan0  --output
>>> slice30.mha  --verbose  --spacing 0.25,0.25,0.25 --dimension 1024,1,1024
>>> --origin -127.875,30,-127.875  --hardware cuda
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Wed, Jun 24, 2015 at 5:51 PM, Yang-Kyun Park <theday79 at gmail.com>
>>> wrote:
>>>
>>>> Hi Safdary,
>>>>
>>>> So you might have tried the genuine rtkfdk.exe for your recon. Would
>>>> you give me your command line you used?
>>>>
>>>> Yang
>>>> On Jun 24, 2015 3:48 AM, "safdary mohsen" <ieee.safdary at gmail.com>
>>>> wrote:
>>>>
>>>>> 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
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>
>>> _______________________________________________
>>> Rtk-users mailing list
>>> Rtk-users at public.kitware.com
>>> http://public.kitware.com/mailman/listinfo/rtk-users
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/rtk-users/attachments/20150625/60e7357b/attachment-0002.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 112590 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/rtk-users/attachments/20150625/60e7357b/attachment-0002.png>


More information about the Rtk-users mailing list