[Rtk-users] error on build rtk in visual studio 2012 when rtk use cuda
Yang K Park
theday79 at gmail.com
Thu Jun 25 11:37:10 EDT 2015
Hi Safdary,
I’m not an expert on this issue, but I guess there is something wrong with your CUDA system, since you said there is no problem with CPU based FDK.
(To make it clear, if you use following command line, the reconstruction was successfully done?)
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 cpu)
I think your graphic card might be fully compatible with CUDA v6.5, but why don’t you try to install some lower version of CUDA? (e.g. v4.5, with compatible graphic card as well.)
But I would rather wait for other guys’ suggestions first, because I’m not quite sure this could have any effects.)
Yang
From: safdary mohsen [mailto:ieee.safdary at gmail.com]
Sent: Thursday, June 25, 2015 3:33 AM
To: Simon Rit
Cc: Yang-Kyun Park; Cyril Mory; rtk-users at openrtk.org
Subject: Re: [Rtk-users] error on build rtk in visual studio 2012 when rtk use cuda
Yes all pixels are set to zero and hnd files come frome RTK page:
http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction but i used 86 projections insted of 686 projections
and
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();
)
On Thu, Jun 25, 2015 at 11:50 AM, Simon Rit <simon.rit at creatis.insa-lyon.fr <mailto:simon.rit at creatis.insa-lyon.fr> > wrote:
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 <mailto:ieee.safdary at gmail.com> > wrote:
Hi
my screenshot is:
On Thu, Jun 25, 2015 at 11:27 AM, Simon Rit <simon.rit at creatis.insa-lyon.fr <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto:theday79 at gmail.com> > wrote:
Hi Safdary,
Again, please cc <mailto:rtk-users at openrtk.org> 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: <mailto:theday79 at gmail.com> theday79 at gmail.com]
Sent: Monday, June 15, 2015 10:37 AM
To: 'safdary mohsen'
Cc: <mailto:rtk-users at openrtk.org> 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> mailto: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 list
Rtk-users at public.kitware.com <mailto:Rtk-users at public.kitware.com>
http://public.kitware.com/mailman/listinfo/rtk-users
_______________________________________________
Rtk-users mailing list
Rtk-users at public.kitware.com <mailto: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/558fae7a/attachment-0002.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 182913 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/rtk-users/attachments/20150625/558fae7a/attachment-0004.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.png
Type: image/png
Size: 112590 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/rtk-users/attachments/20150625/558fae7a/attachment-0005.png>
More information about the Rtk-users
mailing list