From padraig.looney at gmail.com Mon Sep 8 08:43:27 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Mon, 8 Sep 2014 13:43:27 +0100 Subject: [Rtk-users] RTK helloworld Message-ID: Dear all, I am trying to get the HelloWorld example running but I get a large number of errors after the build. I am using ITK-4.6 and have followed the instructions as per http://wiki.openrtk.org/index.php/RTK_wiki_help#Tutorial_0_-_Building_an_HelloWorld_application_with_RTK My executable is built and is working but I have hundreds of errors. The first few are. CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::MemoryAllocationError::MemoryAllocationError(std::string const&, unsigned int, std::string const&, std::string const&)': main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x35): undefined reference to `itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, std::string const&, std::string const&)' main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x40): undefined reference to `vtable for itk::MemoryAllocationError' CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::Object::SetObjectName(std::string)': main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x25): undefined reference to `itk::Object::GetDebug() const' main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x2e): undefined reference to `itk::Object::GetGlobalWarningDisplay()' main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x12e): undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::DataObject::SetRealTimeStamp(itk::RealTimeStamp)': main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x25): undefined reference to `itk::Object::GetDebug() const' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x2e): undefined reference to `itk::Object::GetGlobalWarningDisplay()' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0xf1): undefined reference to `itk::operator<<(std::ostream&, itk::RealTimeStamp const&)' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x12e): undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x169): undefined reference to `itk::RealTimeStamp::operator!=(itk::RealTimeStamp const&) const' Thanks P?draig -------------- next part -------------- An HTML attachment was scrubbed... URL: From julien.jomier at kitware.com Mon Sep 8 09:11:50 2014 From: julien.jomier at kitware.com (Julien Jomier) Date: Mon, 08 Sep 2014 15:11:50 +0200 Subject: [Rtk-users] RTK helloworld In-Reply-To: References: Message-ID: <540DAB16.3050904@kitware.com> Dear Padraig, When you say "built and is working but I have hundreds of errors" do you mean that you have successfully compiled and linked the example? It seems that your example cannot find the ITK libraries. Are you building ITK and RTK using BUILD_SHARED_LIBS to ON in CMake? Julien On 08/09/2014 14:43, Padraig Looney wrote: > Dear all, > > I am trying to get the HelloWorld example running but I get a large > number of errors after the build. I am using ITK-4.6 and have followed > the instructions as per > > http://wiki.openrtk.org/index.php/RTK_wiki_help#Tutorial_0_-_Building_an_HelloWorld_application_with_RTK > > My executable is built and is working but I have hundreds of errors. The > first few are. > > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::MemoryAllocationError::MemoryAllocationError(std::string const&, > unsigned int, std::string const&, std::string const&)': > main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x35): > undefined reference to > `itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, > std::string const&, std::string const&)' > main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x40): > undefined reference to `vtable for itk::MemoryAllocationError' > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::Object::SetObjectName(std::string)': > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x2e): > undefined reference to `itk::Object::GetGlobalWarningDisplay()' > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x12e): > undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::DataObject::SetRealTimeStamp(itk::RealTimeStamp)': > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x2e): > undefined reference to `itk::Object::GetGlobalWarningDisplay()' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0xf1): > undefined reference to `itk::operator<<(std::ostream&, > itk::RealTimeStamp const&)' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x12e): > undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x169): > undefined reference to > `itk::RealTimeStamp::operator!=(itk::RealTimeStamp const&) const' > > > Thanks > P?draig > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > From julien.jomier at kitware.com Mon Sep 8 09:32:47 2014 From: julien.jomier at kitware.com (Julien Jomier) Date: Mon, 08 Sep 2014 15:32:47 +0200 Subject: [Rtk-users] RTK helloworld In-Reply-To: References: <540DAB16.3050904@kitware.com> Message-ID: <540DAFFF.4080103@kitware.com> I'm guessing the ITK shared libs cannot be found. Can you specify the path where the ITK libraries (.so) are located in the LD_LIBRARY_PATH before your run make? Julien On 08/09/2014 15:23, Padraig Looney wrote: > It has successfully compiled using ccmake and make. I presume that has > successfully linked it. The errors were produced with make. > > Both the SharedLibs variables are set to ON. > > I've tried building RTK two different ways. Once by allowing cmake to > find ITK. This way ITK_DIR is set to /usr/local/lib/cmake/ITK-4.6 > > The other way I built it was by setting ITK_DIR to be the location of > the build directory. Which is what I understand from the wiki > > "When CMake asks for the ITK_DIR, specify the binary directory where ITK > is built and choose CMAKE_BUILD_TYPE (default: Release)" > > It didn't make any difference though. > > On Mon, Sep 8, 2014 at 2:11 PM, Julien Jomier > wrote: > > Dear Padraig, > > When you say "built and is working but I have hundreds of errors" do > you mean that you have successfully compiled and linked the example? > It seems that your example cannot find the ITK libraries. Are you > building ITK and RTK using BUILD_SHARED_LIBS to ON in CMake? > > Julien > > > On 08/09/2014 14:43, Padraig Looney wrote: > > Dear all, > > I am trying to get the HelloWorld example running but I get a large > number of errors after the build. I am using ITK-4.6 and have > followed > the instructions as per > > http://wiki.openrtk.org/index.__php/RTK_wiki_help#Tutorial_0_-___Building_an_HelloWorld___application_with_RTK > > > My executable is built and is working but I have hundreds of > errors. The > first few are. > > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::MemoryAllocationError::__MemoryAllocationError(std::__string > const&, > unsigned int, std::string const&, std::string const&)': > main.cpp:(.text.___ZN3itk21MemoryAllocationErrorC__2ERKSsjS2_S2_[___ZN3itk21MemoryAllocationErrorC__5ERKSsjS2_S2_]+0x35): > undefined reference to > `itk::ExceptionObject::__ExceptionObject(std::string const&, > unsigned int, > std::string const&, std::string const&)' > main.cpp:(.text.___ZN3itk21MemoryAllocationErrorC__2ERKSsjS2_S2_[___ZN3itk21MemoryAllocationErrorC__5ERKSsjS2_S2_]+0x40): > undefined reference to `vtable for itk::MemoryAllocationError' > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::Object::SetObjectName(__std::string)': > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x2e): > undefined reference to `itk::Object::__GetGlobalWarningDisplay()' > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x12e): > undefined reference to > `itk::__OutputWindowDisplayDebugText(__char const*)' > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::DataObject::__SetRealTimeStamp(itk::__RealTimeStamp)': > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x2e): > undefined reference to `itk::Object::__GetGlobalWarningDisplay()' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0xf1): > undefined reference to `itk::operator<<(std::ostream&__, > itk::RealTimeStamp const&)' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x12e): > undefined reference to > `itk::__OutputWindowDisplayDebugText(__char const*)' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x169): > undefined reference to > `itk::RealTimeStamp::operator!__=(itk::RealTimeStamp const&) const' > > > Thanks > P?draig > > > _________________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/__mailman/listinfo/rtk-users > > > From theday79 at gmail.com Mon Sep 8 23:22:32 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Mon, 8 Sep 2014 23:22:32 -0400 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> Message-ID: <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> Hi all, I've been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven't had any problem with full scan images (360 degree scan), I found that rtkfdk doesn't work well with my short scan images obtained from our Elekta XVI system. I've used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn't change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: short_scan.PNG Type: image/png Size: 166828 bytes Desc: not available URL: From simon.rit at creatis.insa-lyon.fr Tue Sep 9 01:24:25 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Tue, 9 Sep 2014 07:24:25 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> Message-ID: Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > _______________________________________________ > 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: From padraig.looney at gmail.com Tue Sep 9 06:05:01 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 9 Sep 2014 11:05:01 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction Message-ID: When I try to run the "FirstReconstruction" example I am getting a segmentation fault. The following is the output from gdb Program received signal SIGSEGV, Segmentation fault. 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue Sep 9 06:32:29 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 09 Sep 2014 12:32:29 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: Message-ID: <540ED73D.3080003@creatis.insa-lyon.fr> Hi Padraig, With so little information, there isn't much we can do to help you. I usually track segfaults by compiling in Debug mode (by setting "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT Creator (any decent IDE will do just fine, and should stop when the segfault occurs, allowing you to trace it back) Good luck, Cyril On 09/09/2014 12:05 PM, Padraig Looney wrote: > When I try to run the "FirstReconstruction" example I am getting a > segmentation fault. > > The following is the output from gdb > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () > > > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Tue Sep 9 08:40:48 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Tue, 9 Sep 2014 14:40:48 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing wrote: > Hi all, > > > > We have experienced the same problem as YangKyun in our institution. Find > attached a screendump of a short scan, and the ElektaGeometry file. We are > reconstructing on CPU using RTK 1.0.0, and have encountered the strange > behavior a couple of times without being able to find any patterns. Our > images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree > scan with the S20 filter on an Elekta XVI machine. > > > > Hope this helps in tracking down the problem. > > > > > > Best regards, > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *P? vegne > af *Simon Rit > *Sendt:* 9. september 2014 07:24 > *Til:* Yang Kyun Park > *Cc:* rtk-users at public.kitware.com > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Hi, > > Everything looks correct in what you did. What version of RTK did you use? > It looks like a bug in the angular weighting of the projections coming > from the discretization of the integral on the gantry angle. Could you send > us a copy of ElektaGeometry.xml and tell us what was the dimension of the > projections? We will look into it. > Thanks for the report, > Simon > > > > On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > > _______________________________________________ > 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: From theday79 at gmail.com Tue Sep 9 11:43:32 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Tue, 9 Sep 2014 11:43:32 -0400 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: <002e01cfcc44$d01763f0$70462bd0$@gmail.com> Hi Simon, Thank your for the prompt update. Now it works perfectly! Best, YangKyun From: simon.rit at gmail.com [mailto:simon.rit at gmail.com] On Behalf Of Simon Rit Sent: Tuesday, September 09, 2014 8:41 AM To: Rune Slot Thing Cc: Yang Kyun Park; rtk-users at public.kitware.com Subject: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: Hi all, We have experienced the same problem as YangKyun in our institution. Find attached a screendump of a short scan, and the ElektaGeometry file. We are reconstructing on CPU using RTK 1.0.0, and have encountered the strange behavior a couple of times without being able to find any patterns. Our images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree scan with the S20 filter on an Elekta XVI machine. Hope this helps in tracking down the problem. Best regards, Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: Rtk-users [mailto:rtk-users-bounces at public.kitware.com ] P? vegne af Simon Rit Sendt: 9. september 2014 07:24 Til: Yang Kyun Park Cc: rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park > wrote: Hi all, I?ve been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven?t had any problem with full scan images (360 degree scan), I found that rtkfdk doesn?t work well with my short scan images obtained from our Elekta XVI system. I?ve used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn?t change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun _______________________________________________ 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: From Rune.Slot.Thing at rsyd.dk Wed Sep 10 04:39:05 2014 From: Rune.Slot.Thing at rsyd.dk (Rune Slot Thing) Date: Wed, 10 Sep 2014 08:39:05 +0000 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> Hi Simon, I asked our IT-guy to recompile the new commit, but unfortunately he was unsuccessful. Here is what he writes: I've downloaded the master from git today and compiled in the VS 2008 pro 64bit on Win7 with itk 4.3.0 and fftw. The new fix does not compile because of issues on line 92-99 in rtkParkerShortScanImageFilter.txx error C2678: binary '==' : no operator found which takes a left-hand operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no acceptable conversion) and on line 73 error C2923: 'itk::Vector' : 'rtk::DaubechiesWaveletsConvolutionImageFilter::Pass' is not a valid template type argument for parameter 'T' f:\programmering\cxx\lib\rtk\master-2014-09-10\code\rtkDaubechiesWaveletsConvolutionImageFilter.h 73 rtkadmmwavelets Is it a typo with to identical lines (LINE 93 = 94)? Thanks again for your prompt help. Best regards, Rune Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: simon.rit at gmail.com [mailto:simon.rit at gmail.com] P? vegne af Simon Rit Sendt: 9. september 2014 14:41 Til: Rune Slot Thing Cc: Yang Kyun Park; rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: Hi all, We have experienced the same problem as YangKyun in our institution. Find attached a screendump of a short scan, and the ElektaGeometry file. We are reconstructing on CPU using RTK 1.0.0, and have encountered the strange behavior a couple of times without being able to find any patterns. Our images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree scan with the S20 filter on an Elekta XVI machine. Hope this helps in tracking down the problem. Best regards, Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: Rtk-users [mailto:rtk-users-bounces at public.kitware.com] P? vegne af Simon Rit Sendt: 9. september 2014 07:24 Til: Yang Kyun Park Cc: rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park > wrote: Hi all, I?ve been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven?t had any problem with full scan images (360 degree scan), I found that rtkfdk doesn?t work well with my short scan images obtained from our Elekta XVI system. I?ve used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn?t change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun _______________________________________________ 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: From wuchao04 at gmail.com Wed Sep 10 07:35:27 2014 From: wuchao04 at gmail.com (Chao Wu) Date: Wed, 10 Sep 2014 13:35:27 +0200 Subject: [Rtk-users] coordinates of 3D volume Message-ID: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 08:38:43 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 14:38:43 +0200 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: Message-ID: Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu wrote: > Hi all, > > I see that rtk use certain industrial standard for the coordinates of 2D > projections and 3D volumes. However in medical imaging, the xy planes of a > volume are usually transaxial slices while the 3rd dimension is aligned > with the axis of rotation. I would like to switch to this coordinates in my > own code. Is there anyone who can give me some comments and suggestions > about where to start? Thanks. > > Regards, > Chao > > _______________________________________________ > 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: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 08:43:54 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 14:43:54 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> Message-ID: I wonder why it compiles on Linux... but anyway, sorry, it's been fixed. On Wed, Sep 10, 2014 at 10:39 AM, Rune Slot Thing wrote: > Hi Simon, > > > > I asked our IT-guy to recompile the new commit, but unfortunately he was > unsuccessful. Here is what he writes: > > > > I've downloaded the master from git today and compiled in the VS 2008 pro > 64bit on Win7 with itk 4.3.0 and fftw. > > > > The new fix does not compile because of issues on line 92-99 in > rtkParkerShortScanImageFilter.txx > > > > error C2678: binary '==' : no operator found which takes a left-hand > operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no > acceptable conversion) > > > > and on line 73 > > > > error C2923: 'itk::Vector' : > 'rtk::DaubechiesWaveletsConvolutionImageFilter::Pass' is not a > valid template type argument for parameter 'T' > f:\programmering\cxx\lib\rtk\master-2014-09-10\code\rtkDaubechiesWaveletsConvolutionImageFilter.h > 73 rtkadmmwavelets > > Is it a typo with to identical lines (LINE 93 = 94)? > > > > Thanks again for your prompt help. > > > > Best regards, > > Rune > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* simon.rit at gmail.com [mailto:simon.rit at gmail.com] *P? vegne af *Simon > Rit > *Sendt:* 9. september 2014 14:41 > *Til:* Rune Slot Thing > *Cc:* Yang Kyun Park; rtk-users at public.kitware.com > > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Thank you Rune, this was very helpful. The pattern is that several > projections have the same gantry angle on one side of the gantry angle gap. > Something that happens with Elekta Synergy... I think that the bug has been > fixed: > > https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f > > > > On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: > > Hi all, > > > > We have experienced the same problem as YangKyun in our institution. Find > attached a screendump of a short scan, and the ElektaGeometry file. We are > reconstructing on CPU using RTK 1.0.0, and have encountered the strange > behavior a couple of times without being able to find any patterns. Our > images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree > scan with the S20 filter on an Elekta XVI machine. > > > > Hope this helps in tracking down the problem. > > > > > > Best regards, > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *P? vegne > af *Simon Rit > *Sendt:* 9. september 2014 07:24 > *Til:* Yang Kyun Park > *Cc:* rtk-users at public.kitware.com > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Hi, > > Everything looks correct in what you did. What version of RTK did you use? > It looks like a bug in the angular weighting of the projections coming > from the discretization of the integral on the gantry angle. Could you send > us a copy of ElektaGeometry.xml and tell us what was the dimension of the > projections? We will look into it. > Thanks for the report, > Simon > > > > On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > > _______________________________________________ > 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: From theday79 at gmail.com Wed Sep 10 09:47:17 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Wed, 10 Sep 2014 09:47:17 -0400 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: Message-ID: <003801cfccfd$bd111800$37334800$@gmail.com> Hi Chao, I had the same issue on my work and I?ve managed to fix it by the following codes. I?m not sure this is the optimal way to do it but at least it worked in my case. (Or you can transform it in 3D Slicer. In transform menu, you need to apply the following matrix: 0 0 -1 0 1 0 0 0 0 1 0 0 0 0 0 1 to the target image, harden the transform then export the image.) Best, YangKyun // OutputImageType = // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction //Same image type from original image -3D & float OutputImageType::IndexType start_trans; start_trans[0] = 0; start_trans[1] = 0; start_trans[2] = 0; OutputImageType::SizeType size_trans; size_trans[0] = sizeOutput[0]; // X //410 size_trans[1] = sizeOutput[2]; //Y // 410 size_trans[2] = sizeOutput[1]; //Z // 120? OutputImageType::SpacingType spacing_trans; spacing_trans[0] = spacing[0]; spacing_trans[1] = spacing[2]; spacing_trans[2] = spacing[1]; OutputImageType::PointType Origin_trans; Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; OutputImageType::RegionType region_trans; region_trans.SetSize(size_trans); region_trans.SetIndex(start_trans); /* 2) Prepare Target image */ OutputImageType::Pointer targetImg = streamerBP->GetOutput(); /* 3) Configure transform */ typedef itk::Euler3DTransform< double > TransformType; TransformType::Pointer transform = TransformType::New(); TransformType::ParametersType param; param.SetSize(6); //MAXIMUM PARAM NUMBER: 6!!! param.put(0, 0.0); //rot X // 0.5 = PI/2 param.put(1, itk::Math::pi/2.0);//rot Y param.put(2, itk::Math::pi/-2.0);//rot Z param.put(3, 0.0); // Trans X mm param.put(4, 0.0); // Trans Y mm param.put(5, 0.0); // Trans Z mm TransformType::ParametersType fixedParam(3); //rotation center fixedParam.put(0,0); fixedParam.put(1,0); fixedParam.put(2,0); transform->SetParameters(param); transform->SetFixedParameters(fixedParam); //Center of the Transform cout << "Transform matrix:" << " " << endl; cout << transform->GetMatrix() << std::endl; typedef itk::ResampleImageFilter ResampleFilterType; ResampleFilterType::Pointer resampler = ResampleFilterType::New(); //OutputImageType::RegionType fixedImg_Region = fixedImg->GetLargestPossibleRegion().GetSize(); resampler->SetInput(targetImg); resampler->SetSize(size_trans); resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large Canvas resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 resampler->SetOutputDirection( targetImg->GetDirection() ); //image normal? resampler->SetTransform(transform); //LR flip cout << "LR flip filter is being applied" << endl; typedef itk::FlipImageFilter< OutputImageType > FilterType; FilterType::Pointer flipFilter = FilterType::New(); typedef FilterType::FlipAxesArrayType FlipAxesArrayType; FlipAxesArrayType arrFlipAxes; arrFlipAxes[0] = 1; arrFlipAxes[1] = 0; arrFlipAxes[2] = 0; flipFilter->SetFlipAxes(arrFlipAxes); flipFilter->SetInput(resampler->GetOutput()); flipFilter->Update(); //Use flipFilter->GetOutput() for further process From: Rtk-users [mailto:rtk-users-bounces at public.kitware.com] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 8:39 AM To: Chao Wu Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu > wrote: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao _______________________________________________ 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: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 10:50:00 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 16:50:00 +0200 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: <003801cfccfd$bd111800$37334800$@gmail.com> References: <003801cfccfd$bd111800$37334800$@gmail.com> Message-ID: This option works but there is a risk of an additional interpolation by the resampler and it costs some computing time. The other option I suggested requires to modify the transform parameter of the source (in this example, add constantImageSource->SetDirection(transform->GetMatrix()); where transform is that of Yang's example, then use itk::ChangeImageInformation to reset the transform to identity. On Wed, Sep 10, 2014 at 3:47 PM, Yang Kyun Park wrote: > Hi Chao, > > > > I had the same issue on my work and I?ve managed to fix it by the > following codes. > > I?m not sure this is the optimal way to do it but at least it worked in my > case. > > > > (Or you can transform it in 3D Slicer. > > In transform menu, you need to apply the following matrix: > > 0 0 -1 0 > > 1 0 0 0 > > 0 1 0 0 > > 0 0 0 1 > > to the target image, harden the transform then export the image.) > > > > Best, > > YangKyun > > > > > > // OutputImageType = > > // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction > > > > //Same image type from original image -3D & float > > OutputImageType::IndexType start_trans; > > start_trans[0] = 0; > > start_trans[1] = 0; > > start_trans[2] = 0; > > > > OutputImageType::SizeType size_trans; > > size_trans[0] = sizeOutput[0]; // X //410 > > size_trans[1] = sizeOutput[2]; //Y // 410 > > size_trans[2] = sizeOutput[1]; //Z // 120? > > > > OutputImageType::SpacingType spacing_trans; > > spacing_trans[0] = spacing[0]; > > spacing_trans[1] = spacing[2]; > > spacing_trans[2] = spacing[1]; > > > > OutputImageType::PointType Origin_trans; > > Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; > > Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; > > Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; > > > > OutputImageType::RegionType region_trans; > > region_trans.SetSize(size_trans); > > region_trans.SetIndex(start_trans); > > > > /* 2) Prepare Target image */ > > OutputImageType::Pointer targetImg = streamerBP->GetOutput(); > > > > /* 3) Configure transform */ > > typedef itk::Euler3DTransform< double > TransformType; > > TransformType::Pointer transform = TransformType::New(); > > > > TransformType::ParametersType param; > > param.SetSize(6); > > //MAXIMUM PARAM NUMBER: 6!!! > > param.put(0, 0.0); //rot X // 0.5 = PI/2 > > param.put(1, itk::Math::pi/2.0);//rot Y > > param.put(2, itk::Math::pi/-2.0);//rot Z > > param.put(3, 0.0); // Trans X mm > > param.put(4, 0.0); // Trans Y mm > > param.put(5, 0.0); // Trans Z mm > > > > TransformType::ParametersType fixedParam(3); //rotation center > > fixedParam.put(0,0); > > fixedParam.put(1,0); > > fixedParam.put(2,0); > > > > transform->SetParameters(param); > > transform->SetFixedParameters(fixedParam); //Center of the > Transform > > > > cout << "Transform matrix:" << " " << endl; > > cout << transform->GetMatrix() << std::endl; > > > > typedef itk::ResampleImageFilter > ResampleFilterType; > > ResampleFilterType::Pointer resampler = ResampleFilterType::New(); > > //OutputImageType::RegionType fixedImg_Region = > fixedImg->GetLargestPossibleRegion().GetSize(); > > > > resampler->SetInput(targetImg); > > resampler->SetSize(size_trans); > > resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large > Canvas > > resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 > > resampler->SetOutputDirection( targetImg->GetDirection() ); //image > normal? > > resampler->SetTransform(transform); > > > > //LR flip > > > > cout << "LR flip filter is being applied" << endl; > > > > typedef itk::FlipImageFilter< OutputImageType > FilterType; > > > > FilterType::Pointer flipFilter = FilterType::New(); > > typedef FilterType::FlipAxesArrayType FlipAxesArrayType; > > > > FlipAxesArrayType arrFlipAxes; > > arrFlipAxes[0] = 1; > > arrFlipAxes[1] = 0; > > arrFlipAxes[2] = 0; > > > > flipFilter->SetFlipAxes(arrFlipAxes); > > flipFilter->SetInput(resampler->GetOutput()); > > flipFilter->Update(); > > > > //Use flipFilter->GetOutput() for further process > > > > > > > > *From:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *On > Behalf Of *Simon Rit > *Sent:* Wednesday, September 10, 2014 8:39 AM > *To:* Chao Wu > *Cc:* rtk-users at openrtk.org > *Subject:* Re: [Rtk-users] coordinates of 3D volume > > > > Hi, > > I wish there was a single industrial standard... You have the DICOM > standard in mind and I used an IEC standard (see wiki). You can play with > the --direction option to orientate the voxel axes of your image (see > itk::Image documentation) and then reset the direction of your output image > to identity, I think that will do what you want. > > Simon > > > > On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu wrote: > > Hi all, > > > > I see that rtk use certain industrial standard for the coordinates of 2D > projections and 3D volumes. However in medical imaging, the xy planes of a > volume are usually transaxial slices while the 3rd dimension is aligned > with the axis of rotation. I would like to switch to this coordinates in my > own code. Is there anyone who can give me some comments and suggestions > about where to start? Thanks. > > > > Regards, > > Chao > > > _______________________________________________ > 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: From theday79 at gmail.com Wed Sep 10 10:56:28 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Wed, 10 Sep 2014 10:56:28 -0400 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: <003801cfccfd$bd111800$37334800$@gmail.com> Message-ID: <005e01cfcd07$6783cdb0$368b6910$@gmail.com> Hi Simon, Thanks for the good tip. Let me try out your approach too! YangKyun From: simon.rit at gmail.com [mailto:simon.rit at gmail.com] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 10:50 AM To: Yang Kyun Park Cc: Chao Wu; rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume This option works but there is a risk of an additional interpolation by the resampler and it costs some computing time. The other option I suggested requires to modify the transform parameter of the source (in this example, add constantImageSource->SetDirection(transform->GetMatrix()); where transform is that of Yang's example, then use itk::ChangeImageInformation to reset the transform to identity. On Wed, Sep 10, 2014 at 3:47 PM, Yang Kyun Park > wrote: Hi Chao, I had the same issue on my work and I?ve managed to fix it by the following codes. I?m not sure this is the optimal way to do it but at least it worked in my case. (Or you can transform it in 3D Slicer. In transform menu, you need to apply the following matrix: 0 0 -1 0 1 0 0 0 0 1 0 0 0 0 0 1 to the target image, harden the transform then export the image.) Best, YangKyun // OutputImageType = // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction //Same image type from original image -3D & float OutputImageType::IndexType start_trans; start_trans[0] = 0; start_trans[1] = 0; start_trans[2] = 0; OutputImageType::SizeType size_trans; size_trans[0] = sizeOutput[0]; // X //410 size_trans[1] = sizeOutput[2]; //Y // 410 size_trans[2] = sizeOutput[1]; //Z // 120? OutputImageType::SpacingType spacing_trans; spacing_trans[0] = spacing[0]; spacing_trans[1] = spacing[2]; spacing_trans[2] = spacing[1]; OutputImageType::PointType Origin_trans; Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; OutputImageType::RegionType region_trans; region_trans.SetSize(size_trans); region_trans.SetIndex(start_trans); /* 2) Prepare Target image */ OutputImageType::Pointer targetImg = streamerBP->GetOutput(); /* 3) Configure transform */ typedef itk::Euler3DTransform< double > TransformType; TransformType::Pointer transform = TransformType::New(); TransformType::ParametersType param; param.SetSize(6); //MAXIMUM PARAM NUMBER: 6!!! param.put(0, 0.0); //rot X // 0.5 = PI/2 param.put(1, itk::Math::pi/2.0);//rot Y param.put(2, itk::Math::pi/-2.0);//rot Z param.put(3, 0.0); // Trans X mm param.put(4, 0.0); // Trans Y mm param.put(5, 0.0); // Trans Z mm TransformType::ParametersType fixedParam(3); //rotation center fixedParam.put(0,0); fixedParam.put(1,0); fixedParam.put(2,0); transform->SetParameters(param); transform->SetFixedParameters(fixedParam); //Center of the Transform cout << "Transform matrix:" << " " << endl; cout << transform->GetMatrix() << std::endl; typedef itk::ResampleImageFilter ResampleFilterType; ResampleFilterType::Pointer resampler = ResampleFilterType::New(); //OutputImageType::RegionType fixedImg_Region = fixedImg->GetLargestPossibleRegion().GetSize(); resampler->SetInput(targetImg); resampler->SetSize(size_trans); resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large Canvas resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 resampler->SetOutputDirection( targetImg->GetDirection() ); //image normal? resampler->SetTransform(transform); //LR flip cout << "LR flip filter is being applied" << endl; typedef itk::FlipImageFilter< OutputImageType > FilterType; FilterType::Pointer flipFilter = FilterType::New(); typedef FilterType::FlipAxesArrayType FlipAxesArrayType; FlipAxesArrayType arrFlipAxes; arrFlipAxes[0] = 1; arrFlipAxes[1] = 0; arrFlipAxes[2] = 0; flipFilter->SetFlipAxes(arrFlipAxes); flipFilter->SetInput(resampler->GetOutput()); flipFilter->Update(); //Use flipFilter->GetOutput() for further process From: Rtk-users [mailto:rtk-users-bounces at public.kitware.com ] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 8:39 AM To: Chao Wu Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu > wrote: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao _______________________________________________ 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: From ghostcz at hotmail.com Mon Sep 15 08:09:46 2014 From: ghostcz at hotmail.com (ghostcz) Date: Mon, 15 Sep 2014 14:09:46 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? Message-ID: Dear Rtk users, How can I select one (or maybe more?) specific GPU to run my reconstruction? It seems if I start a second instance of the reconstruction program, it will run on the same GPU. Best regards, Louie -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Mon Sep 15 08:45:24 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Mon, 15 Sep 2014 14:45:24 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: Message-ID: Hi, Good question, I did not hear anybody working on multiple GPUs so far. It currently uses the first Cuda compatible device. I think you'll have to look up in the Cuda manual to see how to switch to another one but there is nothing available in the RTK lib yet. Don't hesitate to suggest some code changes to add this feature. Simon On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: > Dear Rtk users, > > How can I select one (or maybe more?) specific GPU to run my reconstruction? > It seems if I start a second instance of the reconstruction program, it will > run on the same GPU. > > Best regards, > Louie > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > From padraig.looney at gmail.com Tue Sep 16 10:07:05 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 16 Sep 2014 15:07:05 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: <540ED73D.3080003@creatis.insa-lyon.fr> References: <540ED73D.3080003@creatis.insa-lyon.fr> Message-ID: Thanks Cyril, Following your advice I have tracked the seg fault down to line 36 in FirstReconstruction geometry->AddProjection(sid, sdd, angle, isox, isoy); } I realised that I managed to build the examples with RTK fine and the same example runs without a seg fault in the build directory. On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory wrote: > Hi Padraig, > > With so little information, there isn't much we can do to help you. > I usually track segfaults by compiling in Debug mode (by setting > "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT > Creator (any decent IDE will do just fine, and should stop when the > segfault occurs, allowing you to trace it back) > > Good luck, > Cyril > > > On 09/09/2014 12:05 PM, Padraig Looney wrote: > > When I try to run the "FirstReconstruction" example I am getting a > segmentation fault. > > The following is the output from gdb > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () > > > > > _______________________________________________ > Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users > > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue Sep 16 10:23:07 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 16 Sep 2014 16:23:07 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: <540ED73D.3080003@creatis.insa-lyon.fr> Message-ID: <541847CB.8020807@creatis.insa-lyon.fr> Hi Padraig, Does the segfault happen at the first call of geometry->AddProjection(...) or later ? My guess is that, for some reason, geometry is not initialized. Can you make sure it is by setting a breakpoint just before ? You should also make sure that all variables involved in this call, ie "sid", "sdd", "angle", "isox" and "isoy" have reasonable values before the call. It is probably not a good question, yet I have to ask : did you modify something in the file examples/FirstReconstruction/FirstReconstruction.cxx ? Regards, Cyril On 09/16/2014 04:07 PM, Padraig Looney wrote: > Thanks Cyril, > > Following your advice I have tracked the seg fault down to line 36 in > FirstReconstruction > > geometry->AddProjection(sid, > sdd, > angle, > isox, > isoy); > } > > I realised that I managed to build the examples with RTK fine and the > same example runs without a seg fault in the build directory. > > On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory > > wrote: > > Hi Padraig, > > With so little information, there isn't much we can do to help you. > I usually track segfaults by compiling in Debug mode (by setting > "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug > in QT Creator (any decent IDE will do just fine, and should stop > when the segfault occurs, allowing you to trace it back) > > Good luck, > Cyril > > > On 09/09/2014 12:05 PM, Padraig Looney wrote: >> When I try to run the "FirstReconstruction" example I am getting >> a segmentation fault. >> >> The following is the output from gdb >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () >> >> >> >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://public.kitware.com/mailman/listinfo/rtk-users > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From padraig.looney at gmail.com Tue Sep 16 10:38:05 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 16 Sep 2014 15:38:05 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: <541847CB.8020807@creatis.insa-lyon.fr> References: <540ED73D.3080003@creatis.insa-lyon.fr> <541847CB.8020807@creatis.insa-lyon.fr> Message-ID: It happens with the first call. I set a breakpoint just before and it is not empty. I have tried to attach a screen capture of my space. Yes I thought I may have changed something but I have copied the directory twice from the original download in which it builds correctly. I cloned this with git and there are no changes. On Tue, Sep 16, 2014 at 3:23 PM, Cyril Mory wrote: > Hi Padraig, > > Does the segfault happen at the first call of geometry->AddProjection(...) > or later ? > > My guess is that, for some reason, geometry is not initialized. Can you > make sure it is by setting a breakpoint just before ? > You should also make sure that all variables involved in this call, ie > "sid", "sdd", "angle", "isox" and "isoy" have reasonable values before the > call. > > It is probably not a good question, yet I have to ask : did you modify > something in the file examples/FirstReconstruction/FirstReconstruction.cxx > ? > > Regards, > Cyril > > > On 09/16/2014 04:07 PM, Padraig Looney wrote: > > Thanks Cyril, > > Following your advice I have tracked the seg fault down to line 36 in > FirstReconstruction > > geometry->AddProjection(sid, > sdd, > angle, > isox, > isoy); > } > > I realised that I managed to build the examples with RTK fine and the > same example runs without a seg fault in the build directory. > > On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory < > cyril.mory at creatis.insa-lyon.fr> wrote: > >> Hi Padraig, >> >> With so little information, there isn't much we can do to help you. >> I usually track segfaults by compiling in Debug mode (by setting >> "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT >> Creator (any decent IDE will do just fine, and should stop when the >> segfault occurs, allowing you to trace it back) >> >> Good luck, >> Cyril >> >> >> On 09/09/2014 12:05 PM, Padraig Looney wrote: >> >> When I try to run the "FirstReconstruction" example I am getting a >> segmentation fault. >> >> The following is the output from gdb >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () >> >> >> >> >> _______________________________________________ >> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 >> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: rtkSegFaultFirstRecon.png Type: image/png Size: 273538 bytes Desc: not available URL: From cyril.mory at creatis.insa-lyon.fr Wed Sep 17 05:59:58 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Wed, 17 Sep 2014 11:59:58 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: Message-ID: <54195B9E.10000@creatis.insa-lyon.fr> Hi Louie, We have been investigating your question bit. A first possible solution, which may be sufficient for your needs, could be to set the CUDA_VISIBLE_DEVICES environment variable. You'll find details here : http://www.acceleware.com/blog/cudavisibledevices-masking-gpus Here are two scripts I used to run tests on our two-GPUs server: ######### First script ######### echo "Running two instances of rtkfdk without specifying a GPU" CUDA_VISIBLE_DEVICES="0,1" time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g geom.xml --dimension 512 & time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g geom.xml --dimension 512 & ######### Second script ######### echo "Running two instances of rtkfdk, specifying which GPU to use for each" echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash ######### End ############# On our server, which has two identical GPUs, these two scripts took the same time. It seems that, in the first script, rtkfdk somehow managed to detect that the first GPU was in use and ran on the second one. But I can't guarantee under which conditions this happens, and surely it's safer to use the second script. This is the cheapest solution. If you need more than that, and you are ready to dive into the cuda filters' code as well as into the automatic transfers between CPU and GPU memory, do not hesitate to propose modifications of the RTK code. Regards, Cyril On 09/15/2014 02:45 PM, Simon Rit wrote: > Hi, > Good question, I did not hear anybody working on multiple GPUs so far. > It currently uses the first Cuda compatible device. I think you'll > have to look up in the Cuda manual to see how to switch to another one > but there is nothing available in the RTK lib yet. Don't hesitate to > suggest some code changes to add this feature. > Simon > > On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >> Dear Rtk users, >> >> How can I select one (or maybe more?) specific GPU to run my reconstruction? >> It seems if I start a second instance of the reconstruction program, it will >> run on the same GPU. >> >> Best regards, >> Louie >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://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 > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From ghostcz at hotmail.com Wed Sep 17 11:58:47 2014 From: ghostcz at hotmail.com (ghostcz) Date: Wed, 17 Sep 2014 17:58:47 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: <54195B9E.10000@creatis.insa-lyon.fr> References: <54195B9E.10000@creatis.insa-lyon.fr> Message-ID: Dear Cyril, Thank you for the follow-up. That is indeed a faster way to realize this function. I wrote a launcher instead, where I call cuda_set_device to select the device. No, I don?t think I know CUDA good enough to manage the memory transfer between the devices. Best regards, Louie P.S. is there any training or workshop focusing on rtk application and development available? -----Original Message----- From: Cyril Mory Sent: Wednesday, September 17, 2014 11:59 AM To: Simon Rit ; ghostcz Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] How to run the reconstruction on a specific GPU? Hi Louie, We have been investigating your question bit. A first possible solution, which may be sufficient for your needs, could be to set the CUDA_VISIBLE_DEVICES environment variable. You'll find details here : http://www.acceleware.com/blog/cudavisibledevices-masking-gpus Here are two scripts I used to run tests on our two-GPUs server: ######### First script ######### echo "Running two instances of rtkfdk without specifying a GPU" CUDA_VISIBLE_DEVICES="0,1" time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g geom.xml --dimension 512 & time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g geom.xml --dimension 512 & ######### Second script ######### echo "Running two instances of rtkfdk, specifying which GPU to use for each" echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash ######### End ############# On our server, which has two identical GPUs, these two scripts took the same time. It seems that, in the first script, rtkfdk somehow managed to detect that the first GPU was in use and ran on the second one. But I can't guarantee under which conditions this happens, and surely it's safer to use the second script. This is the cheapest solution. If you need more than that, and you are ready to dive into the cuda filters' code as well as into the automatic transfers between CPU and GPU memory, do not hesitate to propose modifications of the RTK code. Regards, Cyril On 09/15/2014 02:45 PM, Simon Rit wrote: > Hi, > Good question, I did not hear anybody working on multiple GPUs so far. > It currently uses the first Cuda compatible device. I think you'll > have to look up in the Cuda manual to see how to switch to another one > but there is nothing available in the RTK lib yet. Don't hesitate to > suggest some code changes to add this feature. > Simon > > On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >> Dear Rtk users, >> >> How can I select one (or maybe more?) specific GPU to run my >> reconstruction? >> It seems if I start a second instance of the reconstruction program, it >> will >> run on the same GPU. >> >> Best regards, >> Louie >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://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 > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From lomahu at gmail.com Wed Sep 17 23:21:34 2014 From: lomahu at gmail.com (Howard) Date: Wed, 17 Sep 2014 23:21:34 -0400 Subject: [Rtk-users] bright circle on the reconstructed image Message-ID: Hi, I use rtkfdk to reconstruct varian cbct images following the example on rtk wiki page. The projections were obtained with half fan mode because it is an abdominal region with the patient lateral x AP dimension of 550x550. The reconstructed cbct images have a big bright circle around the image. Please see the image: http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html I am using Ubuntu Linux box to reconstruct. Two sequential commands were used: ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ --regexp Proj_.*.hnd -o varianGeometry and rtkfdk \ --geometry varianGeometry \ --regexp .*.hnd \ --path ../Scan0 \ --output rec.mha \ --verbose \ --spacing 2.0,2.0,2.0 \ --dimension 256,100,256 \ The projections are stored in the standard varian format: Scan0 and ProjectionInfo.xml with 644 projection images. I assume that rtkfdk handled the half fan geometry properly. What did I do wrong then? Many thanks! -howard -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 04:12:23 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 10:12:23 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: Message-ID: <541A93E7.7010301@creatis.insa-lyon.fr> Hi Howard, The bright ring artifact is typically caused by high-pass filtering (the ramp filter used in FDK) of truncated projection data (when projections have non-zero values on the sides, the edge of the projection makes a sharp transition to zero). A classical answer to this problem is to pad the projections, for example with values starting from the values on the side and slowly decreasing to zero. rtkfdk can do this padding for you. Just add "--pad 0.1" to your options (or more than 0.1 if it isn't enough). Also, I noticed that your reconstructed image seems quite noisy. You might want to use a Hann windowing of the ramp filter to reduce the noise amplification effect of high-pass filtering. You can do that by adding "--hann 0.5" to your options. Note that the argument is a cut-off frequency, so smaller values mean more smoothing. Best regards, Cyril On 09/18/2014 05:21 AM, Howard wrote: > Hi, > I use rtkfdk to reconstruct varian cbct images following the example > on rtk wiki page. The projections were obtained with half fan mode > because it is an abdominal region with the patient lateral x AP > dimension of 550x550. The reconstructed cbct images have a big > bright circle around > the image. Please see the image: > http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > I am using Ubuntu Linux box to reconstruct. Two sequential commands > were used: > ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > --regexp Proj_.*.hnd -o varianGeometry > and > rtkfdk \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output rec.mha \ > --verbose \ > --spacing 2.0,2.0,2.0 \ > --dimension 256,100,256 \ > The projections are stored in the standard varian format: Scan0 and > ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled the half fan geometry properly. What did I do wrong then? > Many thanks! > -howard > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 04:53:34 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 10:53:34 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: <54195B9E.10000@creatis.insa-lyon.fr> Message-ID: <541A9D8E.5040403@creatis.insa-lyon.fr> Hi Louie, Good that you managed to solve your problem. Your question on training made us think a bit. Here are a few answers: - At the moment, there is only a wiki, the documentation and this mailing list - We're only a handful of developers working on RTK, so it seems too early, and too much logistics, to organize real workshops or training sessions in the near future - That being said, we would like to leave the door open. Surely it is important, if we want more people to use RTK and contribute to it, that new developers can learn easily and efficiently. I'll start a specific thread on the mailing list to gather the possible requests similar to yours - RTK uses ITK to do most of the work, therefore programming in RTK essentially requires knowing ITK and knowing some tomography. ITK training sessions are organized often and in many countries I hope it helps, Cyril On 09/17/2014 05:58 PM, ghostcz wrote: > Dear Cyril, > > Thank you for the follow-up. > That is indeed a faster way to realize this function. I wrote a > launcher instead, where I call cuda_set_device to select the device. > No, I don?t think I know CUDA good enough to manage the memory > transfer between the devices. > > Best regards, > Louie > > P.S. is there any training or workshop focusing on rtk application and > development available? > > > > > -----Original Message----- From: Cyril Mory > Sent: Wednesday, September 17, 2014 11:59 AM > To: Simon Rit ; ghostcz > Cc: rtk-users at openrtk.org > Subject: Re: [Rtk-users] How to run the reconstruction on a specific GPU? > > Hi Louie, > > We have been investigating your question bit. A first possible solution, > which may be sufficient for your needs, could be to set the > CUDA_VISIBLE_DEVICES environment variable. You'll find details here : > http://www.acceleware.com/blog/cudavisibledevices-masking-gpus > > Here are two scripts I used to run tests on our two-GPUs server: > > ######### First script ######### > echo "Running two instances of rtkfdk without specifying a GPU" > CUDA_VISIBLE_DEVICES="0,1" > time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g > geom.xml --dimension 512 & > time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g > geom.xml --dimension 512 & > > ######### Second script ######### > echo "Running two instances of rtkfdk, specifying which GPU to use for > each" > echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o > fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash > echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o > fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash > > ######### End ############# > > On our server, which has two identical GPUs, these two scripts took the > same time. It seems that, in the first script, rtkfdk somehow managed to > detect that the first GPU was in use and ran on the second one. But I > can't guarantee under which conditions this happens, and surely it's > safer to use the second script. > > This is the cheapest solution. If you need more than that, and you are > ready to dive into the cuda filters' code as well as into the automatic > transfers between CPU and GPU memory, do not hesitate to propose > modifications of the RTK code. > > Regards, > Cyril > > On 09/15/2014 02:45 PM, Simon Rit wrote: >> Hi, >> Good question, I did not hear anybody working on multiple GPUs so far. >> It currently uses the first Cuda compatible device. I think you'll >> have to look up in the Cuda manual to see how to switch to another one >> but there is nothing available in the RTK lib yet. Don't hesitate to >> suggest some code changes to add this feature. >> Simon >> >> On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >>> Dear Rtk users, >>> >>> How can I select one (or maybe more?) specific GPU to run my >>> reconstruction? >>> It seems if I start a second instance of the reconstruction program, >>> it will >>> run on the same GPU. >>> >>> Best regards, >>> Louie >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://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 >> > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 05:28:42 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 11:28:42 +0200 Subject: [Rtk-users] Would you like RTK trainings ? Message-ID: <541AA5CA.9050306@creatis.insa-lyon.fr> Hi RTK users, A recent question on the mailing list by Louie triggered a conversation between us. Louie asked whether there exists some sort of training or workshop on RTK. In a nutshell, the answer is "No, not yet, but why not talk about it ?". So I'd like to start some sort of "poll" to gather the requests you might have on this topic: Do you need / want / would like a training on RTK ? If so, can you be more specific on what you would like to learn ? (basics of tomography, how to start using RTK on your data, practical issues in circular cone beam CT, motion compensated reconstruction, compressed sensing in tomography, ITK programming, ... this is not an exhaustive list) I think this is enough questions for the time being. The rest will depend on your answers. Looking forward to reading you, -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 06:08:21 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 12:08:21 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: <540ED73D.3080003@creatis.insa-lyon.fr> <541847CB.8020807@creatis.insa-lyon.fr> Message-ID: <541AAF15.9080707@creatis.insa-lyon.fr> Hi Padraig, It is puzzling, as the code is simple and we have many machines on which it works without problem. So let's explore the weirder options : - In one of your previous emails, you mentioned that "the same example runs without a seg fault in the build directory". What does that mean ? - Can you go into your build directory, run "make test", and post the result of the tests ? - Have you tried installing RTK on another machine ? Regards, Cyril On 09/16/2014 04:38 PM, Padraig Looney wrote: > It happens with the first call. > > I set a breakpoint just before and it is not empty. I have tried to > attach a screen capture of my space. > > Yes I thought I may have changed something but I have copied the > directory twice from the original download in which it builds > correctly. I cloned this with git and there are no changes. > > > On Tue, Sep 16, 2014 at 3:23 PM, Cyril Mory > > wrote: > > Hi Padraig, > > Does the segfault happen at the first call of > geometry->AddProjection(...) or later ? > > My guess is that, for some reason, geometry is not initialized. > Can you make sure it is by setting a breakpoint just before ? > You should also make sure that all variables involved in this > call, ie "sid", "sdd", "angle", "isox" and "isoy" have reasonable > values before the call. > > It is probably not a good question, yet I have to ask : did you > modify something in the file > examples/FirstReconstruction/FirstReconstruction.cxx ? > > Regards, > Cyril > > > On 09/16/2014 04:07 PM, Padraig Looney wrote: >> Thanks Cyril, >> >> Following your advice I have tracked the seg fault down to line >> 36 in FirstReconstruction >> >> geometry->AddProjection(sid, >> sdd, >> angle, >> isox, >> isoy); >> } >> >> I realised that I managed to build the examples with RTK fine and >> the same example runs without a seg fault in the build directory. >> >> On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory >> > > wrote: >> >> Hi Padraig, >> >> With so little information, there isn't much we can do to >> help you. >> I usually track segfaults by compiling in Debug mode (by >> setting "CMAKE_BUILD_TYPE" to "Debug"), then running the >> program in debug in QT Creator (any decent IDE will do just >> fine, and should stop when the segfault occurs, allowing you >> to trace it back) >> >> Good luck, >> Cyril >> >> >> On 09/09/2014 12:05 PM, Padraig Looney wrote: >>> When I try to run the "FirstReconstruction" example I am >>> getting a segmentation fault. >>> >>> The following is the output from gdb >>> >>> Program received signal SIGSEGV, Segmentation fault. >>> 0x00000000004952d7 in typeinfo for >>> rtk::ProjectionGeometry<3u> () >>> >>> >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://public.kitware.com/mailman/listinfo/rtk-users >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile:+33 6 69 46 73 79 >> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Thu Sep 18 09:47:40 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Thu, 18 Sep 2014 15:47:40 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: <541A93E7.7010301@creatis.insa-lyon.fr> References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: Hi, I fully agree with Cyril. Something else : you might want to mask out what is outside the field-of-view using the rtkfieldofview executable. Your ring corresponds to that border. See an example here: http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction Simon On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < cyril.mory at creatis.insa-lyon.fr> wrote: > Hi Howard, > > The bright ring artifact is typically caused by high-pass filtering (the > ramp filter used in FDK) of truncated projection data (when projections > have non-zero values on the sides, the edge of the projection makes a sharp > transition to zero). A classical answer to this problem is to pad the > projections, for example with values starting from the values on the side > and slowly decreasing to zero. > > rtkfdk can do this padding for you. Just add "--pad 0.1" to your options > (or more than 0.1 if it isn't enough). > Also, I noticed that your reconstructed image seems quite noisy. You might > want to use a Hann windowing of the ramp filter to reduce the noise > amplification effect of high-pass filtering. You can do that by adding > "--hann 0.5" to your options. Note that the argument is a cut-off > frequency, so smaller values mean more smoothing. > > Best regards, > Cyril > > > On 09/18/2014 05:21 AM, Howard wrote: > > Hi, > > I use rtkfdk to reconstruct varian cbct images following the example on > rtk wiki page. The projections were obtained with half fan mode because it > is an abdominal region with the patient lateral x AP dimension of 550x550. > The reconstructed cbct images have a big bright circle around > the image. Please see the image: > http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > > I am using Ubuntu Linux box to reconstruct. Two sequential commands were > used: > > ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > --regexp Proj_.*.hnd -o varianGeometry > and > > rtkfdk \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output rec.mha \ > --verbose \ > --spacing 2.0,2.0,2.0 \ > --dimension 256,100,256 \ > The projections are stored in the standard varian format: Scan0 and > ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled the half fan geometry properly. What did I do wrong then? Many > thanks! > > -howard > > > _______________________________________________ > Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users > > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > > _______________________________________________ > 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: From lomahu at gmail.com Thu Sep 18 10:47:17 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 10:47:17 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: Thanks very much, Cyril & Simon. Now the fdk reconstruction is working beautifully. Jus another quick question: for rtksart executable, are we still able to do padding and hanning window trick as well? On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit wrote: > Hi, > I fully agree with Cyril. Something else : you might want to mask out what > is outside the field-of-view using the rtkfieldofview executable. Your ring > corresponds to that border. See an example here: > http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > Simon > > On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < > cyril.mory at creatis.insa-lyon.fr> wrote: > >> Hi Howard, >> >> The bright ring artifact is typically caused by high-pass filtering (the >> ramp filter used in FDK) of truncated projection data (when projections >> have non-zero values on the sides, the edge of the projection makes a sharp >> transition to zero). A classical answer to this problem is to pad the >> projections, for example with values starting from the values on the side >> and slowly decreasing to zero. >> >> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >> (or more than 0.1 if it isn't enough). >> Also, I noticed that your reconstructed image seems quite noisy. You >> might want to use a Hann windowing of the ramp filter to reduce the noise >> amplification effect of high-pass filtering. You can do that by adding >> "--hann 0.5" to your options. Note that the argument is a cut-off >> frequency, so smaller values mean more smoothing. >> >> Best regards, >> Cyril >> >> >> On 09/18/2014 05:21 AM, Howard wrote: >> >> Hi, >> >> I use rtkfdk to reconstruct varian cbct images following the example on >> rtk wiki page. The projections were obtained with half fan mode because it >> is an abdominal region with the patient lateral x AP dimension of 550x550. >> The reconstructed cbct images have a big bright circle around >> the image. Please see the image: >> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> >> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >> used: >> >> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >> --regexp Proj_.*.hnd -o varianGeometry >> and >> >> rtkfdk \ >> --geometry varianGeometry \ >> --regexp .*.hnd \ >> --path ../Scan0 \ >> --output rec.mha \ >> --verbose \ >> --spacing 2.0,2.0,2.0 \ >> --dimension 256,100,256 \ >> The projections are stored in the standard varian format: Scan0 and >> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >> handled the half fan geometry properly. What did I do wrong then? Many >> thanks! >> >> -howard >> >> >> _______________________________________________ >> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 >> >> >> _______________________________________________ >> 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: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 10:59:53 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 16:59:53 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: <541AF369.9090403@creatis.insa-lyon.fr> Howard, For SART reconstructions, you do not need padding, and you can't do Hann windowing because no ramp filtering is applied. SART usually outputs smoother images, so you probably will not need this denoising trick anyway. However, you should be careful about one thing : your object has to be fully contained in the reconstructed volume, or you will observe important border effects. Use the --dimension, --spacing and --origin options to ensure this. All the best, Cyril On 09/18/2014 04:47 PM, Howard wrote: > Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > beautifully. Jus another quick question: for rtksart executable, are > we still able to do padding and hanning window trick as well? > > On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > > wrote: > > Hi, > I fully agree with Cyril. Something else : you might want to mask > out what is outside the field-of-view using the rtkfieldofview > executable. Your ring corresponds to that border. See an example here: > http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > Simon > > On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory > > wrote: > > Hi Howard, > > The bright ring artifact is typically caused by high-pass > filtering (the ramp filter used in FDK) of truncated > projection data (when projections have non-zero values on the > sides, the edge of the projection makes a sharp transition to > zero). A classical answer to this problem is to pad the > projections, for example with values starting from the values > on the side and slowly decreasing to zero. > > rtkfdk can do this padding for you. Just add "--pad 0.1" to > your options (or more than 0.1 if it isn't enough). > Also, I noticed that your reconstructed image seems quite > noisy. You might want to use a Hann windowing of the ramp > filter to reduce the noise amplification effect of high-pass > filtering. You can do that by adding "--hann 0.5" to your > options. Note that the argument is a cut-off frequency, so > smaller values mean more smoothing. > > Best regards, > Cyril > > > On 09/18/2014 05:21 AM, Howard wrote: >> Hi, >> I use rtkfdk to reconstruct varian cbct images following the >> example on rtk wiki page. The projections were obtained with >> half fan mode because it is an abdominal region with the >> patient lateral x AP dimension of 550x550. The reconstructed >> cbct images have a big bright circle around >> the image. Please see the image: >> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> I am using Ubuntu Linux box to reconstruct. Two sequential >> commands were used: >> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path >> Scan0/ --regexp Proj_.*.hnd -o varianGeometry >> and >> rtkfdk \ >> --geometry varianGeometry \ >> --regexp .*.hnd \ >> --path ../Scan0 \ >> --output rec.mha \ >> --verbose \ >> --spacing 2.0,2.0,2.0 \ >> --dimension 256,100,256 \ >> The projections are stored in the standard varian format: >> Scan0 and ProjectionInfo.xml with 644 projection images. I >> assume that rtkfdk handled the half fan geometry properly. >> What did I do wrong then? Many thanks! >> -howard >> >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://public.kitware.com/mailman/listinfo/rtk-users > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From lomahu at gmail.com Thu Sep 18 13:03:52 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 13:03:52 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: <541AF369.9090403@creatis.insa-lyon.fr> References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Cyril, I am testing SART reconstruction according to what you described, specifying dimension, spacing and origin: rtksart \ --geometry varianGeometry \ --regexp .*.hnd \ --path ../Scan0 \ --output sart_rec.mha \ --verbose \ --spacing 2.0\ --dimension 128,100,128 \ --origin -127.5,-99,-127.5 but the reconstruction gave a plain image with no object/contrast. I checked the grayscale values on the reconstructed images and did see they ranged from -1.78 to 3 (this may not be precise but give you some idea). I tried to adjust window level but couldn't see any contrast. I must miss something here. Please advise. Thanks! -howard On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory < cyril.mory at creatis.insa-lyon.fr> wrote: > Howard, > > For SART reconstructions, you do not need padding, and you can't do Hann > windowing because no ramp filtering is applied. SART usually outputs > smoother images, so you probably will not need this denoising trick anyway. > However, you should be careful about one thing : your object has to be > fully contained in the reconstructed volume, or you will observe important > border effects. Use the --dimension, --spacing and --origin options to > ensure this. > > All the best, > Cyril > > > On 09/18/2014 04:47 PM, Howard wrote: > > Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > beautifully. Jus another quick question: for rtksart executable, are we > still able to do padding and hanning window trick as well? > > On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > wrote: > >> Hi, >> I fully agree with Cyril. Something else : you might want to mask out >> what is outside the field-of-view using the rtkfieldofview executable. Your >> ring corresponds to that border. See an example here: >> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >> Simon >> >> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < >> cyril.mory at creatis.insa-lyon.fr> wrote: >> >>> Hi Howard, >>> >>> The bright ring artifact is typically caused by high-pass filtering (the >>> ramp filter used in FDK) of truncated projection data (when projections >>> have non-zero values on the sides, the edge of the projection makes a sharp >>> transition to zero). A classical answer to this problem is to pad the >>> projections, for example with values starting from the values on the side >>> and slowly decreasing to zero. >>> >>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >>> (or more than 0.1 if it isn't enough). >>> Also, I noticed that your reconstructed image seems quite noisy. You >>> might want to use a Hann windowing of the ramp filter to reduce the noise >>> amplification effect of high-pass filtering. You can do that by adding >>> "--hann 0.5" to your options. Note that the argument is a cut-off >>> frequency, so smaller values mean more smoothing. >>> >>> Best regards, >>> Cyril >>> >>> >>> On 09/18/2014 05:21 AM, Howard wrote: >>> >>> Hi, >>> >>> I use rtkfdk to reconstruct varian cbct images following the example on >>> rtk wiki page. The projections were obtained with half fan mode because it >>> is an abdominal region with the patient lateral x AP dimension of 550x550. >>> The reconstructed cbct images have a big bright circle around >>> the image. Please see the image: >>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >>> >>> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >>> used: >>> >>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >>> --regexp Proj_.*.hnd -o varianGeometry >>> and >>> >>> rtkfdk \ >>> --geometry varianGeometry \ >>> --regexp .*.hnd \ >>> --path ../Scan0 \ >>> --output rec.mha \ >>> --verbose \ >>> --spacing 2.0,2.0,2.0 \ >>> --dimension 256,100,256 \ >>> The projections are stored in the standard varian format: Scan0 and >>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >>> handled the half fan geometry properly. What did I do wrong then? Many >>> thanks! >>> >>> -howard >>> >>> >>> _______________________________________________ >>> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >>> -- >>> -- >>> Cyril Mory, Post-doc >>> CREATIS >>> Leon Berard cancer treatment center >>> 28 rue La?nnec >>> 69373 Lyon cedex 08 FRANCE >>> >>> Mobile: +33 6 69 46 73 79 >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Thu Sep 18 16:41:10 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Thu, 18 Sep 2014 22:41:10 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Howard, Assuming you're using the same dataset as the one you used for the rtkfdk test, you have decreased its size. For example, x was 2*256 mm with rtkfdk and it is now 128*2. On the slice you sent, we could see that a part of the phantom on the right was missing so you should keep the same size except for this side that should be larger, certainly not reduce the size. For the display, I would suggest to use the same window/level as for your FDK reconstruction. The two reconstruction algorithms reconstruct the same average intensities, only the texture is different. Good luck, Simon On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: > Hi Cyril, > > I am testing SART reconstruction according to what you described, specifying > dimension, spacing and origin: > > rtksart \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output sart_rec.mha \ > --verbose \ > --spacing 2.0\ > --dimension 128,100,128 \ > --origin -127.5,-99,-127.5 > > but the reconstruction gave a plain image with no object/contrast. I checked > the grayscale values on the reconstructed images and did see they ranged > from -1.78 to 3 (this may not be precise but give you some idea). I tried to > adjust window level but couldn't see any contrast. I must miss something > here. Please advise. Thanks! > > -howard > > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory > wrote: >> >> Howard, >> >> For SART reconstructions, you do not need padding, and you can't do Hann >> windowing because no ramp filtering is applied. SART usually outputs >> smoother images, so you probably will not need this denoising trick anyway. >> However, you should be careful about one thing : your object has to be >> fully contained in the reconstructed volume, or you will observe important >> border effects. Use the --dimension, --spacing and --origin options to >> ensure this. >> >> All the best, >> Cyril >> >> >> On 09/18/2014 04:47 PM, Howard wrote: >> >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working >> beautifully. Jus another quick question: for rtksart executable, are we >> still able to do padding and hanning window trick as well? >> >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit >> wrote: >>> >>> Hi, >>> I fully agree with Cyril. Something else : you might want to mask out >>> what is outside the field-of-view using the rtkfieldofview executable. Your >>> ring corresponds to that border. See an example here: >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >>> Simon >>> >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory >>> wrote: >>>> >>>> Hi Howard, >>>> >>>> The bright ring artifact is typically caused by high-pass filtering (the >>>> ramp filter used in FDK) of truncated projection data (when projections have >>>> non-zero values on the sides, the edge of the projection makes a sharp >>>> transition to zero). A classical answer to this problem is to pad the >>>> projections, for example with values starting from the values on the side >>>> and slowly decreasing to zero. >>>> >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >>>> (or more than 0.1 if it isn't enough). >>>> Also, I noticed that your reconstructed image seems quite noisy. You >>>> might want to use a Hann windowing of the ramp filter to reduce the noise >>>> amplification effect of high-pass filtering. You can do that by adding >>>> "--hann 0.5" to your options. Note that the argument is a cut-off frequency, >>>> so smaller values mean more smoothing. >>>> >>>> Best regards, >>>> Cyril >>>> >>>> >>>> On 09/18/2014 05:21 AM, Howard wrote: >>>> >>>> Hi, >>>> >>>> I use rtkfdk to reconstruct varian cbct images following the example on >>>> rtk wiki page. The projections were obtained with half fan mode because it >>>> is an abdominal region with the patient lateral x AP dimension of 550x550. >>>> The reconstructed cbct images have a big bright circle around >>>> the image. Please see the image: >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >>>> >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >>>> used: >>>> >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >>>> --regexp Proj_.*.hnd -o varianGeometry >>>> and >>>> >>>> rtkfdk \ >>>> --geometry varianGeometry \ >>>> --regexp .*.hnd \ >>>> --path ../Scan0 \ >>>> --output rec.mha \ >>>> --verbose \ >>>> --spacing 2.0,2.0,2.0 \ >>>> --dimension 256,100,256 \ >>>> The projections are stored in the standard varian format: Scan0 and >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk handled >>>> the half fan geometry properly. What did I do wrong then? Many thanks! >>>> >>>> -howard >>>> >>>> >>>> _______________________________________________ >>>> Rtk-users mailing list >>>> Rtk-users at public.kitware.com >>>> http://public.kitware.com/mailman/listinfo/rtk-users >>>> >>>> >>>> -- >>>> -- >>>> Cyril Mory, Post-doc >>>> CREATIS >>>> Leon Berard cancer treatment center >>>> 28 rue La?nnec >>>> 69373 Lyon cedex 08 FRANCE >>>> >>>> Mobile: +33 6 69 46 73 79 >>>> >>>> >>>> _______________________________________________ >>>> Rtk-users mailing list >>>> Rtk-users at public.kitware.com >>>> http://public.kitware.com/mailman/listinfo/rtk-users >>>> >>> >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 > > From lomahu at gmail.com Thu Sep 18 17:47:51 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 17:47:51 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Simon, I apologize for the confusion about the dataset. Actually I did not use the same dataset. The reason is that the set I used for rtkfdk test had 644 projections and with it rtksart crashed because of memory (I only allocated 3GB memory to Virtualbox from my window7). So for the SART test I changed to a small projection set (366 projections) where the object is a cube with dimension of 5cm x 5cm x 5cm. That's why I chose a smaller reconstruction size 128*2. With the same dataset when I ran rtkfdk I got very good reconstruction. -howard On Thu, Sep 18, 2014 at 4:41 PM, Simon Rit wrote: > Hi Howard, > Assuming you're using the same dataset as the one you used for the > rtkfdk test, you have decreased its size. For example, x was 2*256 mm > with rtkfdk and it is now 128*2. On the slice you sent, we could see > that a part of the phantom on the right was missing so you should keep > the same size except for this side that should be larger, certainly > not reduce the size. > For the display, I would suggest to use the same window/level as for > your FDK reconstruction. The two reconstruction algorithms reconstruct > the same average intensities, only the texture is different. > Good luck, > Simon > > On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: > > Hi Cyril, > > > > I am testing SART reconstruction according to what you described, > specifying > > dimension, spacing and origin: > > > > rtksart \ > > --geometry varianGeometry \ > > --regexp .*.hnd \ > > --path ../Scan0 \ > > --output sart_rec.mha \ > > --verbose \ > > --spacing 2.0\ > > --dimension 128,100,128 \ > > --origin -127.5,-99,-127.5 > > > > but the reconstruction gave a plain image with no object/contrast. I > checked > > the grayscale values on the reconstructed images and did see they ranged > > from -1.78 to 3 (this may not be precise but give you some idea). I > tried to > > adjust window level but couldn't see any contrast. I must miss something > > here. Please advise. Thanks! > > > > -howard > > > > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory > > wrote: > >> > >> Howard, > >> > >> For SART reconstructions, you do not need padding, and you can't do Hann > >> windowing because no ramp filtering is applied. SART usually outputs > >> smoother images, so you probably will not need this denoising trick > anyway. > >> However, you should be careful about one thing : your object has to be > >> fully contained in the reconstructed volume, or you will observe > important > >> border effects. Use the --dimension, --spacing and --origin options to > >> ensure this. > >> > >> All the best, > >> Cyril > >> > >> > >> On 09/18/2014 04:47 PM, Howard wrote: > >> > >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > >> beautifully. Jus another quick question: for rtksart executable, are we > >> still able to do padding and hanning window trick as well? > >> > >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > >> wrote: > >>> > >>> Hi, > >>> I fully agree with Cyril. Something else : you might want to mask out > >>> what is outside the field-of-view using the rtkfieldofview executable. > Your > >>> ring corresponds to that border. See an example here: > >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > >>> Simon > >>> > >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory > >>> wrote: > >>>> > >>>> Hi Howard, > >>>> > >>>> The bright ring artifact is typically caused by high-pass filtering > (the > >>>> ramp filter used in FDK) of truncated projection data (when > projections have > >>>> non-zero values on the sides, the edge of the projection makes a sharp > >>>> transition to zero). A classical answer to this problem is to pad the > >>>> projections, for example with values starting from the values on the > side > >>>> and slowly decreasing to zero. > >>>> > >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your > options > >>>> (or more than 0.1 if it isn't enough). > >>>> Also, I noticed that your reconstructed image seems quite noisy. You > >>>> might want to use a Hann windowing of the ramp filter to reduce the > noise > >>>> amplification effect of high-pass filtering. You can do that by adding > >>>> "--hann 0.5" to your options. Note that the argument is a cut-off > frequency, > >>>> so smaller values mean more smoothing. > >>>> > >>>> Best regards, > >>>> Cyril > >>>> > >>>> > >>>> On 09/18/2014 05:21 AM, Howard wrote: > >>>> > >>>> Hi, > >>>> > >>>> I use rtkfdk to reconstruct varian cbct images following the example > on > >>>> rtk wiki page. The projections were obtained with half fan mode > because it > >>>> is an abdominal region with the patient lateral x AP dimension of > 550x550. > >>>> The reconstructed cbct images have a big bright circle around > >>>> the image. Please see the image: > >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > >>>> > >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands > were > >>>> used: > >>>> > >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > >>>> --regexp Proj_.*.hnd -o varianGeometry > >>>> and > >>>> > >>>> rtkfdk \ > >>>> --geometry varianGeometry \ > >>>> --regexp .*.hnd \ > >>>> --path ../Scan0 \ > >>>> --output rec.mha \ > >>>> --verbose \ > >>>> --spacing 2.0,2.0,2.0 \ > >>>> --dimension 256,100,256 \ > >>>> The projections are stored in the standard varian format: Scan0 and > >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled > >>>> the half fan geometry properly. What did I do wrong then? Many > thanks! > >>>> > >>>> -howard > >>>> > >>>> > >>>> _______________________________________________ > >>>> Rtk-users mailing list > >>>> Rtk-users at public.kitware.com > >>>> http://public.kitware.com/mailman/listinfo/rtk-users > >>>> > >>>> > >>>> -- > >>>> -- > >>>> Cyril Mory, Post-doc > >>>> CREATIS > >>>> Leon Berard cancer treatment center > >>>> 28 rue La?nnec > >>>> 69373 Lyon cedex 08 FRANCE > >>>> > >>>> Mobile: +33 6 69 46 73 79 > >>>> > >>>> > >>>> _______________________________________________ > >>>> Rtk-users mailing list > >>>> Rtk-users at public.kitware.com > >>>> http://public.kitware.com/mailman/listinfo/rtk-users > >>>> > >>> > >> > >> > >> -- > >> -- > >> Cyril Mory, Post-doc > >> CREATIS > >> Leon Berard cancer treatment center > >> 28 rue La?nnec > >> 69373 Lyon cedex 08 FRANCE > >> > >> Mobile: +33 6 69 46 73 79 > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lomahu at gmail.com Thu Sep 18 22:53:45 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 22:53:45 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Simon, It appears I have to apologize again and take back the question about the SART reconstruction. I re-ran on the big data set (644 projections). This time no memory issue and SART worked well. For some reason it did not work on the small set initially. I should have run more tests before posting here. Sorry about the noise and thanks a lot for looking into the "issues". -howard On Thu, Sep 18, 2014 at 5:47 PM, Howard wrote: > Hi Simon, > > I apologize for the confusion about the dataset. Actually I did not use > the same dataset. > The reason is that the set I used for rtkfdk test had 644 projections and > with it rtksart > crashed because of memory (I only allocated 3GB memory to Virtualbox from > my window7). > So for the SART test I changed to a small projection set (366 projections) > where the object is > a cube with dimension of 5cm x 5cm x 5cm. That's why I chose a smaller > reconstruction > size 128*2. With the same dataset when I ran rtkfdk I got very good > reconstruction. > > -howard > > On Thu, Sep 18, 2014 at 4:41 PM, Simon Rit > wrote: > >> Hi Howard, >> Assuming you're using the same dataset as the one you used for the >> rtkfdk test, you have decreased its size. For example, x was 2*256 mm >> with rtkfdk and it is now 128*2. On the slice you sent, we could see >> that a part of the phantom on the right was missing so you should keep >> the same size except for this side that should be larger, certainly >> not reduce the size. >> For the display, I would suggest to use the same window/level as for >> your FDK reconstruction. The two reconstruction algorithms reconstruct >> the same average intensities, only the texture is different. >> Good luck, >> Simon >> >> On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: >> > Hi Cyril, >> > >> > I am testing SART reconstruction according to what you described, >> specifying >> > dimension, spacing and origin: >> > >> > rtksart \ >> > --geometry varianGeometry \ >> > --regexp .*.hnd \ >> > --path ../Scan0 \ >> > --output sart_rec.mha \ >> > --verbose \ >> > --spacing 2.0\ >> > --dimension 128,100,128 \ >> > --origin -127.5,-99,-127.5 >> > >> > but the reconstruction gave a plain image with no object/contrast. I >> checked >> > the grayscale values on the reconstructed images and did see they ranged >> > from -1.78 to 3 (this may not be precise but give you some idea). I >> tried to >> > adjust window level but couldn't see any contrast. I must miss something >> > here. Please advise. Thanks! >> > >> > -howard >> > >> > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory >> > wrote: >> >> >> >> Howard, >> >> >> >> For SART reconstructions, you do not need padding, and you can't do >> Hann >> >> windowing because no ramp filtering is applied. SART usually outputs >> >> smoother images, so you probably will not need this denoising trick >> anyway. >> >> However, you should be careful about one thing : your object has to be >> >> fully contained in the reconstructed volume, or you will observe >> important >> >> border effects. Use the --dimension, --spacing and --origin options to >> >> ensure this. >> >> >> >> All the best, >> >> Cyril >> >> >> >> >> >> On 09/18/2014 04:47 PM, Howard wrote: >> >> >> >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working >> >> beautifully. Jus another quick question: for rtksart executable, are we >> >> still able to do padding and hanning window trick as well? >> >> >> >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit >> >> wrote: >> >>> >> >>> Hi, >> >>> I fully agree with Cyril. Something else : you might want to mask out >> >>> what is outside the field-of-view using the rtkfieldofview >> executable. Your >> >>> ring corresponds to that border. See an example here: >> >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >> >>> Simon >> >>> >> >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory >> >>> wrote: >> >>>> >> >>>> Hi Howard, >> >>>> >> >>>> The bright ring artifact is typically caused by high-pass filtering >> (the >> >>>> ramp filter used in FDK) of truncated projection data (when >> projections have >> >>>> non-zero values on the sides, the edge of the projection makes a >> sharp >> >>>> transition to zero). A classical answer to this problem is to pad the >> >>>> projections, for example with values starting from the values on the >> side >> >>>> and slowly decreasing to zero. >> >>>> >> >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your >> options >> >>>> (or more than 0.1 if it isn't enough). >> >>>> Also, I noticed that your reconstructed image seems quite noisy. You >> >>>> might want to use a Hann windowing of the ramp filter to reduce the >> noise >> >>>> amplification effect of high-pass filtering. You can do that by >> adding >> >>>> "--hann 0.5" to your options. Note that the argument is a cut-off >> frequency, >> >>>> so smaller values mean more smoothing. >> >>>> >> >>>> Best regards, >> >>>> Cyril >> >>>> >> >>>> >> >>>> On 09/18/2014 05:21 AM, Howard wrote: >> >>>> >> >>>> Hi, >> >>>> >> >>>> I use rtkfdk to reconstruct varian cbct images following the example >> on >> >>>> rtk wiki page. The projections were obtained with half fan mode >> because it >> >>>> is an abdominal region with the patient lateral x AP dimension of >> 550x550. >> >>>> The reconstructed cbct images have a big bright circle around >> >>>> the image. Please see the image: >> >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> >>>> >> >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands >> were >> >>>> used: >> >>>> >> >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >> >>>> --regexp Proj_.*.hnd -o varianGeometry >> >>>> and >> >>>> >> >>>> rtkfdk \ >> >>>> --geometry varianGeometry \ >> >>>> --regexp .*.hnd \ >> >>>> --path ../Scan0 \ >> >>>> --output rec.mha \ >> >>>> --verbose \ >> >>>> --spacing 2.0,2.0,2.0 \ >> >>>> --dimension 256,100,256 \ >> >>>> The projections are stored in the standard varian format: Scan0 and >> >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >> handled >> >>>> the half fan geometry properly. What did I do wrong then? Many >> thanks! >> >>>> >> >>>> -howard >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> Rtk-users mailing list >> >>>> Rtk-users at public.kitware.com >> >>>> http://public.kitware.com/mailman/listinfo/rtk-users >> >>>> >> >>>> >> >>>> -- >> >>>> -- >> >>>> Cyril Mory, Post-doc >> >>>> CREATIS >> >>>> Leon Berard cancer treatment center >> >>>> 28 rue La?nnec >> >>>> 69373 Lyon cedex 08 FRANCE >> >>>> >> >>>> Mobile: +33 6 69 46 73 79 >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> Rtk-users mailing list >> >>>> Rtk-users at public.kitware.com >> >>>> http://public.kitware.com/mailman/listinfo/rtk-users >> >>>> >> >>> >> >> >> >> >> >> -- >> >> -- >> >> Cyril Mory, Post-doc >> >> CREATIS >> >> Leon Berard cancer treatment center >> >> 28 rue La?nnec >> >> 69373 Lyon cedex 08 FRANCE >> >> >> >> Mobile: +33 6 69 46 73 79 >> > >> > >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ucabba1 at ucl.ac.uk Fri Sep 19 07:04:49 2014 From: ucabba1 at ucl.ac.uk (Ben Champion) Date: Fri, 19 Sep 2014 12:04:49 +0100 Subject: [Rtk-users] Would you like RTK trainings ? In-Reply-To: <541AA5CA.9050306@creatis.insa-lyon.fr> References: <541AA5CA.9050306@creatis.insa-lyon.fr> Message-ID: <541C0DD1.4070203@ucl.ac.uk> Hi Cyril, Having used RTK (and ITK) for approximately 1 year now, I have learnt mainly by trial and error, and by reading the source code and wiki examples. (Aside: many thanks to the RTK community for these!) Nevertheless, I think I could benefit from some kind of RTK training for my future work. The kinds of topics that would be most interesting to me are: - theory/use of reconstruction methods other than FDK (e.g. SART, 4D ROOSTER, ...) - motion compensated reconstruction - compressed sensing in tomography - extending RTK (and contributing back to the community) That said, I would not be averse to at least some discussion of "basics of tomography", "starting to use RTK with your own data", and "practical issues in circular CBCT" and in fact it could help fill some gaps in my knowledge. Best wishes, Ben -- Doctoral Student (MRes/EngD) Centre for Medical Image Computing University College London Room 3.01 Engineering Front Building Torrington Place LONDON WC1E 7JE On 18/09/14 10:28, Cyril Mory wrote: > Hi RTK users, > > A recent question on the mailing list by Louie triggered a > conversation between us. Louie asked whether there exists some sort of > training or workshop on RTK. In a nutshell, the answer is "No, not > yet, but why not talk about it ?". > > So I'd like to start some sort of "poll" to gather the requests you > might have on this topic: > Do you need / want / would like a training on RTK ? > If so, can you be more specific on what you would like to learn ? > (basics of tomography, how to start using RTK on your data, practical > issues in circular cone beam CT, motion compensated reconstruction, > compressed sensing in tomography, ITK programming, ... this is not an > exhaustive list) > > I think this is enough questions for the time being. The rest will > depend on your answers. > > Looking forward to reading you, > From lomahu at gmail.com Fri Sep 19 09:47:58 2014 From: lomahu at gmail.com (Howard) Date: Fri, 19 Sep 2014 09:47:58 -0400 Subject: [Rtk-users] Would you like RTK trainings ? In-Reply-To: <541C0DD1.4070203@ucl.ac.uk> References: <541AA5CA.9050306@creatis.insa-lyon.fr> <541C0DD1.4070203@ucl.ac.uk> Message-ID: Hi Cyril, It would be extremely helpful to have an RTK training. As Ben listed, I have similar interests. The topics I am very interested in are the following: 1. Basic principles of reconstruction with FDK and SART 2. Coding framework in RTK 3. Practical examples using iterative reconstruction technique 4. Compressed sensing applications in reconstruction 5. Practical issues in reconstruction specially CBCT reconstruction. Thanks! -howard On Fri, Sep 19, 2014 at 7:04 AM, Ben Champion wrote: > Hi Cyril, > > Having used RTK (and ITK) for approximately 1 year now, I have learnt > mainly by trial and error, and by reading the source code and wiki > examples. (Aside: many thanks to the RTK community for these!) > > Nevertheless, I think I could benefit from some kind of RTK training for > my future work. The kinds of topics that would be most interesting to me > are: > > - theory/use of reconstruction methods other than FDK (e.g. SART, 4D > ROOSTER, ...) > - motion compensated reconstruction > - compressed sensing in tomography > - extending RTK (and contributing back to the community) > > That said, I would not be averse to at least some discussion of "basics of > tomography", "starting to use RTK with your own data", and "practical > issues in circular CBCT" and in fact it could help fill some gaps in my > knowledge. > > Best wishes, > > Ben > -- > Doctoral Student (MRes/EngD) > Centre for Medical Image Computing > University College London > Room 3.01 Engineering Front Building > Torrington Place > LONDON > WC1E 7JE > > > > On 18/09/14 10:28, Cyril Mory wrote: > >> Hi RTK users, >> >> A recent question on the mailing list by Louie triggered a conversation >> between us. Louie asked whether there exists some sort of training or >> workshop on RTK. In a nutshell, the answer is "No, not yet, but why not >> talk about it ?". >> >> So I'd like to start some sort of "poll" to gather the requests you might >> have on this topic: >> Do you need / want / would like a training on RTK ? >> If so, can you be more specific on what you would like to learn ? (basics >> of tomography, how to start using RTK on your data, practical issues in >> circular cone beam CT, motion compensated reconstruction, compressed >> sensing in tomography, ITK programming, ... this is not an exhaustive list) >> >> I think this is enough questions for the time being. The rest will depend >> on your answers. >> >> Looking forward to reading you, >> >> > _______________________________________________ > 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: From padraig.looney at gmail.com Mon Sep 8 08:43:27 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Mon, 8 Sep 2014 13:43:27 +0100 Subject: [Rtk-users] RTK helloworld Message-ID: Dear all, I am trying to get the HelloWorld example running but I get a large number of errors after the build. I am using ITK-4.6 and have followed the instructions as per http://wiki.openrtk.org/index.php/RTK_wiki_help#Tutorial_0_-_Building_an_HelloWorld_application_with_RTK My executable is built and is working but I have hundreds of errors. The first few are. CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::MemoryAllocationError::MemoryAllocationError(std::string const&, unsigned int, std::string const&, std::string const&)': main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x35): undefined reference to `itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, std::string const&, std::string const&)' main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x40): undefined reference to `vtable for itk::MemoryAllocationError' CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::Object::SetObjectName(std::string)': main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x25): undefined reference to `itk::Object::GetDebug() const' main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x2e): undefined reference to `itk::Object::GetGlobalWarningDisplay()' main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x12e): undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::DataObject::SetRealTimeStamp(itk::RealTimeStamp)': main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x25): undefined reference to `itk::Object::GetDebug() const' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x2e): undefined reference to `itk::Object::GetGlobalWarningDisplay()' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0xf1): undefined reference to `itk::operator<<(std::ostream&, itk::RealTimeStamp const&)' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x12e): undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x169): undefined reference to `itk::RealTimeStamp::operator!=(itk::RealTimeStamp const&) const' Thanks P?draig -------------- next part -------------- An HTML attachment was scrubbed... URL: From julien.jomier at kitware.com Mon Sep 8 09:11:50 2014 From: julien.jomier at kitware.com (Julien Jomier) Date: Mon, 08 Sep 2014 15:11:50 +0200 Subject: [Rtk-users] RTK helloworld In-Reply-To: References: Message-ID: <540DAB16.3050904@kitware.com> Dear Padraig, When you say "built and is working but I have hundreds of errors" do you mean that you have successfully compiled and linked the example? It seems that your example cannot find the ITK libraries. Are you building ITK and RTK using BUILD_SHARED_LIBS to ON in CMake? Julien On 08/09/2014 14:43, Padraig Looney wrote: > Dear all, > > I am trying to get the HelloWorld example running but I get a large > number of errors after the build. I am using ITK-4.6 and have followed > the instructions as per > > http://wiki.openrtk.org/index.php/RTK_wiki_help#Tutorial_0_-_Building_an_HelloWorld_application_with_RTK > > My executable is built and is working but I have hundreds of errors. The > first few are. > > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::MemoryAllocationError::MemoryAllocationError(std::string const&, > unsigned int, std::string const&, std::string const&)': > main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x35): > undefined reference to > `itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, > std::string const&, std::string const&)' > main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x40): > undefined reference to `vtable for itk::MemoryAllocationError' > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::Object::SetObjectName(std::string)': > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x2e): > undefined reference to `itk::Object::GetGlobalWarningDisplay()' > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x12e): > undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::DataObject::SetRealTimeStamp(itk::RealTimeStamp)': > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x2e): > undefined reference to `itk::Object::GetGlobalWarningDisplay()' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0xf1): > undefined reference to `itk::operator<<(std::ostream&, > itk::RealTimeStamp const&)' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x12e): > undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x169): > undefined reference to > `itk::RealTimeStamp::operator!=(itk::RealTimeStamp const&) const' > > > Thanks > P?draig > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > From julien.jomier at kitware.com Mon Sep 8 09:32:47 2014 From: julien.jomier at kitware.com (Julien Jomier) Date: Mon, 08 Sep 2014 15:32:47 +0200 Subject: [Rtk-users] RTK helloworld In-Reply-To: References: <540DAB16.3050904@kitware.com> Message-ID: <540DAFFF.4080103@kitware.com> I'm guessing the ITK shared libs cannot be found. Can you specify the path where the ITK libraries (.so) are located in the LD_LIBRARY_PATH before your run make? Julien On 08/09/2014 15:23, Padraig Looney wrote: > It has successfully compiled using ccmake and make. I presume that has > successfully linked it. The errors were produced with make. > > Both the SharedLibs variables are set to ON. > > I've tried building RTK two different ways. Once by allowing cmake to > find ITK. This way ITK_DIR is set to /usr/local/lib/cmake/ITK-4.6 > > The other way I built it was by setting ITK_DIR to be the location of > the build directory. Which is what I understand from the wiki > > "When CMake asks for the ITK_DIR, specify the binary directory where ITK > is built and choose CMAKE_BUILD_TYPE (default: Release)" > > It didn't make any difference though. > > On Mon, Sep 8, 2014 at 2:11 PM, Julien Jomier > wrote: > > Dear Padraig, > > When you say "built and is working but I have hundreds of errors" do > you mean that you have successfully compiled and linked the example? > It seems that your example cannot find the ITK libraries. Are you > building ITK and RTK using BUILD_SHARED_LIBS to ON in CMake? > > Julien > > > On 08/09/2014 14:43, Padraig Looney wrote: > > Dear all, > > I am trying to get the HelloWorld example running but I get a large > number of errors after the build. I am using ITK-4.6 and have > followed > the instructions as per > > http://wiki.openrtk.org/index.__php/RTK_wiki_help#Tutorial_0_-___Building_an_HelloWorld___application_with_RTK > > > My executable is built and is working but I have hundreds of > errors. The > first few are. > > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::MemoryAllocationError::__MemoryAllocationError(std::__string > const&, > unsigned int, std::string const&, std::string const&)': > main.cpp:(.text.___ZN3itk21MemoryAllocationErrorC__2ERKSsjS2_S2_[___ZN3itk21MemoryAllocationErrorC__5ERKSsjS2_S2_]+0x35): > undefined reference to > `itk::ExceptionObject::__ExceptionObject(std::string const&, > unsigned int, > std::string const&, std::string const&)' > main.cpp:(.text.___ZN3itk21MemoryAllocationErrorC__2ERKSsjS2_S2_[___ZN3itk21MemoryAllocationErrorC__5ERKSsjS2_S2_]+0x40): > undefined reference to `vtable for itk::MemoryAllocationError' > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::Object::SetObjectName(__std::string)': > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x2e): > undefined reference to `itk::Object::__GetGlobalWarningDisplay()' > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x12e): > undefined reference to > `itk::__OutputWindowDisplayDebugText(__char const*)' > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::DataObject::__SetRealTimeStamp(itk::__RealTimeStamp)': > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x2e): > undefined reference to `itk::Object::__GetGlobalWarningDisplay()' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0xf1): > undefined reference to `itk::operator<<(std::ostream&__, > itk::RealTimeStamp const&)' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x12e): > undefined reference to > `itk::__OutputWindowDisplayDebugText(__char const*)' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x169): > undefined reference to > `itk::RealTimeStamp::operator!__=(itk::RealTimeStamp const&) const' > > > Thanks > P?draig > > > _________________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/__mailman/listinfo/rtk-users > > > From theday79 at gmail.com Mon Sep 8 23:22:32 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Mon, 8 Sep 2014 23:22:32 -0400 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> Message-ID: <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> Hi all, I've been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven't had any problem with full scan images (360 degree scan), I found that rtkfdk doesn't work well with my short scan images obtained from our Elekta XVI system. I've used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn't change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: short_scan.PNG Type: image/png Size: 166828 bytes Desc: not available URL: From simon.rit at creatis.insa-lyon.fr Tue Sep 9 01:24:25 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Tue, 9 Sep 2014 07:24:25 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> Message-ID: Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > _______________________________________________ > 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: From padraig.looney at gmail.com Tue Sep 9 06:05:01 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 9 Sep 2014 11:05:01 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction Message-ID: When I try to run the "FirstReconstruction" example I am getting a segmentation fault. The following is the output from gdb Program received signal SIGSEGV, Segmentation fault. 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue Sep 9 06:32:29 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 09 Sep 2014 12:32:29 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: Message-ID: <540ED73D.3080003@creatis.insa-lyon.fr> Hi Padraig, With so little information, there isn't much we can do to help you. I usually track segfaults by compiling in Debug mode (by setting "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT Creator (any decent IDE will do just fine, and should stop when the segfault occurs, allowing you to trace it back) Good luck, Cyril On 09/09/2014 12:05 PM, Padraig Looney wrote: > When I try to run the "FirstReconstruction" example I am getting a > segmentation fault. > > The following is the output from gdb > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () > > > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Tue Sep 9 08:40:48 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Tue, 9 Sep 2014 14:40:48 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing wrote: > Hi all, > > > > We have experienced the same problem as YangKyun in our institution. Find > attached a screendump of a short scan, and the ElektaGeometry file. We are > reconstructing on CPU using RTK 1.0.0, and have encountered the strange > behavior a couple of times without being able to find any patterns. Our > images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree > scan with the S20 filter on an Elekta XVI machine. > > > > Hope this helps in tracking down the problem. > > > > > > Best regards, > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *P? vegne > af *Simon Rit > *Sendt:* 9. september 2014 07:24 > *Til:* Yang Kyun Park > *Cc:* rtk-users at public.kitware.com > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Hi, > > Everything looks correct in what you did. What version of RTK did you use? > It looks like a bug in the angular weighting of the projections coming > from the discretization of the integral on the gantry angle. Could you send > us a copy of ElektaGeometry.xml and tell us what was the dimension of the > projections? We will look into it. > Thanks for the report, > Simon > > > > On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > > _______________________________________________ > 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: From theday79 at gmail.com Tue Sep 9 11:43:32 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Tue, 9 Sep 2014 11:43:32 -0400 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: <002e01cfcc44$d01763f0$70462bd0$@gmail.com> Hi Simon, Thank your for the prompt update. Now it works perfectly! Best, YangKyun From: simon.rit at gmail.com [mailto:simon.rit at gmail.com] On Behalf Of Simon Rit Sent: Tuesday, September 09, 2014 8:41 AM To: Rune Slot Thing Cc: Yang Kyun Park; rtk-users at public.kitware.com Subject: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: Hi all, We have experienced the same problem as YangKyun in our institution. Find attached a screendump of a short scan, and the ElektaGeometry file. We are reconstructing on CPU using RTK 1.0.0, and have encountered the strange behavior a couple of times without being able to find any patterns. Our images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree scan with the S20 filter on an Elekta XVI machine. Hope this helps in tracking down the problem. Best regards, Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: Rtk-users [mailto:rtk-users-bounces at public.kitware.com ] P? vegne af Simon Rit Sendt: 9. september 2014 07:24 Til: Yang Kyun Park Cc: rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park > wrote: Hi all, I?ve been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven?t had any problem with full scan images (360 degree scan), I found that rtkfdk doesn?t work well with my short scan images obtained from our Elekta XVI system. I?ve used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn?t change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun _______________________________________________ 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: From Rune.Slot.Thing at rsyd.dk Wed Sep 10 04:39:05 2014 From: Rune.Slot.Thing at rsyd.dk (Rune Slot Thing) Date: Wed, 10 Sep 2014 08:39:05 +0000 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> Hi Simon, I asked our IT-guy to recompile the new commit, but unfortunately he was unsuccessful. Here is what he writes: I've downloaded the master from git today and compiled in the VS 2008 pro 64bit on Win7 with itk 4.3.0 and fftw. The new fix does not compile because of issues on line 92-99 in rtkParkerShortScanImageFilter.txx error C2678: binary '==' : no operator found which takes a left-hand operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no acceptable conversion) and on line 73 error C2923: 'itk::Vector' : 'rtk::DaubechiesWaveletsConvolutionImageFilter::Pass' is not a valid template type argument for parameter 'T' f:\programmering\cxx\lib\rtk\master-2014-09-10\code\rtkDaubechiesWaveletsConvolutionImageFilter.h 73 rtkadmmwavelets Is it a typo with to identical lines (LINE 93 = 94)? Thanks again for your prompt help. Best regards, Rune Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: simon.rit at gmail.com [mailto:simon.rit at gmail.com] P? vegne af Simon Rit Sendt: 9. september 2014 14:41 Til: Rune Slot Thing Cc: Yang Kyun Park; rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: Hi all, We have experienced the same problem as YangKyun in our institution. Find attached a screendump of a short scan, and the ElektaGeometry file. We are reconstructing on CPU using RTK 1.0.0, and have encountered the strange behavior a couple of times without being able to find any patterns. Our images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree scan with the S20 filter on an Elekta XVI machine. Hope this helps in tracking down the problem. Best regards, Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: Rtk-users [mailto:rtk-users-bounces at public.kitware.com] P? vegne af Simon Rit Sendt: 9. september 2014 07:24 Til: Yang Kyun Park Cc: rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park > wrote: Hi all, I?ve been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven?t had any problem with full scan images (360 degree scan), I found that rtkfdk doesn?t work well with my short scan images obtained from our Elekta XVI system. I?ve used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn?t change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun _______________________________________________ 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: From wuchao04 at gmail.com Wed Sep 10 07:35:27 2014 From: wuchao04 at gmail.com (Chao Wu) Date: Wed, 10 Sep 2014 13:35:27 +0200 Subject: [Rtk-users] coordinates of 3D volume Message-ID: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 08:38:43 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 14:38:43 +0200 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: Message-ID: Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu wrote: > Hi all, > > I see that rtk use certain industrial standard for the coordinates of 2D > projections and 3D volumes. However in medical imaging, the xy planes of a > volume are usually transaxial slices while the 3rd dimension is aligned > with the axis of rotation. I would like to switch to this coordinates in my > own code. Is there anyone who can give me some comments and suggestions > about where to start? Thanks. > > Regards, > Chao > > _______________________________________________ > 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: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 08:43:54 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 14:43:54 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> Message-ID: I wonder why it compiles on Linux... but anyway, sorry, it's been fixed. On Wed, Sep 10, 2014 at 10:39 AM, Rune Slot Thing wrote: > Hi Simon, > > > > I asked our IT-guy to recompile the new commit, but unfortunately he was > unsuccessful. Here is what he writes: > > > > I've downloaded the master from git today and compiled in the VS 2008 pro > 64bit on Win7 with itk 4.3.0 and fftw. > > > > The new fix does not compile because of issues on line 92-99 in > rtkParkerShortScanImageFilter.txx > > > > error C2678: binary '==' : no operator found which takes a left-hand > operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no > acceptable conversion) > > > > and on line 73 > > > > error C2923: 'itk::Vector' : > 'rtk::DaubechiesWaveletsConvolutionImageFilter::Pass' is not a > valid template type argument for parameter 'T' > f:\programmering\cxx\lib\rtk\master-2014-09-10\code\rtkDaubechiesWaveletsConvolutionImageFilter.h > 73 rtkadmmwavelets > > Is it a typo with to identical lines (LINE 93 = 94)? > > > > Thanks again for your prompt help. > > > > Best regards, > > Rune > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* simon.rit at gmail.com [mailto:simon.rit at gmail.com] *P? vegne af *Simon > Rit > *Sendt:* 9. september 2014 14:41 > *Til:* Rune Slot Thing > *Cc:* Yang Kyun Park; rtk-users at public.kitware.com > > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Thank you Rune, this was very helpful. The pattern is that several > projections have the same gantry angle on one side of the gantry angle gap. > Something that happens with Elekta Synergy... I think that the bug has been > fixed: > > https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f > > > > On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: > > Hi all, > > > > We have experienced the same problem as YangKyun in our institution. Find > attached a screendump of a short scan, and the ElektaGeometry file. We are > reconstructing on CPU using RTK 1.0.0, and have encountered the strange > behavior a couple of times without being able to find any patterns. Our > images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree > scan with the S20 filter on an Elekta XVI machine. > > > > Hope this helps in tracking down the problem. > > > > > > Best regards, > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *P? vegne > af *Simon Rit > *Sendt:* 9. september 2014 07:24 > *Til:* Yang Kyun Park > *Cc:* rtk-users at public.kitware.com > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Hi, > > Everything looks correct in what you did. What version of RTK did you use? > It looks like a bug in the angular weighting of the projections coming > from the discretization of the integral on the gantry angle. Could you send > us a copy of ElektaGeometry.xml and tell us what was the dimension of the > projections? We will look into it. > Thanks for the report, > Simon > > > > On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > > _______________________________________________ > 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: From theday79 at gmail.com Wed Sep 10 09:47:17 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Wed, 10 Sep 2014 09:47:17 -0400 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: Message-ID: <003801cfccfd$bd111800$37334800$@gmail.com> Hi Chao, I had the same issue on my work and I?ve managed to fix it by the following codes. I?m not sure this is the optimal way to do it but at least it worked in my case. (Or you can transform it in 3D Slicer. In transform menu, you need to apply the following matrix: 0 0 -1 0 1 0 0 0 0 1 0 0 0 0 0 1 to the target image, harden the transform then export the image.) Best, YangKyun // OutputImageType = // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction //Same image type from original image -3D & float OutputImageType::IndexType start_trans; start_trans[0] = 0; start_trans[1] = 0; start_trans[2] = 0; OutputImageType::SizeType size_trans; size_trans[0] = sizeOutput[0]; // X //410 size_trans[1] = sizeOutput[2]; //Y // 410 size_trans[2] = sizeOutput[1]; //Z // 120? OutputImageType::SpacingType spacing_trans; spacing_trans[0] = spacing[0]; spacing_trans[1] = spacing[2]; spacing_trans[2] = spacing[1]; OutputImageType::PointType Origin_trans; Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; OutputImageType::RegionType region_trans; region_trans.SetSize(size_trans); region_trans.SetIndex(start_trans); /* 2) Prepare Target image */ OutputImageType::Pointer targetImg = streamerBP->GetOutput(); /* 3) Configure transform */ typedef itk::Euler3DTransform< double > TransformType; TransformType::Pointer transform = TransformType::New(); TransformType::ParametersType param; param.SetSize(6); //MAXIMUM PARAM NUMBER: 6!!! param.put(0, 0.0); //rot X // 0.5 = PI/2 param.put(1, itk::Math::pi/2.0);//rot Y param.put(2, itk::Math::pi/-2.0);//rot Z param.put(3, 0.0); // Trans X mm param.put(4, 0.0); // Trans Y mm param.put(5, 0.0); // Trans Z mm TransformType::ParametersType fixedParam(3); //rotation center fixedParam.put(0,0); fixedParam.put(1,0); fixedParam.put(2,0); transform->SetParameters(param); transform->SetFixedParameters(fixedParam); //Center of the Transform cout << "Transform matrix:" << " " << endl; cout << transform->GetMatrix() << std::endl; typedef itk::ResampleImageFilter ResampleFilterType; ResampleFilterType::Pointer resampler = ResampleFilterType::New(); //OutputImageType::RegionType fixedImg_Region = fixedImg->GetLargestPossibleRegion().GetSize(); resampler->SetInput(targetImg); resampler->SetSize(size_trans); resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large Canvas resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 resampler->SetOutputDirection( targetImg->GetDirection() ); //image normal? resampler->SetTransform(transform); //LR flip cout << "LR flip filter is being applied" << endl; typedef itk::FlipImageFilter< OutputImageType > FilterType; FilterType::Pointer flipFilter = FilterType::New(); typedef FilterType::FlipAxesArrayType FlipAxesArrayType; FlipAxesArrayType arrFlipAxes; arrFlipAxes[0] = 1; arrFlipAxes[1] = 0; arrFlipAxes[2] = 0; flipFilter->SetFlipAxes(arrFlipAxes); flipFilter->SetInput(resampler->GetOutput()); flipFilter->Update(); //Use flipFilter->GetOutput() for further process From: Rtk-users [mailto:rtk-users-bounces at public.kitware.com] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 8:39 AM To: Chao Wu Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu > wrote: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao _______________________________________________ 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: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 10:50:00 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 16:50:00 +0200 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: <003801cfccfd$bd111800$37334800$@gmail.com> References: <003801cfccfd$bd111800$37334800$@gmail.com> Message-ID: This option works but there is a risk of an additional interpolation by the resampler and it costs some computing time. The other option I suggested requires to modify the transform parameter of the source (in this example, add constantImageSource->SetDirection(transform->GetMatrix()); where transform is that of Yang's example, then use itk::ChangeImageInformation to reset the transform to identity. On Wed, Sep 10, 2014 at 3:47 PM, Yang Kyun Park wrote: > Hi Chao, > > > > I had the same issue on my work and I?ve managed to fix it by the > following codes. > > I?m not sure this is the optimal way to do it but at least it worked in my > case. > > > > (Or you can transform it in 3D Slicer. > > In transform menu, you need to apply the following matrix: > > 0 0 -1 0 > > 1 0 0 0 > > 0 1 0 0 > > 0 0 0 1 > > to the target image, harden the transform then export the image.) > > > > Best, > > YangKyun > > > > > > // OutputImageType = > > // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction > > > > //Same image type from original image -3D & float > > OutputImageType::IndexType start_trans; > > start_trans[0] = 0; > > start_trans[1] = 0; > > start_trans[2] = 0; > > > > OutputImageType::SizeType size_trans; > > size_trans[0] = sizeOutput[0]; // X //410 > > size_trans[1] = sizeOutput[2]; //Y // 410 > > size_trans[2] = sizeOutput[1]; //Z // 120? > > > > OutputImageType::SpacingType spacing_trans; > > spacing_trans[0] = spacing[0]; > > spacing_trans[1] = spacing[2]; > > spacing_trans[2] = spacing[1]; > > > > OutputImageType::PointType Origin_trans; > > Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; > > Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; > > Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; > > > > OutputImageType::RegionType region_trans; > > region_trans.SetSize(size_trans); > > region_trans.SetIndex(start_trans); > > > > /* 2) Prepare Target image */ > > OutputImageType::Pointer targetImg = streamerBP->GetOutput(); > > > > /* 3) Configure transform */ > > typedef itk::Euler3DTransform< double > TransformType; > > TransformType::Pointer transform = TransformType::New(); > > > > TransformType::ParametersType param; > > param.SetSize(6); > > //MAXIMUM PARAM NUMBER: 6!!! > > param.put(0, 0.0); //rot X // 0.5 = PI/2 > > param.put(1, itk::Math::pi/2.0);//rot Y > > param.put(2, itk::Math::pi/-2.0);//rot Z > > param.put(3, 0.0); // Trans X mm > > param.put(4, 0.0); // Trans Y mm > > param.put(5, 0.0); // Trans Z mm > > > > TransformType::ParametersType fixedParam(3); //rotation center > > fixedParam.put(0,0); > > fixedParam.put(1,0); > > fixedParam.put(2,0); > > > > transform->SetParameters(param); > > transform->SetFixedParameters(fixedParam); //Center of the > Transform > > > > cout << "Transform matrix:" << " " << endl; > > cout << transform->GetMatrix() << std::endl; > > > > typedef itk::ResampleImageFilter > ResampleFilterType; > > ResampleFilterType::Pointer resampler = ResampleFilterType::New(); > > //OutputImageType::RegionType fixedImg_Region = > fixedImg->GetLargestPossibleRegion().GetSize(); > > > > resampler->SetInput(targetImg); > > resampler->SetSize(size_trans); > > resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large > Canvas > > resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 > > resampler->SetOutputDirection( targetImg->GetDirection() ); //image > normal? > > resampler->SetTransform(transform); > > > > //LR flip > > > > cout << "LR flip filter is being applied" << endl; > > > > typedef itk::FlipImageFilter< OutputImageType > FilterType; > > > > FilterType::Pointer flipFilter = FilterType::New(); > > typedef FilterType::FlipAxesArrayType FlipAxesArrayType; > > > > FlipAxesArrayType arrFlipAxes; > > arrFlipAxes[0] = 1; > > arrFlipAxes[1] = 0; > > arrFlipAxes[2] = 0; > > > > flipFilter->SetFlipAxes(arrFlipAxes); > > flipFilter->SetInput(resampler->GetOutput()); > > flipFilter->Update(); > > > > //Use flipFilter->GetOutput() for further process > > > > > > > > *From:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *On > Behalf Of *Simon Rit > *Sent:* Wednesday, September 10, 2014 8:39 AM > *To:* Chao Wu > *Cc:* rtk-users at openrtk.org > *Subject:* Re: [Rtk-users] coordinates of 3D volume > > > > Hi, > > I wish there was a single industrial standard... You have the DICOM > standard in mind and I used an IEC standard (see wiki). You can play with > the --direction option to orientate the voxel axes of your image (see > itk::Image documentation) and then reset the direction of your output image > to identity, I think that will do what you want. > > Simon > > > > On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu wrote: > > Hi all, > > > > I see that rtk use certain industrial standard for the coordinates of 2D > projections and 3D volumes. However in medical imaging, the xy planes of a > volume are usually transaxial slices while the 3rd dimension is aligned > with the axis of rotation. I would like to switch to this coordinates in my > own code. Is there anyone who can give me some comments and suggestions > about where to start? Thanks. > > > > Regards, > > Chao > > > _______________________________________________ > 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: From theday79 at gmail.com Wed Sep 10 10:56:28 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Wed, 10 Sep 2014 10:56:28 -0400 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: <003801cfccfd$bd111800$37334800$@gmail.com> Message-ID: <005e01cfcd07$6783cdb0$368b6910$@gmail.com> Hi Simon, Thanks for the good tip. Let me try out your approach too! YangKyun From: simon.rit at gmail.com [mailto:simon.rit at gmail.com] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 10:50 AM To: Yang Kyun Park Cc: Chao Wu; rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume This option works but there is a risk of an additional interpolation by the resampler and it costs some computing time. The other option I suggested requires to modify the transform parameter of the source (in this example, add constantImageSource->SetDirection(transform->GetMatrix()); where transform is that of Yang's example, then use itk::ChangeImageInformation to reset the transform to identity. On Wed, Sep 10, 2014 at 3:47 PM, Yang Kyun Park > wrote: Hi Chao, I had the same issue on my work and I?ve managed to fix it by the following codes. I?m not sure this is the optimal way to do it but at least it worked in my case. (Or you can transform it in 3D Slicer. In transform menu, you need to apply the following matrix: 0 0 -1 0 1 0 0 0 0 1 0 0 0 0 0 1 to the target image, harden the transform then export the image.) Best, YangKyun // OutputImageType = // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction //Same image type from original image -3D & float OutputImageType::IndexType start_trans; start_trans[0] = 0; start_trans[1] = 0; start_trans[2] = 0; OutputImageType::SizeType size_trans; size_trans[0] = sizeOutput[0]; // X //410 size_trans[1] = sizeOutput[2]; //Y // 410 size_trans[2] = sizeOutput[1]; //Z // 120? OutputImageType::SpacingType spacing_trans; spacing_trans[0] = spacing[0]; spacing_trans[1] = spacing[2]; spacing_trans[2] = spacing[1]; OutputImageType::PointType Origin_trans; Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; OutputImageType::RegionType region_trans; region_trans.SetSize(size_trans); region_trans.SetIndex(start_trans); /* 2) Prepare Target image */ OutputImageType::Pointer targetImg = streamerBP->GetOutput(); /* 3) Configure transform */ typedef itk::Euler3DTransform< double > TransformType; TransformType::Pointer transform = TransformType::New(); TransformType::ParametersType param; param.SetSize(6); //MAXIMUM PARAM NUMBER: 6!!! param.put(0, 0.0); //rot X // 0.5 = PI/2 param.put(1, itk::Math::pi/2.0);//rot Y param.put(2, itk::Math::pi/-2.0);//rot Z param.put(3, 0.0); // Trans X mm param.put(4, 0.0); // Trans Y mm param.put(5, 0.0); // Trans Z mm TransformType::ParametersType fixedParam(3); //rotation center fixedParam.put(0,0); fixedParam.put(1,0); fixedParam.put(2,0); transform->SetParameters(param); transform->SetFixedParameters(fixedParam); //Center of the Transform cout << "Transform matrix:" << " " << endl; cout << transform->GetMatrix() << std::endl; typedef itk::ResampleImageFilter ResampleFilterType; ResampleFilterType::Pointer resampler = ResampleFilterType::New(); //OutputImageType::RegionType fixedImg_Region = fixedImg->GetLargestPossibleRegion().GetSize(); resampler->SetInput(targetImg); resampler->SetSize(size_trans); resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large Canvas resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 resampler->SetOutputDirection( targetImg->GetDirection() ); //image normal? resampler->SetTransform(transform); //LR flip cout << "LR flip filter is being applied" << endl; typedef itk::FlipImageFilter< OutputImageType > FilterType; FilterType::Pointer flipFilter = FilterType::New(); typedef FilterType::FlipAxesArrayType FlipAxesArrayType; FlipAxesArrayType arrFlipAxes; arrFlipAxes[0] = 1; arrFlipAxes[1] = 0; arrFlipAxes[2] = 0; flipFilter->SetFlipAxes(arrFlipAxes); flipFilter->SetInput(resampler->GetOutput()); flipFilter->Update(); //Use flipFilter->GetOutput() for further process From: Rtk-users [mailto:rtk-users-bounces at public.kitware.com ] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 8:39 AM To: Chao Wu Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu > wrote: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao _______________________________________________ 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: From ghostcz at hotmail.com Mon Sep 15 08:09:46 2014 From: ghostcz at hotmail.com (ghostcz) Date: Mon, 15 Sep 2014 14:09:46 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? Message-ID: Dear Rtk users, How can I select one (or maybe more?) specific GPU to run my reconstruction? It seems if I start a second instance of the reconstruction program, it will run on the same GPU. Best regards, Louie -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Mon Sep 15 08:45:24 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Mon, 15 Sep 2014 14:45:24 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: Message-ID: Hi, Good question, I did not hear anybody working on multiple GPUs so far. It currently uses the first Cuda compatible device. I think you'll have to look up in the Cuda manual to see how to switch to another one but there is nothing available in the RTK lib yet. Don't hesitate to suggest some code changes to add this feature. Simon On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: > Dear Rtk users, > > How can I select one (or maybe more?) specific GPU to run my reconstruction? > It seems if I start a second instance of the reconstruction program, it will > run on the same GPU. > > Best regards, > Louie > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > From padraig.looney at gmail.com Tue Sep 16 10:07:05 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 16 Sep 2014 15:07:05 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: <540ED73D.3080003@creatis.insa-lyon.fr> References: <540ED73D.3080003@creatis.insa-lyon.fr> Message-ID: Thanks Cyril, Following your advice I have tracked the seg fault down to line 36 in FirstReconstruction geometry->AddProjection(sid, sdd, angle, isox, isoy); } I realised that I managed to build the examples with RTK fine and the same example runs without a seg fault in the build directory. On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory wrote: > Hi Padraig, > > With so little information, there isn't much we can do to help you. > I usually track segfaults by compiling in Debug mode (by setting > "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT > Creator (any decent IDE will do just fine, and should stop when the > segfault occurs, allowing you to trace it back) > > Good luck, > Cyril > > > On 09/09/2014 12:05 PM, Padraig Looney wrote: > > When I try to run the "FirstReconstruction" example I am getting a > segmentation fault. > > The following is the output from gdb > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () > > > > > _______________________________________________ > Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users > > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue Sep 16 10:23:07 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 16 Sep 2014 16:23:07 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: <540ED73D.3080003@creatis.insa-lyon.fr> Message-ID: <541847CB.8020807@creatis.insa-lyon.fr> Hi Padraig, Does the segfault happen at the first call of geometry->AddProjection(...) or later ? My guess is that, for some reason, geometry is not initialized. Can you make sure it is by setting a breakpoint just before ? You should also make sure that all variables involved in this call, ie "sid", "sdd", "angle", "isox" and "isoy" have reasonable values before the call. It is probably not a good question, yet I have to ask : did you modify something in the file examples/FirstReconstruction/FirstReconstruction.cxx ? Regards, Cyril On 09/16/2014 04:07 PM, Padraig Looney wrote: > Thanks Cyril, > > Following your advice I have tracked the seg fault down to line 36 in > FirstReconstruction > > geometry->AddProjection(sid, > sdd, > angle, > isox, > isoy); > } > > I realised that I managed to build the examples with RTK fine and the > same example runs without a seg fault in the build directory. > > On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory > > wrote: > > Hi Padraig, > > With so little information, there isn't much we can do to help you. > I usually track segfaults by compiling in Debug mode (by setting > "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug > in QT Creator (any decent IDE will do just fine, and should stop > when the segfault occurs, allowing you to trace it back) > > Good luck, > Cyril > > > On 09/09/2014 12:05 PM, Padraig Looney wrote: >> When I try to run the "FirstReconstruction" example I am getting >> a segmentation fault. >> >> The following is the output from gdb >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () >> >> >> >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://public.kitware.com/mailman/listinfo/rtk-users > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From padraig.looney at gmail.com Tue Sep 16 10:38:05 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 16 Sep 2014 15:38:05 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: <541847CB.8020807@creatis.insa-lyon.fr> References: <540ED73D.3080003@creatis.insa-lyon.fr> <541847CB.8020807@creatis.insa-lyon.fr> Message-ID: It happens with the first call. I set a breakpoint just before and it is not empty. I have tried to attach a screen capture of my space. Yes I thought I may have changed something but I have copied the directory twice from the original download in which it builds correctly. I cloned this with git and there are no changes. On Tue, Sep 16, 2014 at 3:23 PM, Cyril Mory wrote: > Hi Padraig, > > Does the segfault happen at the first call of geometry->AddProjection(...) > or later ? > > My guess is that, for some reason, geometry is not initialized. Can you > make sure it is by setting a breakpoint just before ? > You should also make sure that all variables involved in this call, ie > "sid", "sdd", "angle", "isox" and "isoy" have reasonable values before the > call. > > It is probably not a good question, yet I have to ask : did you modify > something in the file examples/FirstReconstruction/FirstReconstruction.cxx > ? > > Regards, > Cyril > > > On 09/16/2014 04:07 PM, Padraig Looney wrote: > > Thanks Cyril, > > Following your advice I have tracked the seg fault down to line 36 in > FirstReconstruction > > geometry->AddProjection(sid, > sdd, > angle, > isox, > isoy); > } > > I realised that I managed to build the examples with RTK fine and the > same example runs without a seg fault in the build directory. > > On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory < > cyril.mory at creatis.insa-lyon.fr> wrote: > >> Hi Padraig, >> >> With so little information, there isn't much we can do to help you. >> I usually track segfaults by compiling in Debug mode (by setting >> "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT >> Creator (any decent IDE will do just fine, and should stop when the >> segfault occurs, allowing you to trace it back) >> >> Good luck, >> Cyril >> >> >> On 09/09/2014 12:05 PM, Padraig Looney wrote: >> >> When I try to run the "FirstReconstruction" example I am getting a >> segmentation fault. >> >> The following is the output from gdb >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () >> >> >> >> >> _______________________________________________ >> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 >> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: rtkSegFaultFirstRecon.png Type: image/png Size: 273538 bytes Desc: not available URL: From cyril.mory at creatis.insa-lyon.fr Wed Sep 17 05:59:58 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Wed, 17 Sep 2014 11:59:58 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: Message-ID: <54195B9E.10000@creatis.insa-lyon.fr> Hi Louie, We have been investigating your question bit. A first possible solution, which may be sufficient for your needs, could be to set the CUDA_VISIBLE_DEVICES environment variable. You'll find details here : http://www.acceleware.com/blog/cudavisibledevices-masking-gpus Here are two scripts I used to run tests on our two-GPUs server: ######### First script ######### echo "Running two instances of rtkfdk without specifying a GPU" CUDA_VISIBLE_DEVICES="0,1" time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g geom.xml --dimension 512 & time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g geom.xml --dimension 512 & ######### Second script ######### echo "Running two instances of rtkfdk, specifying which GPU to use for each" echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash ######### End ############# On our server, which has two identical GPUs, these two scripts took the same time. It seems that, in the first script, rtkfdk somehow managed to detect that the first GPU was in use and ran on the second one. But I can't guarantee under which conditions this happens, and surely it's safer to use the second script. This is the cheapest solution. If you need more than that, and you are ready to dive into the cuda filters' code as well as into the automatic transfers between CPU and GPU memory, do not hesitate to propose modifications of the RTK code. Regards, Cyril On 09/15/2014 02:45 PM, Simon Rit wrote: > Hi, > Good question, I did not hear anybody working on multiple GPUs so far. > It currently uses the first Cuda compatible device. I think you'll > have to look up in the Cuda manual to see how to switch to another one > but there is nothing available in the RTK lib yet. Don't hesitate to > suggest some code changes to add this feature. > Simon > > On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >> Dear Rtk users, >> >> How can I select one (or maybe more?) specific GPU to run my reconstruction? >> It seems if I start a second instance of the reconstruction program, it will >> run on the same GPU. >> >> Best regards, >> Louie >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://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 > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From ghostcz at hotmail.com Wed Sep 17 11:58:47 2014 From: ghostcz at hotmail.com (ghostcz) Date: Wed, 17 Sep 2014 17:58:47 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: <54195B9E.10000@creatis.insa-lyon.fr> References: <54195B9E.10000@creatis.insa-lyon.fr> Message-ID: Dear Cyril, Thank you for the follow-up. That is indeed a faster way to realize this function. I wrote a launcher instead, where I call cuda_set_device to select the device. No, I don?t think I know CUDA good enough to manage the memory transfer between the devices. Best regards, Louie P.S. is there any training or workshop focusing on rtk application and development available? -----Original Message----- From: Cyril Mory Sent: Wednesday, September 17, 2014 11:59 AM To: Simon Rit ; ghostcz Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] How to run the reconstruction on a specific GPU? Hi Louie, We have been investigating your question bit. A first possible solution, which may be sufficient for your needs, could be to set the CUDA_VISIBLE_DEVICES environment variable. You'll find details here : http://www.acceleware.com/blog/cudavisibledevices-masking-gpus Here are two scripts I used to run tests on our two-GPUs server: ######### First script ######### echo "Running two instances of rtkfdk without specifying a GPU" CUDA_VISIBLE_DEVICES="0,1" time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g geom.xml --dimension 512 & time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g geom.xml --dimension 512 & ######### Second script ######### echo "Running two instances of rtkfdk, specifying which GPU to use for each" echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash ######### End ############# On our server, which has two identical GPUs, these two scripts took the same time. It seems that, in the first script, rtkfdk somehow managed to detect that the first GPU was in use and ran on the second one. But I can't guarantee under which conditions this happens, and surely it's safer to use the second script. This is the cheapest solution. If you need more than that, and you are ready to dive into the cuda filters' code as well as into the automatic transfers between CPU and GPU memory, do not hesitate to propose modifications of the RTK code. Regards, Cyril On 09/15/2014 02:45 PM, Simon Rit wrote: > Hi, > Good question, I did not hear anybody working on multiple GPUs so far. > It currently uses the first Cuda compatible device. I think you'll > have to look up in the Cuda manual to see how to switch to another one > but there is nothing available in the RTK lib yet. Don't hesitate to > suggest some code changes to add this feature. > Simon > > On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >> Dear Rtk users, >> >> How can I select one (or maybe more?) specific GPU to run my >> reconstruction? >> It seems if I start a second instance of the reconstruction program, it >> will >> run on the same GPU. >> >> Best regards, >> Louie >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://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 > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From lomahu at gmail.com Wed Sep 17 23:21:34 2014 From: lomahu at gmail.com (Howard) Date: Wed, 17 Sep 2014 23:21:34 -0400 Subject: [Rtk-users] bright circle on the reconstructed image Message-ID: Hi, I use rtkfdk to reconstruct varian cbct images following the example on rtk wiki page. The projections were obtained with half fan mode because it is an abdominal region with the patient lateral x AP dimension of 550x550. The reconstructed cbct images have a big bright circle around the image. Please see the image: http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html I am using Ubuntu Linux box to reconstruct. Two sequential commands were used: ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ --regexp Proj_.*.hnd -o varianGeometry and rtkfdk \ --geometry varianGeometry \ --regexp .*.hnd \ --path ../Scan0 \ --output rec.mha \ --verbose \ --spacing 2.0,2.0,2.0 \ --dimension 256,100,256 \ The projections are stored in the standard varian format: Scan0 and ProjectionInfo.xml with 644 projection images. I assume that rtkfdk handled the half fan geometry properly. What did I do wrong then? Many thanks! -howard -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 04:12:23 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 10:12:23 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: Message-ID: <541A93E7.7010301@creatis.insa-lyon.fr> Hi Howard, The bright ring artifact is typically caused by high-pass filtering (the ramp filter used in FDK) of truncated projection data (when projections have non-zero values on the sides, the edge of the projection makes a sharp transition to zero). A classical answer to this problem is to pad the projections, for example with values starting from the values on the side and slowly decreasing to zero. rtkfdk can do this padding for you. Just add "--pad 0.1" to your options (or more than 0.1 if it isn't enough). Also, I noticed that your reconstructed image seems quite noisy. You might want to use a Hann windowing of the ramp filter to reduce the noise amplification effect of high-pass filtering. You can do that by adding "--hann 0.5" to your options. Note that the argument is a cut-off frequency, so smaller values mean more smoothing. Best regards, Cyril On 09/18/2014 05:21 AM, Howard wrote: > Hi, > I use rtkfdk to reconstruct varian cbct images following the example > on rtk wiki page. The projections were obtained with half fan mode > because it is an abdominal region with the patient lateral x AP > dimension of 550x550. The reconstructed cbct images have a big > bright circle around > the image. Please see the image: > http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > I am using Ubuntu Linux box to reconstruct. Two sequential commands > were used: > ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > --regexp Proj_.*.hnd -o varianGeometry > and > rtkfdk \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output rec.mha \ > --verbose \ > --spacing 2.0,2.0,2.0 \ > --dimension 256,100,256 \ > The projections are stored in the standard varian format: Scan0 and > ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled the half fan geometry properly. What did I do wrong then? > Many thanks! > -howard > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 04:53:34 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 10:53:34 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: <54195B9E.10000@creatis.insa-lyon.fr> Message-ID: <541A9D8E.5040403@creatis.insa-lyon.fr> Hi Louie, Good that you managed to solve your problem. Your question on training made us think a bit. Here are a few answers: - At the moment, there is only a wiki, the documentation and this mailing list - We're only a handful of developers working on RTK, so it seems too early, and too much logistics, to organize real workshops or training sessions in the near future - That being said, we would like to leave the door open. Surely it is important, if we want more people to use RTK and contribute to it, that new developers can learn easily and efficiently. I'll start a specific thread on the mailing list to gather the possible requests similar to yours - RTK uses ITK to do most of the work, therefore programming in RTK essentially requires knowing ITK and knowing some tomography. ITK training sessions are organized often and in many countries I hope it helps, Cyril On 09/17/2014 05:58 PM, ghostcz wrote: > Dear Cyril, > > Thank you for the follow-up. > That is indeed a faster way to realize this function. I wrote a > launcher instead, where I call cuda_set_device to select the device. > No, I don?t think I know CUDA good enough to manage the memory > transfer between the devices. > > Best regards, > Louie > > P.S. is there any training or workshop focusing on rtk application and > development available? > > > > > -----Original Message----- From: Cyril Mory > Sent: Wednesday, September 17, 2014 11:59 AM > To: Simon Rit ; ghostcz > Cc: rtk-users at openrtk.org > Subject: Re: [Rtk-users] How to run the reconstruction on a specific GPU? > > Hi Louie, > > We have been investigating your question bit. A first possible solution, > which may be sufficient for your needs, could be to set the > CUDA_VISIBLE_DEVICES environment variable. You'll find details here : > http://www.acceleware.com/blog/cudavisibledevices-masking-gpus > > Here are two scripts I used to run tests on our two-GPUs server: > > ######### First script ######### > echo "Running two instances of rtkfdk without specifying a GPU" > CUDA_VISIBLE_DEVICES="0,1" > time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g > geom.xml --dimension 512 & > time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g > geom.xml --dimension 512 & > > ######### Second script ######### > echo "Running two instances of rtkfdk, specifying which GPU to use for > each" > echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o > fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash > echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o > fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash > > ######### End ############# > > On our server, which has two identical GPUs, these two scripts took the > same time. It seems that, in the first script, rtkfdk somehow managed to > detect that the first GPU was in use and ran on the second one. But I > can't guarantee under which conditions this happens, and surely it's > safer to use the second script. > > This is the cheapest solution. If you need more than that, and you are > ready to dive into the cuda filters' code as well as into the automatic > transfers between CPU and GPU memory, do not hesitate to propose > modifications of the RTK code. > > Regards, > Cyril > > On 09/15/2014 02:45 PM, Simon Rit wrote: >> Hi, >> Good question, I did not hear anybody working on multiple GPUs so far. >> It currently uses the first Cuda compatible device. I think you'll >> have to look up in the Cuda manual to see how to switch to another one >> but there is nothing available in the RTK lib yet. Don't hesitate to >> suggest some code changes to add this feature. >> Simon >> >> On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >>> Dear Rtk users, >>> >>> How can I select one (or maybe more?) specific GPU to run my >>> reconstruction? >>> It seems if I start a second instance of the reconstruction program, >>> it will >>> run on the same GPU. >>> >>> Best regards, >>> Louie >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://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 >> > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 05:28:42 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 11:28:42 +0200 Subject: [Rtk-users] Would you like RTK trainings ? Message-ID: <541AA5CA.9050306@creatis.insa-lyon.fr> Hi RTK users, A recent question on the mailing list by Louie triggered a conversation between us. Louie asked whether there exists some sort of training or workshop on RTK. In a nutshell, the answer is "No, not yet, but why not talk about it ?". So I'd like to start some sort of "poll" to gather the requests you might have on this topic: Do you need / want / would like a training on RTK ? If so, can you be more specific on what you would like to learn ? (basics of tomography, how to start using RTK on your data, practical issues in circular cone beam CT, motion compensated reconstruction, compressed sensing in tomography, ITK programming, ... this is not an exhaustive list) I think this is enough questions for the time being. The rest will depend on your answers. Looking forward to reading you, -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 06:08:21 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 12:08:21 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: <540ED73D.3080003@creatis.insa-lyon.fr> <541847CB.8020807@creatis.insa-lyon.fr> Message-ID: <541AAF15.9080707@creatis.insa-lyon.fr> Hi Padraig, It is puzzling, as the code is simple and we have many machines on which it works without problem. So let's explore the weirder options : - In one of your previous emails, you mentioned that "the same example runs without a seg fault in the build directory". What does that mean ? - Can you go into your build directory, run "make test", and post the result of the tests ? - Have you tried installing RTK on another machine ? Regards, Cyril On 09/16/2014 04:38 PM, Padraig Looney wrote: > It happens with the first call. > > I set a breakpoint just before and it is not empty. I have tried to > attach a screen capture of my space. > > Yes I thought I may have changed something but I have copied the > directory twice from the original download in which it builds > correctly. I cloned this with git and there are no changes. > > > On Tue, Sep 16, 2014 at 3:23 PM, Cyril Mory > > wrote: > > Hi Padraig, > > Does the segfault happen at the first call of > geometry->AddProjection(...) or later ? > > My guess is that, for some reason, geometry is not initialized. > Can you make sure it is by setting a breakpoint just before ? > You should also make sure that all variables involved in this > call, ie "sid", "sdd", "angle", "isox" and "isoy" have reasonable > values before the call. > > It is probably not a good question, yet I have to ask : did you > modify something in the file > examples/FirstReconstruction/FirstReconstruction.cxx ? > > Regards, > Cyril > > > On 09/16/2014 04:07 PM, Padraig Looney wrote: >> Thanks Cyril, >> >> Following your advice I have tracked the seg fault down to line >> 36 in FirstReconstruction >> >> geometry->AddProjection(sid, >> sdd, >> angle, >> isox, >> isoy); >> } >> >> I realised that I managed to build the examples with RTK fine and >> the same example runs without a seg fault in the build directory. >> >> On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory >> > > wrote: >> >> Hi Padraig, >> >> With so little information, there isn't much we can do to >> help you. >> I usually track segfaults by compiling in Debug mode (by >> setting "CMAKE_BUILD_TYPE" to "Debug"), then running the >> program in debug in QT Creator (any decent IDE will do just >> fine, and should stop when the segfault occurs, allowing you >> to trace it back) >> >> Good luck, >> Cyril >> >> >> On 09/09/2014 12:05 PM, Padraig Looney wrote: >>> When I try to run the "FirstReconstruction" example I am >>> getting a segmentation fault. >>> >>> The following is the output from gdb >>> >>> Program received signal SIGSEGV, Segmentation fault. >>> 0x00000000004952d7 in typeinfo for >>> rtk::ProjectionGeometry<3u> () >>> >>> >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://public.kitware.com/mailman/listinfo/rtk-users >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile:+33 6 69 46 73 79 >> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Thu Sep 18 09:47:40 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Thu, 18 Sep 2014 15:47:40 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: <541A93E7.7010301@creatis.insa-lyon.fr> References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: Hi, I fully agree with Cyril. Something else : you might want to mask out what is outside the field-of-view using the rtkfieldofview executable. Your ring corresponds to that border. See an example here: http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction Simon On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < cyril.mory at creatis.insa-lyon.fr> wrote: > Hi Howard, > > The bright ring artifact is typically caused by high-pass filtering (the > ramp filter used in FDK) of truncated projection data (when projections > have non-zero values on the sides, the edge of the projection makes a sharp > transition to zero). A classical answer to this problem is to pad the > projections, for example with values starting from the values on the side > and slowly decreasing to zero. > > rtkfdk can do this padding for you. Just add "--pad 0.1" to your options > (or more than 0.1 if it isn't enough). > Also, I noticed that your reconstructed image seems quite noisy. You might > want to use a Hann windowing of the ramp filter to reduce the noise > amplification effect of high-pass filtering. You can do that by adding > "--hann 0.5" to your options. Note that the argument is a cut-off > frequency, so smaller values mean more smoothing. > > Best regards, > Cyril > > > On 09/18/2014 05:21 AM, Howard wrote: > > Hi, > > I use rtkfdk to reconstruct varian cbct images following the example on > rtk wiki page. The projections were obtained with half fan mode because it > is an abdominal region with the patient lateral x AP dimension of 550x550. > The reconstructed cbct images have a big bright circle around > the image. Please see the image: > http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > > I am using Ubuntu Linux box to reconstruct. Two sequential commands were > used: > > ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > --regexp Proj_.*.hnd -o varianGeometry > and > > rtkfdk \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output rec.mha \ > --verbose \ > --spacing 2.0,2.0,2.0 \ > --dimension 256,100,256 \ > The projections are stored in the standard varian format: Scan0 and > ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled the half fan geometry properly. What did I do wrong then? Many > thanks! > > -howard > > > _______________________________________________ > Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users > > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > > _______________________________________________ > 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: From lomahu at gmail.com Thu Sep 18 10:47:17 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 10:47:17 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: Thanks very much, Cyril & Simon. Now the fdk reconstruction is working beautifully. Jus another quick question: for rtksart executable, are we still able to do padding and hanning window trick as well? On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit wrote: > Hi, > I fully agree with Cyril. Something else : you might want to mask out what > is outside the field-of-view using the rtkfieldofview executable. Your ring > corresponds to that border. See an example here: > http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > Simon > > On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < > cyril.mory at creatis.insa-lyon.fr> wrote: > >> Hi Howard, >> >> The bright ring artifact is typically caused by high-pass filtering (the >> ramp filter used in FDK) of truncated projection data (when projections >> have non-zero values on the sides, the edge of the projection makes a sharp >> transition to zero). A classical answer to this problem is to pad the >> projections, for example with values starting from the values on the side >> and slowly decreasing to zero. >> >> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >> (or more than 0.1 if it isn't enough). >> Also, I noticed that your reconstructed image seems quite noisy. You >> might want to use a Hann windowing of the ramp filter to reduce the noise >> amplification effect of high-pass filtering. You can do that by adding >> "--hann 0.5" to your options. Note that the argument is a cut-off >> frequency, so smaller values mean more smoothing. >> >> Best regards, >> Cyril >> >> >> On 09/18/2014 05:21 AM, Howard wrote: >> >> Hi, >> >> I use rtkfdk to reconstruct varian cbct images following the example on >> rtk wiki page. The projections were obtained with half fan mode because it >> is an abdominal region with the patient lateral x AP dimension of 550x550. >> The reconstructed cbct images have a big bright circle around >> the image. Please see the image: >> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> >> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >> used: >> >> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >> --regexp Proj_.*.hnd -o varianGeometry >> and >> >> rtkfdk \ >> --geometry varianGeometry \ >> --regexp .*.hnd \ >> --path ../Scan0 \ >> --output rec.mha \ >> --verbose \ >> --spacing 2.0,2.0,2.0 \ >> --dimension 256,100,256 \ >> The projections are stored in the standard varian format: Scan0 and >> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >> handled the half fan geometry properly. What did I do wrong then? Many >> thanks! >> >> -howard >> >> >> _______________________________________________ >> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 >> >> >> _______________________________________________ >> 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: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 10:59:53 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 16:59:53 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: <541AF369.9090403@creatis.insa-lyon.fr> Howard, For SART reconstructions, you do not need padding, and you can't do Hann windowing because no ramp filtering is applied. SART usually outputs smoother images, so you probably will not need this denoising trick anyway. However, you should be careful about one thing : your object has to be fully contained in the reconstructed volume, or you will observe important border effects. Use the --dimension, --spacing and --origin options to ensure this. All the best, Cyril On 09/18/2014 04:47 PM, Howard wrote: > Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > beautifully. Jus another quick question: for rtksart executable, are > we still able to do padding and hanning window trick as well? > > On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > > wrote: > > Hi, > I fully agree with Cyril. Something else : you might want to mask > out what is outside the field-of-view using the rtkfieldofview > executable. Your ring corresponds to that border. See an example here: > http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > Simon > > On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory > > wrote: > > Hi Howard, > > The bright ring artifact is typically caused by high-pass > filtering (the ramp filter used in FDK) of truncated > projection data (when projections have non-zero values on the > sides, the edge of the projection makes a sharp transition to > zero). A classical answer to this problem is to pad the > projections, for example with values starting from the values > on the side and slowly decreasing to zero. > > rtkfdk can do this padding for you. Just add "--pad 0.1" to > your options (or more than 0.1 if it isn't enough). > Also, I noticed that your reconstructed image seems quite > noisy. You might want to use a Hann windowing of the ramp > filter to reduce the noise amplification effect of high-pass > filtering. You can do that by adding "--hann 0.5" to your > options. Note that the argument is a cut-off frequency, so > smaller values mean more smoothing. > > Best regards, > Cyril > > > On 09/18/2014 05:21 AM, Howard wrote: >> Hi, >> I use rtkfdk to reconstruct varian cbct images following the >> example on rtk wiki page. The projections were obtained with >> half fan mode because it is an abdominal region with the >> patient lateral x AP dimension of 550x550. The reconstructed >> cbct images have a big bright circle around >> the image. Please see the image: >> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> I am using Ubuntu Linux box to reconstruct. Two sequential >> commands were used: >> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path >> Scan0/ --regexp Proj_.*.hnd -o varianGeometry >> and >> rtkfdk \ >> --geometry varianGeometry \ >> --regexp .*.hnd \ >> --path ../Scan0 \ >> --output rec.mha \ >> --verbose \ >> --spacing 2.0,2.0,2.0 \ >> --dimension 256,100,256 \ >> The projections are stored in the standard varian format: >> Scan0 and ProjectionInfo.xml with 644 projection images. I >> assume that rtkfdk handled the half fan geometry properly. >> What did I do wrong then? Many thanks! >> -howard >> >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://public.kitware.com/mailman/listinfo/rtk-users > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From lomahu at gmail.com Thu Sep 18 13:03:52 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 13:03:52 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: <541AF369.9090403@creatis.insa-lyon.fr> References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Cyril, I am testing SART reconstruction according to what you described, specifying dimension, spacing and origin: rtksart \ --geometry varianGeometry \ --regexp .*.hnd \ --path ../Scan0 \ --output sart_rec.mha \ --verbose \ --spacing 2.0\ --dimension 128,100,128 \ --origin -127.5,-99,-127.5 but the reconstruction gave a plain image with no object/contrast. I checked the grayscale values on the reconstructed images and did see they ranged from -1.78 to 3 (this may not be precise but give you some idea). I tried to adjust window level but couldn't see any contrast. I must miss something here. Please advise. Thanks! -howard On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory < cyril.mory at creatis.insa-lyon.fr> wrote: > Howard, > > For SART reconstructions, you do not need padding, and you can't do Hann > windowing because no ramp filtering is applied. SART usually outputs > smoother images, so you probably will not need this denoising trick anyway. > However, you should be careful about one thing : your object has to be > fully contained in the reconstructed volume, or you will observe important > border effects. Use the --dimension, --spacing and --origin options to > ensure this. > > All the best, > Cyril > > > On 09/18/2014 04:47 PM, Howard wrote: > > Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > beautifully. Jus another quick question: for rtksart executable, are we > still able to do padding and hanning window trick as well? > > On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > wrote: > >> Hi, >> I fully agree with Cyril. Something else : you might want to mask out >> what is outside the field-of-view using the rtkfieldofview executable. Your >> ring corresponds to that border. See an example here: >> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >> Simon >> >> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < >> cyril.mory at creatis.insa-lyon.fr> wrote: >> >>> Hi Howard, >>> >>> The bright ring artifact is typically caused by high-pass filtering (the >>> ramp filter used in FDK) of truncated projection data (when projections >>> have non-zero values on the sides, the edge of the projection makes a sharp >>> transition to zero). A classical answer to this problem is to pad the >>> projections, for example with values starting from the values on the side >>> and slowly decreasing to zero. >>> >>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >>> (or more than 0.1 if it isn't enough). >>> Also, I noticed that your reconstructed image seems quite noisy. You >>> might want to use a Hann windowing of the ramp filter to reduce the noise >>> amplification effect of high-pass filtering. You can do that by adding >>> "--hann 0.5" to your options. Note that the argument is a cut-off >>> frequency, so smaller values mean more smoothing. >>> >>> Best regards, >>> Cyril >>> >>> >>> On 09/18/2014 05:21 AM, Howard wrote: >>> >>> Hi, >>> >>> I use rtkfdk to reconstruct varian cbct images following the example on >>> rtk wiki page. The projections were obtained with half fan mode because it >>> is an abdominal region with the patient lateral x AP dimension of 550x550. >>> The reconstructed cbct images have a big bright circle around >>> the image. Please see the image: >>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >>> >>> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >>> used: >>> >>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >>> --regexp Proj_.*.hnd -o varianGeometry >>> and >>> >>> rtkfdk \ >>> --geometry varianGeometry \ >>> --regexp .*.hnd \ >>> --path ../Scan0 \ >>> --output rec.mha \ >>> --verbose \ >>> --spacing 2.0,2.0,2.0 \ >>> --dimension 256,100,256 \ >>> The projections are stored in the standard varian format: Scan0 and >>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >>> handled the half fan geometry properly. What did I do wrong then? Many >>> thanks! >>> >>> -howard >>> >>> >>> _______________________________________________ >>> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >>> -- >>> -- >>> Cyril Mory, Post-doc >>> CREATIS >>> Leon Berard cancer treatment center >>> 28 rue La?nnec >>> 69373 Lyon cedex 08 FRANCE >>> >>> Mobile: +33 6 69 46 73 79 >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Thu Sep 18 16:41:10 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Thu, 18 Sep 2014 22:41:10 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Howard, Assuming you're using the same dataset as the one you used for the rtkfdk test, you have decreased its size. For example, x was 2*256 mm with rtkfdk and it is now 128*2. On the slice you sent, we could see that a part of the phantom on the right was missing so you should keep the same size except for this side that should be larger, certainly not reduce the size. For the display, I would suggest to use the same window/level as for your FDK reconstruction. The two reconstruction algorithms reconstruct the same average intensities, only the texture is different. Good luck, Simon On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: > Hi Cyril, > > I am testing SART reconstruction according to what you described, specifying > dimension, spacing and origin: > > rtksart \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output sart_rec.mha \ > --verbose \ > --spacing 2.0\ > --dimension 128,100,128 \ > --origin -127.5,-99,-127.5 > > but the reconstruction gave a plain image with no object/contrast. I checked > the grayscale values on the reconstructed images and did see they ranged > from -1.78 to 3 (this may not be precise but give you some idea). I tried to > adjust window level but couldn't see any contrast. I must miss something > here. Please advise. Thanks! > > -howard > > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory > wrote: >> >> Howard, >> >> For SART reconstructions, you do not need padding, and you can't do Hann >> windowing because no ramp filtering is applied. SART usually outputs >> smoother images, so you probably will not need this denoising trick anyway. >> However, you should be careful about one thing : your object has to be >> fully contained in the reconstructed volume, or you will observe important >> border effects. Use the --dimension, --spacing and --origin options to >> ensure this. >> >> All the best, >> Cyril >> >> >> On 09/18/2014 04:47 PM, Howard wrote: >> >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working >> beautifully. Jus another quick question: for rtksart executable, are we >> still able to do padding and hanning window trick as well? >> >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit >> wrote: >>> >>> Hi, >>> I fully agree with Cyril. Something else : you might want to mask out >>> what is outside the field-of-view using the rtkfieldofview executable. Your >>> ring corresponds to that border. See an example here: >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >>> Simon >>> >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory >>> wrote: >>>> >>>> Hi Howard, >>>> >>>> The bright ring artifact is typically caused by high-pass filtering (the >>>> ramp filter used in FDK) of truncated projection data (when projections have >>>> non-zero values on the sides, the edge of the projection makes a sharp >>>> transition to zero). A classical answer to this problem is to pad the >>>> projections, for example with values starting from the values on the side >>>> and slowly decreasing to zero. >>>> >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >>>> (or more than 0.1 if it isn't enough). >>>> Also, I noticed that your reconstructed image seems quite noisy. You >>>> might want to use a Hann windowing of the ramp filter to reduce the noise >>>> amplification effect of high-pass filtering. You can do that by adding >>>> "--hann 0.5" to your options. Note that the argument is a cut-off frequency, >>>> so smaller values mean more smoothing. >>>> >>>> Best regards, >>>> Cyril >>>> >>>> >>>> On 09/18/2014 05:21 AM, Howard wrote: >>>> >>>> Hi, >>>> >>>> I use rtkfdk to reconstruct varian cbct images following the example on >>>> rtk wiki page. The projections were obtained with half fan mode because it >>>> is an abdominal region with the patient lateral x AP dimension of 550x550. >>>> The reconstructed cbct images have a big bright circle around >>>> the image. Please see the image: >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >>>> >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >>>> used: >>>> >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >>>> --regexp Proj_.*.hnd -o varianGeometry >>>> and >>>> >>>> rtkfdk \ >>>> --geometry varianGeometry \ >>>> --regexp .*.hnd \ >>>> --path ../Scan0 \ >>>> --output rec.mha \ >>>> --verbose \ >>>> --spacing 2.0,2.0,2.0 \ >>>> --dimension 256,100,256 \ >>>> The projections are stored in the standard varian format: Scan0 and >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk handled >>>> the half fan geometry properly. What did I do wrong then? Many thanks! >>>> >>>> -howard >>>> >>>> >>>> _______________________________________________ >>>> Rtk-users mailing list >>>> Rtk-users at public.kitware.com >>>> http://public.kitware.com/mailman/listinfo/rtk-users >>>> >>>> >>>> -- >>>> -- >>>> Cyril Mory, Post-doc >>>> CREATIS >>>> Leon Berard cancer treatment center >>>> 28 rue La?nnec >>>> 69373 Lyon cedex 08 FRANCE >>>> >>>> Mobile: +33 6 69 46 73 79 >>>> >>>> >>>> _______________________________________________ >>>> Rtk-users mailing list >>>> Rtk-users at public.kitware.com >>>> http://public.kitware.com/mailman/listinfo/rtk-users >>>> >>> >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 > > From lomahu at gmail.com Thu Sep 18 17:47:51 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 17:47:51 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Simon, I apologize for the confusion about the dataset. Actually I did not use the same dataset. The reason is that the set I used for rtkfdk test had 644 projections and with it rtksart crashed because of memory (I only allocated 3GB memory to Virtualbox from my window7). So for the SART test I changed to a small projection set (366 projections) where the object is a cube with dimension of 5cm x 5cm x 5cm. That's why I chose a smaller reconstruction size 128*2. With the same dataset when I ran rtkfdk I got very good reconstruction. -howard On Thu, Sep 18, 2014 at 4:41 PM, Simon Rit wrote: > Hi Howard, > Assuming you're using the same dataset as the one you used for the > rtkfdk test, you have decreased its size. For example, x was 2*256 mm > with rtkfdk and it is now 128*2. On the slice you sent, we could see > that a part of the phantom on the right was missing so you should keep > the same size except for this side that should be larger, certainly > not reduce the size. > For the display, I would suggest to use the same window/level as for > your FDK reconstruction. The two reconstruction algorithms reconstruct > the same average intensities, only the texture is different. > Good luck, > Simon > > On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: > > Hi Cyril, > > > > I am testing SART reconstruction according to what you described, > specifying > > dimension, spacing and origin: > > > > rtksart \ > > --geometry varianGeometry \ > > --regexp .*.hnd \ > > --path ../Scan0 \ > > --output sart_rec.mha \ > > --verbose \ > > --spacing 2.0\ > > --dimension 128,100,128 \ > > --origin -127.5,-99,-127.5 > > > > but the reconstruction gave a plain image with no object/contrast. I > checked > > the grayscale values on the reconstructed images and did see they ranged > > from -1.78 to 3 (this may not be precise but give you some idea). I > tried to > > adjust window level but couldn't see any contrast. I must miss something > > here. Please advise. Thanks! > > > > -howard > > > > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory > > wrote: > >> > >> Howard, > >> > >> For SART reconstructions, you do not need padding, and you can't do Hann > >> windowing because no ramp filtering is applied. SART usually outputs > >> smoother images, so you probably will not need this denoising trick > anyway. > >> However, you should be careful about one thing : your object has to be > >> fully contained in the reconstructed volume, or you will observe > important > >> border effects. Use the --dimension, --spacing and --origin options to > >> ensure this. > >> > >> All the best, > >> Cyril > >> > >> > >> On 09/18/2014 04:47 PM, Howard wrote: > >> > >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > >> beautifully. Jus another quick question: for rtksart executable, are we > >> still able to do padding and hanning window trick as well? > >> > >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > >> wrote: > >>> > >>> Hi, > >>> I fully agree with Cyril. Something else : you might want to mask out > >>> what is outside the field-of-view using the rtkfieldofview executable. > Your > >>> ring corresponds to that border. See an example here: > >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > >>> Simon > >>> > >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory > >>> wrote: > >>>> > >>>> Hi Howard, > >>>> > >>>> The bright ring artifact is typically caused by high-pass filtering > (the > >>>> ramp filter used in FDK) of truncated projection data (when > projections have > >>>> non-zero values on the sides, the edge of the projection makes a sharp > >>>> transition to zero). A classical answer to this problem is to pad the > >>>> projections, for example with values starting from the values on the > side > >>>> and slowly decreasing to zero. > >>>> > >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your > options > >>>> (or more than 0.1 if it isn't enough). > >>>> Also, I noticed that your reconstructed image seems quite noisy. You > >>>> might want to use a Hann windowing of the ramp filter to reduce the > noise > >>>> amplification effect of high-pass filtering. You can do that by adding > >>>> "--hann 0.5" to your options. Note that the argument is a cut-off > frequency, > >>>> so smaller values mean more smoothing. > >>>> > >>>> Best regards, > >>>> Cyril > >>>> > >>>> > >>>> On 09/18/2014 05:21 AM, Howard wrote: > >>>> > >>>> Hi, > >>>> > >>>> I use rtkfdk to reconstruct varian cbct images following the example > on > >>>> rtk wiki page. The projections were obtained with half fan mode > because it > >>>> is an abdominal region with the patient lateral x AP dimension of > 550x550. > >>>> The reconstructed cbct images have a big bright circle around > >>>> the image. Please see the image: > >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > >>>> > >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands > were > >>>> used: > >>>> > >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > >>>> --regexp Proj_.*.hnd -o varianGeometry > >>>> and > >>>> > >>>> rtkfdk \ > >>>> --geometry varianGeometry \ > >>>> --regexp .*.hnd \ > >>>> --path ../Scan0 \ > >>>> --output rec.mha \ > >>>> --verbose \ > >>>> --spacing 2.0,2.0,2.0 \ > >>>> --dimension 256,100,256 \ > >>>> The projections are stored in the standard varian format: Scan0 and > >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled > >>>> the half fan geometry properly. What did I do wrong then? Many > thanks! > >>>> > >>>> -howard > >>>> > >>>> > >>>> _______________________________________________ > >>>> Rtk-users mailing list > >>>> Rtk-users at public.kitware.com > >>>> http://public.kitware.com/mailman/listinfo/rtk-users > >>>> > >>>> > >>>> -- > >>>> -- > >>>> Cyril Mory, Post-doc > >>>> CREATIS > >>>> Leon Berard cancer treatment center > >>>> 28 rue La?nnec > >>>> 69373 Lyon cedex 08 FRANCE > >>>> > >>>> Mobile: +33 6 69 46 73 79 > >>>> > >>>> > >>>> _______________________________________________ > >>>> Rtk-users mailing list > >>>> Rtk-users at public.kitware.com > >>>> http://public.kitware.com/mailman/listinfo/rtk-users > >>>> > >>> > >> > >> > >> -- > >> -- > >> Cyril Mory, Post-doc > >> CREATIS > >> Leon Berard cancer treatment center > >> 28 rue La?nnec > >> 69373 Lyon cedex 08 FRANCE > >> > >> Mobile: +33 6 69 46 73 79 > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lomahu at gmail.com Thu Sep 18 22:53:45 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 22:53:45 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Simon, It appears I have to apologize again and take back the question about the SART reconstruction. I re-ran on the big data set (644 projections). This time no memory issue and SART worked well. For some reason it did not work on the small set initially. I should have run more tests before posting here. Sorry about the noise and thanks a lot for looking into the "issues". -howard On Thu, Sep 18, 2014 at 5:47 PM, Howard wrote: > Hi Simon, > > I apologize for the confusion about the dataset. Actually I did not use > the same dataset. > The reason is that the set I used for rtkfdk test had 644 projections and > with it rtksart > crashed because of memory (I only allocated 3GB memory to Virtualbox from > my window7). > So for the SART test I changed to a small projection set (366 projections) > where the object is > a cube with dimension of 5cm x 5cm x 5cm. That's why I chose a smaller > reconstruction > size 128*2. With the same dataset when I ran rtkfdk I got very good > reconstruction. > > -howard > > On Thu, Sep 18, 2014 at 4:41 PM, Simon Rit > wrote: > >> Hi Howard, >> Assuming you're using the same dataset as the one you used for the >> rtkfdk test, you have decreased its size. For example, x was 2*256 mm >> with rtkfdk and it is now 128*2. On the slice you sent, we could see >> that a part of the phantom on the right was missing so you should keep >> the same size except for this side that should be larger, certainly >> not reduce the size. >> For the display, I would suggest to use the same window/level as for >> your FDK reconstruction. The two reconstruction algorithms reconstruct >> the same average intensities, only the texture is different. >> Good luck, >> Simon >> >> On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: >> > Hi Cyril, >> > >> > I am testing SART reconstruction according to what you described, >> specifying >> > dimension, spacing and origin: >> > >> > rtksart \ >> > --geometry varianGeometry \ >> > --regexp .*.hnd \ >> > --path ../Scan0 \ >> > --output sart_rec.mha \ >> > --verbose \ >> > --spacing 2.0\ >> > --dimension 128,100,128 \ >> > --origin -127.5,-99,-127.5 >> > >> > but the reconstruction gave a plain image with no object/contrast. I >> checked >> > the grayscale values on the reconstructed images and did see they ranged >> > from -1.78 to 3 (this may not be precise but give you some idea). I >> tried to >> > adjust window level but couldn't see any contrast. I must miss something >> > here. Please advise. Thanks! >> > >> > -howard >> > >> > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory >> > wrote: >> >> >> >> Howard, >> >> >> >> For SART reconstructions, you do not need padding, and you can't do >> Hann >> >> windowing because no ramp filtering is applied. SART usually outputs >> >> smoother images, so you probably will not need this denoising trick >> anyway. >> >> However, you should be careful about one thing : your object has to be >> >> fully contained in the reconstructed volume, or you will observe >> important >> >> border effects. Use the --dimension, --spacing and --origin options to >> >> ensure this. >> >> >> >> All the best, >> >> Cyril >> >> >> >> >> >> On 09/18/2014 04:47 PM, Howard wrote: >> >> >> >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working >> >> beautifully. Jus another quick question: for rtksart executable, are we >> >> still able to do padding and hanning window trick as well? >> >> >> >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit >> >> wrote: >> >>> >> >>> Hi, >> >>> I fully agree with Cyril. Something else : you might want to mask out >> >>> what is outside the field-of-view using the rtkfieldofview >> executable. Your >> >>> ring corresponds to that border. See an example here: >> >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >> >>> Simon >> >>> >> >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory >> >>> wrote: >> >>>> >> >>>> Hi Howard, >> >>>> >> >>>> The bright ring artifact is typically caused by high-pass filtering >> (the >> >>>> ramp filter used in FDK) of truncated projection data (when >> projections have >> >>>> non-zero values on the sides, the edge of the projection makes a >> sharp >> >>>> transition to zero). A classical answer to this problem is to pad the >> >>>> projections, for example with values starting from the values on the >> side >> >>>> and slowly decreasing to zero. >> >>>> >> >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your >> options >> >>>> (or more than 0.1 if it isn't enough). >> >>>> Also, I noticed that your reconstructed image seems quite noisy. You >> >>>> might want to use a Hann windowing of the ramp filter to reduce the >> noise >> >>>> amplification effect of high-pass filtering. You can do that by >> adding >> >>>> "--hann 0.5" to your options. Note that the argument is a cut-off >> frequency, >> >>>> so smaller values mean more smoothing. >> >>>> >> >>>> Best regards, >> >>>> Cyril >> >>>> >> >>>> >> >>>> On 09/18/2014 05:21 AM, Howard wrote: >> >>>> >> >>>> Hi, >> >>>> >> >>>> I use rtkfdk to reconstruct varian cbct images following the example >> on >> >>>> rtk wiki page. The projections were obtained with half fan mode >> because it >> >>>> is an abdominal region with the patient lateral x AP dimension of >> 550x550. >> >>>> The reconstructed cbct images have a big bright circle around >> >>>> the image. Please see the image: >> >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> >>>> >> >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands >> were >> >>>> used: >> >>>> >> >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >> >>>> --regexp Proj_.*.hnd -o varianGeometry >> >>>> and >> >>>> >> >>>> rtkfdk \ >> >>>> --geometry varianGeometry \ >> >>>> --regexp .*.hnd \ >> >>>> --path ../Scan0 \ >> >>>> --output rec.mha \ >> >>>> --verbose \ >> >>>> --spacing 2.0,2.0,2.0 \ >> >>>> --dimension 256,100,256 \ >> >>>> The projections are stored in the standard varian format: Scan0 and >> >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >> handled >> >>>> the half fan geometry properly. What did I do wrong then? Many >> thanks! >> >>>> >> >>>> -howard >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> Rtk-users mailing list >> >>>> Rtk-users at public.kitware.com >> >>>> http://public.kitware.com/mailman/listinfo/rtk-users >> >>>> >> >>>> >> >>>> -- >> >>>> -- >> >>>> Cyril Mory, Post-doc >> >>>> CREATIS >> >>>> Leon Berard cancer treatment center >> >>>> 28 rue La?nnec >> >>>> 69373 Lyon cedex 08 FRANCE >> >>>> >> >>>> Mobile: +33 6 69 46 73 79 >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> Rtk-users mailing list >> >>>> Rtk-users at public.kitware.com >> >>>> http://public.kitware.com/mailman/listinfo/rtk-users >> >>>> >> >>> >> >> >> >> >> >> -- >> >> -- >> >> Cyril Mory, Post-doc >> >> CREATIS >> >> Leon Berard cancer treatment center >> >> 28 rue La?nnec >> >> 69373 Lyon cedex 08 FRANCE >> >> >> >> Mobile: +33 6 69 46 73 79 >> > >> > >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ucabba1 at ucl.ac.uk Fri Sep 19 07:04:49 2014 From: ucabba1 at ucl.ac.uk (Ben Champion) Date: Fri, 19 Sep 2014 12:04:49 +0100 Subject: [Rtk-users] Would you like RTK trainings ? In-Reply-To: <541AA5CA.9050306@creatis.insa-lyon.fr> References: <541AA5CA.9050306@creatis.insa-lyon.fr> Message-ID: <541C0DD1.4070203@ucl.ac.uk> Hi Cyril, Having used RTK (and ITK) for approximately 1 year now, I have learnt mainly by trial and error, and by reading the source code and wiki examples. (Aside: many thanks to the RTK community for these!) Nevertheless, I think I could benefit from some kind of RTK training for my future work. The kinds of topics that would be most interesting to me are: - theory/use of reconstruction methods other than FDK (e.g. SART, 4D ROOSTER, ...) - motion compensated reconstruction - compressed sensing in tomography - extending RTK (and contributing back to the community) That said, I would not be averse to at least some discussion of "basics of tomography", "starting to use RTK with your own data", and "practical issues in circular CBCT" and in fact it could help fill some gaps in my knowledge. Best wishes, Ben -- Doctoral Student (MRes/EngD) Centre for Medical Image Computing University College London Room 3.01 Engineering Front Building Torrington Place LONDON WC1E 7JE On 18/09/14 10:28, Cyril Mory wrote: > Hi RTK users, > > A recent question on the mailing list by Louie triggered a > conversation between us. Louie asked whether there exists some sort of > training or workshop on RTK. In a nutshell, the answer is "No, not > yet, but why not talk about it ?". > > So I'd like to start some sort of "poll" to gather the requests you > might have on this topic: > Do you need / want / would like a training on RTK ? > If so, can you be more specific on what you would like to learn ? > (basics of tomography, how to start using RTK on your data, practical > issues in circular cone beam CT, motion compensated reconstruction, > compressed sensing in tomography, ITK programming, ... this is not an > exhaustive list) > > I think this is enough questions for the time being. The rest will > depend on your answers. > > Looking forward to reading you, > From lomahu at gmail.com Fri Sep 19 09:47:58 2014 From: lomahu at gmail.com (Howard) Date: Fri, 19 Sep 2014 09:47:58 -0400 Subject: [Rtk-users] Would you like RTK trainings ? In-Reply-To: <541C0DD1.4070203@ucl.ac.uk> References: <541AA5CA.9050306@creatis.insa-lyon.fr> <541C0DD1.4070203@ucl.ac.uk> Message-ID: Hi Cyril, It would be extremely helpful to have an RTK training. As Ben listed, I have similar interests. The topics I am very interested in are the following: 1. Basic principles of reconstruction with FDK and SART 2. Coding framework in RTK 3. Practical examples using iterative reconstruction technique 4. Compressed sensing applications in reconstruction 5. Practical issues in reconstruction specially CBCT reconstruction. Thanks! -howard On Fri, Sep 19, 2014 at 7:04 AM, Ben Champion wrote: > Hi Cyril, > > Having used RTK (and ITK) for approximately 1 year now, I have learnt > mainly by trial and error, and by reading the source code and wiki > examples. (Aside: many thanks to the RTK community for these!) > > Nevertheless, I think I could benefit from some kind of RTK training for > my future work. The kinds of topics that would be most interesting to me > are: > > - theory/use of reconstruction methods other than FDK (e.g. SART, 4D > ROOSTER, ...) > - motion compensated reconstruction > - compressed sensing in tomography > - extending RTK (and contributing back to the community) > > That said, I would not be averse to at least some discussion of "basics of > tomography", "starting to use RTK with your own data", and "practical > issues in circular CBCT" and in fact it could help fill some gaps in my > knowledge. > > Best wishes, > > Ben > -- > Doctoral Student (MRes/EngD) > Centre for Medical Image Computing > University College London > Room 3.01 Engineering Front Building > Torrington Place > LONDON > WC1E 7JE > > > > On 18/09/14 10:28, Cyril Mory wrote: > >> Hi RTK users, >> >> A recent question on the mailing list by Louie triggered a conversation >> between us. Louie asked whether there exists some sort of training or >> workshop on RTK. In a nutshell, the answer is "No, not yet, but why not >> talk about it ?". >> >> So I'd like to start some sort of "poll" to gather the requests you might >> have on this topic: >> Do you need / want / would like a training on RTK ? >> If so, can you be more specific on what you would like to learn ? (basics >> of tomography, how to start using RTK on your data, practical issues in >> circular cone beam CT, motion compensated reconstruction, compressed >> sensing in tomography, ITK programming, ... this is not an exhaustive list) >> >> I think this is enough questions for the time being. The rest will depend >> on your answers. >> >> Looking forward to reading you, >> >> > _______________________________________________ > 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: From padraig.looney at gmail.com Mon Sep 8 08:43:27 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Mon, 8 Sep 2014 13:43:27 +0100 Subject: [Rtk-users] RTK helloworld Message-ID: Dear all, I am trying to get the HelloWorld example running but I get a large number of errors after the build. I am using ITK-4.6 and have followed the instructions as per http://wiki.openrtk.org/index.php/RTK_wiki_help#Tutorial_0_-_Building_an_HelloWorld_application_with_RTK My executable is built and is working but I have hundreds of errors. The first few are. CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::MemoryAllocationError::MemoryAllocationError(std::string const&, unsigned int, std::string const&, std::string const&)': main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x35): undefined reference to `itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, std::string const&, std::string const&)' main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x40): undefined reference to `vtable for itk::MemoryAllocationError' CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::Object::SetObjectName(std::string)': main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x25): undefined reference to `itk::Object::GetDebug() const' main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x2e): undefined reference to `itk::Object::GetGlobalWarningDisplay()' main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x12e): undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::DataObject::SetRealTimeStamp(itk::RealTimeStamp)': main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x25): undefined reference to `itk::Object::GetDebug() const' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x2e): undefined reference to `itk::Object::GetGlobalWarningDisplay()' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0xf1): undefined reference to `itk::operator<<(std::ostream&, itk::RealTimeStamp const&)' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x12e): undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x169): undefined reference to `itk::RealTimeStamp::operator!=(itk::RealTimeStamp const&) const' Thanks P?draig -------------- next part -------------- An HTML attachment was scrubbed... URL: From julien.jomier at kitware.com Mon Sep 8 09:11:50 2014 From: julien.jomier at kitware.com (Julien Jomier) Date: Mon, 08 Sep 2014 15:11:50 +0200 Subject: [Rtk-users] RTK helloworld In-Reply-To: References: Message-ID: <540DAB16.3050904@kitware.com> Dear Padraig, When you say "built and is working but I have hundreds of errors" do you mean that you have successfully compiled and linked the example? It seems that your example cannot find the ITK libraries. Are you building ITK and RTK using BUILD_SHARED_LIBS to ON in CMake? Julien On 08/09/2014 14:43, Padraig Looney wrote: > Dear all, > > I am trying to get the HelloWorld example running but I get a large > number of errors after the build. I am using ITK-4.6 and have followed > the instructions as per > > http://wiki.openrtk.org/index.php/RTK_wiki_help#Tutorial_0_-_Building_an_HelloWorld_application_with_RTK > > My executable is built and is working but I have hundreds of errors. The > first few are. > > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::MemoryAllocationError::MemoryAllocationError(std::string const&, > unsigned int, std::string const&, std::string const&)': > main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x35): > undefined reference to > `itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, > std::string const&, std::string const&)' > main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x40): > undefined reference to `vtable for itk::MemoryAllocationError' > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::Object::SetObjectName(std::string)': > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x2e): > undefined reference to `itk::Object::GetGlobalWarningDisplay()' > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x12e): > undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::DataObject::SetRealTimeStamp(itk::RealTimeStamp)': > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x2e): > undefined reference to `itk::Object::GetGlobalWarningDisplay()' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0xf1): > undefined reference to `itk::operator<<(std::ostream&, > itk::RealTimeStamp const&)' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x12e): > undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x169): > undefined reference to > `itk::RealTimeStamp::operator!=(itk::RealTimeStamp const&) const' > > > Thanks > P?draig > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > From julien.jomier at kitware.com Mon Sep 8 09:32:47 2014 From: julien.jomier at kitware.com (Julien Jomier) Date: Mon, 08 Sep 2014 15:32:47 +0200 Subject: [Rtk-users] RTK helloworld In-Reply-To: References: <540DAB16.3050904@kitware.com> Message-ID: <540DAFFF.4080103@kitware.com> I'm guessing the ITK shared libs cannot be found. Can you specify the path where the ITK libraries (.so) are located in the LD_LIBRARY_PATH before your run make? Julien On 08/09/2014 15:23, Padraig Looney wrote: > It has successfully compiled using ccmake and make. I presume that has > successfully linked it. The errors were produced with make. > > Both the SharedLibs variables are set to ON. > > I've tried building RTK two different ways. Once by allowing cmake to > find ITK. This way ITK_DIR is set to /usr/local/lib/cmake/ITK-4.6 > > The other way I built it was by setting ITK_DIR to be the location of > the build directory. Which is what I understand from the wiki > > "When CMake asks for the ITK_DIR, specify the binary directory where ITK > is built and choose CMAKE_BUILD_TYPE (default: Release)" > > It didn't make any difference though. > > On Mon, Sep 8, 2014 at 2:11 PM, Julien Jomier > wrote: > > Dear Padraig, > > When you say "built and is working but I have hundreds of errors" do > you mean that you have successfully compiled and linked the example? > It seems that your example cannot find the ITK libraries. Are you > building ITK and RTK using BUILD_SHARED_LIBS to ON in CMake? > > Julien > > > On 08/09/2014 14:43, Padraig Looney wrote: > > Dear all, > > I am trying to get the HelloWorld example running but I get a large > number of errors after the build. I am using ITK-4.6 and have > followed > the instructions as per > > http://wiki.openrtk.org/index.__php/RTK_wiki_help#Tutorial_0_-___Building_an_HelloWorld___application_with_RTK > > > My executable is built and is working but I have hundreds of > errors. The > first few are. > > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::MemoryAllocationError::__MemoryAllocationError(std::__string > const&, > unsigned int, std::string const&, std::string const&)': > main.cpp:(.text.___ZN3itk21MemoryAllocationErrorC__2ERKSsjS2_S2_[___ZN3itk21MemoryAllocationErrorC__5ERKSsjS2_S2_]+0x35): > undefined reference to > `itk::ExceptionObject::__ExceptionObject(std::string const&, > unsigned int, > std::string const&, std::string const&)' > main.cpp:(.text.___ZN3itk21MemoryAllocationErrorC__2ERKSsjS2_S2_[___ZN3itk21MemoryAllocationErrorC__5ERKSsjS2_S2_]+0x40): > undefined reference to `vtable for itk::MemoryAllocationError' > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::Object::SetObjectName(__std::string)': > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x2e): > undefined reference to `itk::Object::__GetGlobalWarningDisplay()' > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x12e): > undefined reference to > `itk::__OutputWindowDisplayDebugText(__char const*)' > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::DataObject::__SetRealTimeStamp(itk::__RealTimeStamp)': > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x2e): > undefined reference to `itk::Object::__GetGlobalWarningDisplay()' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0xf1): > undefined reference to `itk::operator<<(std::ostream&__, > itk::RealTimeStamp const&)' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x12e): > undefined reference to > `itk::__OutputWindowDisplayDebugText(__char const*)' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x169): > undefined reference to > `itk::RealTimeStamp::operator!__=(itk::RealTimeStamp const&) const' > > > Thanks > P?draig > > > _________________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/__mailman/listinfo/rtk-users > > > From theday79 at gmail.com Mon Sep 8 23:22:32 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Mon, 8 Sep 2014 23:22:32 -0400 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> Message-ID: <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> Hi all, I've been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven't had any problem with full scan images (360 degree scan), I found that rtkfdk doesn't work well with my short scan images obtained from our Elekta XVI system. I've used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn't change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: short_scan.PNG Type: image/png Size: 166828 bytes Desc: not available URL: From simon.rit at creatis.insa-lyon.fr Tue Sep 9 01:24:25 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Tue, 9 Sep 2014 07:24:25 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> Message-ID: Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > _______________________________________________ > 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: From padraig.looney at gmail.com Tue Sep 9 06:05:01 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 9 Sep 2014 11:05:01 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction Message-ID: When I try to run the "FirstReconstruction" example I am getting a segmentation fault. The following is the output from gdb Program received signal SIGSEGV, Segmentation fault. 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue Sep 9 06:32:29 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 09 Sep 2014 12:32:29 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: Message-ID: <540ED73D.3080003@creatis.insa-lyon.fr> Hi Padraig, With so little information, there isn't much we can do to help you. I usually track segfaults by compiling in Debug mode (by setting "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT Creator (any decent IDE will do just fine, and should stop when the segfault occurs, allowing you to trace it back) Good luck, Cyril On 09/09/2014 12:05 PM, Padraig Looney wrote: > When I try to run the "FirstReconstruction" example I am getting a > segmentation fault. > > The following is the output from gdb > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () > > > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Tue Sep 9 08:40:48 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Tue, 9 Sep 2014 14:40:48 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing wrote: > Hi all, > > > > We have experienced the same problem as YangKyun in our institution. Find > attached a screendump of a short scan, and the ElektaGeometry file. We are > reconstructing on CPU using RTK 1.0.0, and have encountered the strange > behavior a couple of times without being able to find any patterns. Our > images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree > scan with the S20 filter on an Elekta XVI machine. > > > > Hope this helps in tracking down the problem. > > > > > > Best regards, > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *P? vegne > af *Simon Rit > *Sendt:* 9. september 2014 07:24 > *Til:* Yang Kyun Park > *Cc:* rtk-users at public.kitware.com > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Hi, > > Everything looks correct in what you did. What version of RTK did you use? > It looks like a bug in the angular weighting of the projections coming > from the discretization of the integral on the gantry angle. Could you send > us a copy of ElektaGeometry.xml and tell us what was the dimension of the > projections? We will look into it. > Thanks for the report, > Simon > > > > On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > > _______________________________________________ > 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: From theday79 at gmail.com Tue Sep 9 11:43:32 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Tue, 9 Sep 2014 11:43:32 -0400 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: <002e01cfcc44$d01763f0$70462bd0$@gmail.com> Hi Simon, Thank your for the prompt update. Now it works perfectly! Best, YangKyun From: simon.rit at gmail.com [mailto:simon.rit at gmail.com] On Behalf Of Simon Rit Sent: Tuesday, September 09, 2014 8:41 AM To: Rune Slot Thing Cc: Yang Kyun Park; rtk-users at public.kitware.com Subject: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: Hi all, We have experienced the same problem as YangKyun in our institution. Find attached a screendump of a short scan, and the ElektaGeometry file. We are reconstructing on CPU using RTK 1.0.0, and have encountered the strange behavior a couple of times without being able to find any patterns. Our images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree scan with the S20 filter on an Elekta XVI machine. Hope this helps in tracking down the problem. Best regards, Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: Rtk-users [mailto:rtk-users-bounces at public.kitware.com ] P? vegne af Simon Rit Sendt: 9. september 2014 07:24 Til: Yang Kyun Park Cc: rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park > wrote: Hi all, I?ve been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven?t had any problem with full scan images (360 degree scan), I found that rtkfdk doesn?t work well with my short scan images obtained from our Elekta XVI system. I?ve used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn?t change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun _______________________________________________ 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: From Rune.Slot.Thing at rsyd.dk Wed Sep 10 04:39:05 2014 From: Rune.Slot.Thing at rsyd.dk (Rune Slot Thing) Date: Wed, 10 Sep 2014 08:39:05 +0000 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> Hi Simon, I asked our IT-guy to recompile the new commit, but unfortunately he was unsuccessful. Here is what he writes: I've downloaded the master from git today and compiled in the VS 2008 pro 64bit on Win7 with itk 4.3.0 and fftw. The new fix does not compile because of issues on line 92-99 in rtkParkerShortScanImageFilter.txx error C2678: binary '==' : no operator found which takes a left-hand operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no acceptable conversion) and on line 73 error C2923: 'itk::Vector' : 'rtk::DaubechiesWaveletsConvolutionImageFilter::Pass' is not a valid template type argument for parameter 'T' f:\programmering\cxx\lib\rtk\master-2014-09-10\code\rtkDaubechiesWaveletsConvolutionImageFilter.h 73 rtkadmmwavelets Is it a typo with to identical lines (LINE 93 = 94)? Thanks again for your prompt help. Best regards, Rune Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: simon.rit at gmail.com [mailto:simon.rit at gmail.com] P? vegne af Simon Rit Sendt: 9. september 2014 14:41 Til: Rune Slot Thing Cc: Yang Kyun Park; rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: Hi all, We have experienced the same problem as YangKyun in our institution. Find attached a screendump of a short scan, and the ElektaGeometry file. We are reconstructing on CPU using RTK 1.0.0, and have encountered the strange behavior a couple of times without being able to find any patterns. Our images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree scan with the S20 filter on an Elekta XVI machine. Hope this helps in tracking down the problem. Best regards, Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: Rtk-users [mailto:rtk-users-bounces at public.kitware.com] P? vegne af Simon Rit Sendt: 9. september 2014 07:24 Til: Yang Kyun Park Cc: rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park > wrote: Hi all, I?ve been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven?t had any problem with full scan images (360 degree scan), I found that rtkfdk doesn?t work well with my short scan images obtained from our Elekta XVI system. I?ve used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn?t change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun _______________________________________________ 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: From wuchao04 at gmail.com Wed Sep 10 07:35:27 2014 From: wuchao04 at gmail.com (Chao Wu) Date: Wed, 10 Sep 2014 13:35:27 +0200 Subject: [Rtk-users] coordinates of 3D volume Message-ID: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 08:38:43 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 14:38:43 +0200 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: Message-ID: Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu wrote: > Hi all, > > I see that rtk use certain industrial standard for the coordinates of 2D > projections and 3D volumes. However in medical imaging, the xy planes of a > volume are usually transaxial slices while the 3rd dimension is aligned > with the axis of rotation. I would like to switch to this coordinates in my > own code. Is there anyone who can give me some comments and suggestions > about where to start? Thanks. > > Regards, > Chao > > _______________________________________________ > 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: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 08:43:54 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 14:43:54 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> Message-ID: I wonder why it compiles on Linux... but anyway, sorry, it's been fixed. On Wed, Sep 10, 2014 at 10:39 AM, Rune Slot Thing wrote: > Hi Simon, > > > > I asked our IT-guy to recompile the new commit, but unfortunately he was > unsuccessful. Here is what he writes: > > > > I've downloaded the master from git today and compiled in the VS 2008 pro > 64bit on Win7 with itk 4.3.0 and fftw. > > > > The new fix does not compile because of issues on line 92-99 in > rtkParkerShortScanImageFilter.txx > > > > error C2678: binary '==' : no operator found which takes a left-hand > operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no > acceptable conversion) > > > > and on line 73 > > > > error C2923: 'itk::Vector' : > 'rtk::DaubechiesWaveletsConvolutionImageFilter::Pass' is not a > valid template type argument for parameter 'T' > f:\programmering\cxx\lib\rtk\master-2014-09-10\code\rtkDaubechiesWaveletsConvolutionImageFilter.h > 73 rtkadmmwavelets > > Is it a typo with to identical lines (LINE 93 = 94)? > > > > Thanks again for your prompt help. > > > > Best regards, > > Rune > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* simon.rit at gmail.com [mailto:simon.rit at gmail.com] *P? vegne af *Simon > Rit > *Sendt:* 9. september 2014 14:41 > *Til:* Rune Slot Thing > *Cc:* Yang Kyun Park; rtk-users at public.kitware.com > > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Thank you Rune, this was very helpful. The pattern is that several > projections have the same gantry angle on one side of the gantry angle gap. > Something that happens with Elekta Synergy... I think that the bug has been > fixed: > > https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f > > > > On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: > > Hi all, > > > > We have experienced the same problem as YangKyun in our institution. Find > attached a screendump of a short scan, and the ElektaGeometry file. We are > reconstructing on CPU using RTK 1.0.0, and have encountered the strange > behavior a couple of times without being able to find any patterns. Our > images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree > scan with the S20 filter on an Elekta XVI machine. > > > > Hope this helps in tracking down the problem. > > > > > > Best regards, > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *P? vegne > af *Simon Rit > *Sendt:* 9. september 2014 07:24 > *Til:* Yang Kyun Park > *Cc:* rtk-users at public.kitware.com > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Hi, > > Everything looks correct in what you did. What version of RTK did you use? > It looks like a bug in the angular weighting of the projections coming > from the discretization of the integral on the gantry angle. Could you send > us a copy of ElektaGeometry.xml and tell us what was the dimension of the > projections? We will look into it. > Thanks for the report, > Simon > > > > On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > > _______________________________________________ > 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: From theday79 at gmail.com Wed Sep 10 09:47:17 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Wed, 10 Sep 2014 09:47:17 -0400 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: Message-ID: <003801cfccfd$bd111800$37334800$@gmail.com> Hi Chao, I had the same issue on my work and I?ve managed to fix it by the following codes. I?m not sure this is the optimal way to do it but at least it worked in my case. (Or you can transform it in 3D Slicer. In transform menu, you need to apply the following matrix: 0 0 -1 0 1 0 0 0 0 1 0 0 0 0 0 1 to the target image, harden the transform then export the image.) Best, YangKyun // OutputImageType = // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction //Same image type from original image -3D & float OutputImageType::IndexType start_trans; start_trans[0] = 0; start_trans[1] = 0; start_trans[2] = 0; OutputImageType::SizeType size_trans; size_trans[0] = sizeOutput[0]; // X //410 size_trans[1] = sizeOutput[2]; //Y // 410 size_trans[2] = sizeOutput[1]; //Z // 120? OutputImageType::SpacingType spacing_trans; spacing_trans[0] = spacing[0]; spacing_trans[1] = spacing[2]; spacing_trans[2] = spacing[1]; OutputImageType::PointType Origin_trans; Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; OutputImageType::RegionType region_trans; region_trans.SetSize(size_trans); region_trans.SetIndex(start_trans); /* 2) Prepare Target image */ OutputImageType::Pointer targetImg = streamerBP->GetOutput(); /* 3) Configure transform */ typedef itk::Euler3DTransform< double > TransformType; TransformType::Pointer transform = TransformType::New(); TransformType::ParametersType param; param.SetSize(6); //MAXIMUM PARAM NUMBER: 6!!! param.put(0, 0.0); //rot X // 0.5 = PI/2 param.put(1, itk::Math::pi/2.0);//rot Y param.put(2, itk::Math::pi/-2.0);//rot Z param.put(3, 0.0); // Trans X mm param.put(4, 0.0); // Trans Y mm param.put(5, 0.0); // Trans Z mm TransformType::ParametersType fixedParam(3); //rotation center fixedParam.put(0,0); fixedParam.put(1,0); fixedParam.put(2,0); transform->SetParameters(param); transform->SetFixedParameters(fixedParam); //Center of the Transform cout << "Transform matrix:" << " " << endl; cout << transform->GetMatrix() << std::endl; typedef itk::ResampleImageFilter ResampleFilterType; ResampleFilterType::Pointer resampler = ResampleFilterType::New(); //OutputImageType::RegionType fixedImg_Region = fixedImg->GetLargestPossibleRegion().GetSize(); resampler->SetInput(targetImg); resampler->SetSize(size_trans); resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large Canvas resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 resampler->SetOutputDirection( targetImg->GetDirection() ); //image normal? resampler->SetTransform(transform); //LR flip cout << "LR flip filter is being applied" << endl; typedef itk::FlipImageFilter< OutputImageType > FilterType; FilterType::Pointer flipFilter = FilterType::New(); typedef FilterType::FlipAxesArrayType FlipAxesArrayType; FlipAxesArrayType arrFlipAxes; arrFlipAxes[0] = 1; arrFlipAxes[1] = 0; arrFlipAxes[2] = 0; flipFilter->SetFlipAxes(arrFlipAxes); flipFilter->SetInput(resampler->GetOutput()); flipFilter->Update(); //Use flipFilter->GetOutput() for further process From: Rtk-users [mailto:rtk-users-bounces at public.kitware.com] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 8:39 AM To: Chao Wu Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu > wrote: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao _______________________________________________ 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: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 10:50:00 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 16:50:00 +0200 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: <003801cfccfd$bd111800$37334800$@gmail.com> References: <003801cfccfd$bd111800$37334800$@gmail.com> Message-ID: This option works but there is a risk of an additional interpolation by the resampler and it costs some computing time. The other option I suggested requires to modify the transform parameter of the source (in this example, add constantImageSource->SetDirection(transform->GetMatrix()); where transform is that of Yang's example, then use itk::ChangeImageInformation to reset the transform to identity. On Wed, Sep 10, 2014 at 3:47 PM, Yang Kyun Park wrote: > Hi Chao, > > > > I had the same issue on my work and I?ve managed to fix it by the > following codes. > > I?m not sure this is the optimal way to do it but at least it worked in my > case. > > > > (Or you can transform it in 3D Slicer. > > In transform menu, you need to apply the following matrix: > > 0 0 -1 0 > > 1 0 0 0 > > 0 1 0 0 > > 0 0 0 1 > > to the target image, harden the transform then export the image.) > > > > Best, > > YangKyun > > > > > > // OutputImageType = > > // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction > > > > //Same image type from original image -3D & float > > OutputImageType::IndexType start_trans; > > start_trans[0] = 0; > > start_trans[1] = 0; > > start_trans[2] = 0; > > > > OutputImageType::SizeType size_trans; > > size_trans[0] = sizeOutput[0]; // X //410 > > size_trans[1] = sizeOutput[2]; //Y // 410 > > size_trans[2] = sizeOutput[1]; //Z // 120? > > > > OutputImageType::SpacingType spacing_trans; > > spacing_trans[0] = spacing[0]; > > spacing_trans[1] = spacing[2]; > > spacing_trans[2] = spacing[1]; > > > > OutputImageType::PointType Origin_trans; > > Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; > > Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; > > Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; > > > > OutputImageType::RegionType region_trans; > > region_trans.SetSize(size_trans); > > region_trans.SetIndex(start_trans); > > > > /* 2) Prepare Target image */ > > OutputImageType::Pointer targetImg = streamerBP->GetOutput(); > > > > /* 3) Configure transform */ > > typedef itk::Euler3DTransform< double > TransformType; > > TransformType::Pointer transform = TransformType::New(); > > > > TransformType::ParametersType param; > > param.SetSize(6); > > //MAXIMUM PARAM NUMBER: 6!!! > > param.put(0, 0.0); //rot X // 0.5 = PI/2 > > param.put(1, itk::Math::pi/2.0);//rot Y > > param.put(2, itk::Math::pi/-2.0);//rot Z > > param.put(3, 0.0); // Trans X mm > > param.put(4, 0.0); // Trans Y mm > > param.put(5, 0.0); // Trans Z mm > > > > TransformType::ParametersType fixedParam(3); //rotation center > > fixedParam.put(0,0); > > fixedParam.put(1,0); > > fixedParam.put(2,0); > > > > transform->SetParameters(param); > > transform->SetFixedParameters(fixedParam); //Center of the > Transform > > > > cout << "Transform matrix:" << " " << endl; > > cout << transform->GetMatrix() << std::endl; > > > > typedef itk::ResampleImageFilter > ResampleFilterType; > > ResampleFilterType::Pointer resampler = ResampleFilterType::New(); > > //OutputImageType::RegionType fixedImg_Region = > fixedImg->GetLargestPossibleRegion().GetSize(); > > > > resampler->SetInput(targetImg); > > resampler->SetSize(size_trans); > > resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large > Canvas > > resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 > > resampler->SetOutputDirection( targetImg->GetDirection() ); //image > normal? > > resampler->SetTransform(transform); > > > > //LR flip > > > > cout << "LR flip filter is being applied" << endl; > > > > typedef itk::FlipImageFilter< OutputImageType > FilterType; > > > > FilterType::Pointer flipFilter = FilterType::New(); > > typedef FilterType::FlipAxesArrayType FlipAxesArrayType; > > > > FlipAxesArrayType arrFlipAxes; > > arrFlipAxes[0] = 1; > > arrFlipAxes[1] = 0; > > arrFlipAxes[2] = 0; > > > > flipFilter->SetFlipAxes(arrFlipAxes); > > flipFilter->SetInput(resampler->GetOutput()); > > flipFilter->Update(); > > > > //Use flipFilter->GetOutput() for further process > > > > > > > > *From:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *On > Behalf Of *Simon Rit > *Sent:* Wednesday, September 10, 2014 8:39 AM > *To:* Chao Wu > *Cc:* rtk-users at openrtk.org > *Subject:* Re: [Rtk-users] coordinates of 3D volume > > > > Hi, > > I wish there was a single industrial standard... You have the DICOM > standard in mind and I used an IEC standard (see wiki). You can play with > the --direction option to orientate the voxel axes of your image (see > itk::Image documentation) and then reset the direction of your output image > to identity, I think that will do what you want. > > Simon > > > > On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu wrote: > > Hi all, > > > > I see that rtk use certain industrial standard for the coordinates of 2D > projections and 3D volumes. However in medical imaging, the xy planes of a > volume are usually transaxial slices while the 3rd dimension is aligned > with the axis of rotation. I would like to switch to this coordinates in my > own code. Is there anyone who can give me some comments and suggestions > about where to start? Thanks. > > > > Regards, > > Chao > > > _______________________________________________ > 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: From theday79 at gmail.com Wed Sep 10 10:56:28 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Wed, 10 Sep 2014 10:56:28 -0400 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: <003801cfccfd$bd111800$37334800$@gmail.com> Message-ID: <005e01cfcd07$6783cdb0$368b6910$@gmail.com> Hi Simon, Thanks for the good tip. Let me try out your approach too! YangKyun From: simon.rit at gmail.com [mailto:simon.rit at gmail.com] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 10:50 AM To: Yang Kyun Park Cc: Chao Wu; rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume This option works but there is a risk of an additional interpolation by the resampler and it costs some computing time. The other option I suggested requires to modify the transform parameter of the source (in this example, add constantImageSource->SetDirection(transform->GetMatrix()); where transform is that of Yang's example, then use itk::ChangeImageInformation to reset the transform to identity. On Wed, Sep 10, 2014 at 3:47 PM, Yang Kyun Park > wrote: Hi Chao, I had the same issue on my work and I?ve managed to fix it by the following codes. I?m not sure this is the optimal way to do it but at least it worked in my case. (Or you can transform it in 3D Slicer. In transform menu, you need to apply the following matrix: 0 0 -1 0 1 0 0 0 0 1 0 0 0 0 0 1 to the target image, harden the transform then export the image.) Best, YangKyun // OutputImageType = // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction //Same image type from original image -3D & float OutputImageType::IndexType start_trans; start_trans[0] = 0; start_trans[1] = 0; start_trans[2] = 0; OutputImageType::SizeType size_trans; size_trans[0] = sizeOutput[0]; // X //410 size_trans[1] = sizeOutput[2]; //Y // 410 size_trans[2] = sizeOutput[1]; //Z // 120? OutputImageType::SpacingType spacing_trans; spacing_trans[0] = spacing[0]; spacing_trans[1] = spacing[2]; spacing_trans[2] = spacing[1]; OutputImageType::PointType Origin_trans; Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; OutputImageType::RegionType region_trans; region_trans.SetSize(size_trans); region_trans.SetIndex(start_trans); /* 2) Prepare Target image */ OutputImageType::Pointer targetImg = streamerBP->GetOutput(); /* 3) Configure transform */ typedef itk::Euler3DTransform< double > TransformType; TransformType::Pointer transform = TransformType::New(); TransformType::ParametersType param; param.SetSize(6); //MAXIMUM PARAM NUMBER: 6!!! param.put(0, 0.0); //rot X // 0.5 = PI/2 param.put(1, itk::Math::pi/2.0);//rot Y param.put(2, itk::Math::pi/-2.0);//rot Z param.put(3, 0.0); // Trans X mm param.put(4, 0.0); // Trans Y mm param.put(5, 0.0); // Trans Z mm TransformType::ParametersType fixedParam(3); //rotation center fixedParam.put(0,0); fixedParam.put(1,0); fixedParam.put(2,0); transform->SetParameters(param); transform->SetFixedParameters(fixedParam); //Center of the Transform cout << "Transform matrix:" << " " << endl; cout << transform->GetMatrix() << std::endl; typedef itk::ResampleImageFilter ResampleFilterType; ResampleFilterType::Pointer resampler = ResampleFilterType::New(); //OutputImageType::RegionType fixedImg_Region = fixedImg->GetLargestPossibleRegion().GetSize(); resampler->SetInput(targetImg); resampler->SetSize(size_trans); resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large Canvas resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 resampler->SetOutputDirection( targetImg->GetDirection() ); //image normal? resampler->SetTransform(transform); //LR flip cout << "LR flip filter is being applied" << endl; typedef itk::FlipImageFilter< OutputImageType > FilterType; FilterType::Pointer flipFilter = FilterType::New(); typedef FilterType::FlipAxesArrayType FlipAxesArrayType; FlipAxesArrayType arrFlipAxes; arrFlipAxes[0] = 1; arrFlipAxes[1] = 0; arrFlipAxes[2] = 0; flipFilter->SetFlipAxes(arrFlipAxes); flipFilter->SetInput(resampler->GetOutput()); flipFilter->Update(); //Use flipFilter->GetOutput() for further process From: Rtk-users [mailto:rtk-users-bounces at public.kitware.com ] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 8:39 AM To: Chao Wu Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu > wrote: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao _______________________________________________ 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: From ghostcz at hotmail.com Mon Sep 15 08:09:46 2014 From: ghostcz at hotmail.com (ghostcz) Date: Mon, 15 Sep 2014 14:09:46 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? Message-ID: Dear Rtk users, How can I select one (or maybe more?) specific GPU to run my reconstruction? It seems if I start a second instance of the reconstruction program, it will run on the same GPU. Best regards, Louie -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Mon Sep 15 08:45:24 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Mon, 15 Sep 2014 14:45:24 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: Message-ID: Hi, Good question, I did not hear anybody working on multiple GPUs so far. It currently uses the first Cuda compatible device. I think you'll have to look up in the Cuda manual to see how to switch to another one but there is nothing available in the RTK lib yet. Don't hesitate to suggest some code changes to add this feature. Simon On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: > Dear Rtk users, > > How can I select one (or maybe more?) specific GPU to run my reconstruction? > It seems if I start a second instance of the reconstruction program, it will > run on the same GPU. > > Best regards, > Louie > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > From padraig.looney at gmail.com Tue Sep 16 10:07:05 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 16 Sep 2014 15:07:05 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: <540ED73D.3080003@creatis.insa-lyon.fr> References: <540ED73D.3080003@creatis.insa-lyon.fr> Message-ID: Thanks Cyril, Following your advice I have tracked the seg fault down to line 36 in FirstReconstruction geometry->AddProjection(sid, sdd, angle, isox, isoy); } I realised that I managed to build the examples with RTK fine and the same example runs without a seg fault in the build directory. On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory wrote: > Hi Padraig, > > With so little information, there isn't much we can do to help you. > I usually track segfaults by compiling in Debug mode (by setting > "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT > Creator (any decent IDE will do just fine, and should stop when the > segfault occurs, allowing you to trace it back) > > Good luck, > Cyril > > > On 09/09/2014 12:05 PM, Padraig Looney wrote: > > When I try to run the "FirstReconstruction" example I am getting a > segmentation fault. > > The following is the output from gdb > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () > > > > > _______________________________________________ > Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users > > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue Sep 16 10:23:07 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 16 Sep 2014 16:23:07 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: <540ED73D.3080003@creatis.insa-lyon.fr> Message-ID: <541847CB.8020807@creatis.insa-lyon.fr> Hi Padraig, Does the segfault happen at the first call of geometry->AddProjection(...) or later ? My guess is that, for some reason, geometry is not initialized. Can you make sure it is by setting a breakpoint just before ? You should also make sure that all variables involved in this call, ie "sid", "sdd", "angle", "isox" and "isoy" have reasonable values before the call. It is probably not a good question, yet I have to ask : did you modify something in the file examples/FirstReconstruction/FirstReconstruction.cxx ? Regards, Cyril On 09/16/2014 04:07 PM, Padraig Looney wrote: > Thanks Cyril, > > Following your advice I have tracked the seg fault down to line 36 in > FirstReconstruction > > geometry->AddProjection(sid, > sdd, > angle, > isox, > isoy); > } > > I realised that I managed to build the examples with RTK fine and the > same example runs without a seg fault in the build directory. > > On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory > > wrote: > > Hi Padraig, > > With so little information, there isn't much we can do to help you. > I usually track segfaults by compiling in Debug mode (by setting > "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug > in QT Creator (any decent IDE will do just fine, and should stop > when the segfault occurs, allowing you to trace it back) > > Good luck, > Cyril > > > On 09/09/2014 12:05 PM, Padraig Looney wrote: >> When I try to run the "FirstReconstruction" example I am getting >> a segmentation fault. >> >> The following is the output from gdb >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () >> >> >> >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://public.kitware.com/mailman/listinfo/rtk-users > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From padraig.looney at gmail.com Tue Sep 16 10:38:05 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 16 Sep 2014 15:38:05 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: <541847CB.8020807@creatis.insa-lyon.fr> References: <540ED73D.3080003@creatis.insa-lyon.fr> <541847CB.8020807@creatis.insa-lyon.fr> Message-ID: It happens with the first call. I set a breakpoint just before and it is not empty. I have tried to attach a screen capture of my space. Yes I thought I may have changed something but I have copied the directory twice from the original download in which it builds correctly. I cloned this with git and there are no changes. On Tue, Sep 16, 2014 at 3:23 PM, Cyril Mory wrote: > Hi Padraig, > > Does the segfault happen at the first call of geometry->AddProjection(...) > or later ? > > My guess is that, for some reason, geometry is not initialized. Can you > make sure it is by setting a breakpoint just before ? > You should also make sure that all variables involved in this call, ie > "sid", "sdd", "angle", "isox" and "isoy" have reasonable values before the > call. > > It is probably not a good question, yet I have to ask : did you modify > something in the file examples/FirstReconstruction/FirstReconstruction.cxx > ? > > Regards, > Cyril > > > On 09/16/2014 04:07 PM, Padraig Looney wrote: > > Thanks Cyril, > > Following your advice I have tracked the seg fault down to line 36 in > FirstReconstruction > > geometry->AddProjection(sid, > sdd, > angle, > isox, > isoy); > } > > I realised that I managed to build the examples with RTK fine and the > same example runs without a seg fault in the build directory. > > On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory < > cyril.mory at creatis.insa-lyon.fr> wrote: > >> Hi Padraig, >> >> With so little information, there isn't much we can do to help you. >> I usually track segfaults by compiling in Debug mode (by setting >> "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT >> Creator (any decent IDE will do just fine, and should stop when the >> segfault occurs, allowing you to trace it back) >> >> Good luck, >> Cyril >> >> >> On 09/09/2014 12:05 PM, Padraig Looney wrote: >> >> When I try to run the "FirstReconstruction" example I am getting a >> segmentation fault. >> >> The following is the output from gdb >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () >> >> >> >> >> _______________________________________________ >> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 >> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: rtkSegFaultFirstRecon.png Type: image/png Size: 273538 bytes Desc: not available URL: From cyril.mory at creatis.insa-lyon.fr Wed Sep 17 05:59:58 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Wed, 17 Sep 2014 11:59:58 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: Message-ID: <54195B9E.10000@creatis.insa-lyon.fr> Hi Louie, We have been investigating your question bit. A first possible solution, which may be sufficient for your needs, could be to set the CUDA_VISIBLE_DEVICES environment variable. You'll find details here : http://www.acceleware.com/blog/cudavisibledevices-masking-gpus Here are two scripts I used to run tests on our two-GPUs server: ######### First script ######### echo "Running two instances of rtkfdk without specifying a GPU" CUDA_VISIBLE_DEVICES="0,1" time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g geom.xml --dimension 512 & time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g geom.xml --dimension 512 & ######### Second script ######### echo "Running two instances of rtkfdk, specifying which GPU to use for each" echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash ######### End ############# On our server, which has two identical GPUs, these two scripts took the same time. It seems that, in the first script, rtkfdk somehow managed to detect that the first GPU was in use and ran on the second one. But I can't guarantee under which conditions this happens, and surely it's safer to use the second script. This is the cheapest solution. If you need more than that, and you are ready to dive into the cuda filters' code as well as into the automatic transfers between CPU and GPU memory, do not hesitate to propose modifications of the RTK code. Regards, Cyril On 09/15/2014 02:45 PM, Simon Rit wrote: > Hi, > Good question, I did not hear anybody working on multiple GPUs so far. > It currently uses the first Cuda compatible device. I think you'll > have to look up in the Cuda manual to see how to switch to another one > but there is nothing available in the RTK lib yet. Don't hesitate to > suggest some code changes to add this feature. > Simon > > On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >> Dear Rtk users, >> >> How can I select one (or maybe more?) specific GPU to run my reconstruction? >> It seems if I start a second instance of the reconstruction program, it will >> run on the same GPU. >> >> Best regards, >> Louie >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://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 > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From ghostcz at hotmail.com Wed Sep 17 11:58:47 2014 From: ghostcz at hotmail.com (ghostcz) Date: Wed, 17 Sep 2014 17:58:47 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: <54195B9E.10000@creatis.insa-lyon.fr> References: <54195B9E.10000@creatis.insa-lyon.fr> Message-ID: Dear Cyril, Thank you for the follow-up. That is indeed a faster way to realize this function. I wrote a launcher instead, where I call cuda_set_device to select the device. No, I don?t think I know CUDA good enough to manage the memory transfer between the devices. Best regards, Louie P.S. is there any training or workshop focusing on rtk application and development available? -----Original Message----- From: Cyril Mory Sent: Wednesday, September 17, 2014 11:59 AM To: Simon Rit ; ghostcz Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] How to run the reconstruction on a specific GPU? Hi Louie, We have been investigating your question bit. A first possible solution, which may be sufficient for your needs, could be to set the CUDA_VISIBLE_DEVICES environment variable. You'll find details here : http://www.acceleware.com/blog/cudavisibledevices-masking-gpus Here are two scripts I used to run tests on our two-GPUs server: ######### First script ######### echo "Running two instances of rtkfdk without specifying a GPU" CUDA_VISIBLE_DEVICES="0,1" time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g geom.xml --dimension 512 & time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g geom.xml --dimension 512 & ######### Second script ######### echo "Running two instances of rtkfdk, specifying which GPU to use for each" echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash ######### End ############# On our server, which has two identical GPUs, these two scripts took the same time. It seems that, in the first script, rtkfdk somehow managed to detect that the first GPU was in use and ran on the second one. But I can't guarantee under which conditions this happens, and surely it's safer to use the second script. This is the cheapest solution. If you need more than that, and you are ready to dive into the cuda filters' code as well as into the automatic transfers between CPU and GPU memory, do not hesitate to propose modifications of the RTK code. Regards, Cyril On 09/15/2014 02:45 PM, Simon Rit wrote: > Hi, > Good question, I did not hear anybody working on multiple GPUs so far. > It currently uses the first Cuda compatible device. I think you'll > have to look up in the Cuda manual to see how to switch to another one > but there is nothing available in the RTK lib yet. Don't hesitate to > suggest some code changes to add this feature. > Simon > > On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >> Dear Rtk users, >> >> How can I select one (or maybe more?) specific GPU to run my >> reconstruction? >> It seems if I start a second instance of the reconstruction program, it >> will >> run on the same GPU. >> >> Best regards, >> Louie >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://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 > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From lomahu at gmail.com Wed Sep 17 23:21:34 2014 From: lomahu at gmail.com (Howard) Date: Wed, 17 Sep 2014 23:21:34 -0400 Subject: [Rtk-users] bright circle on the reconstructed image Message-ID: Hi, I use rtkfdk to reconstruct varian cbct images following the example on rtk wiki page. The projections were obtained with half fan mode because it is an abdominal region with the patient lateral x AP dimension of 550x550. The reconstructed cbct images have a big bright circle around the image. Please see the image: http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html I am using Ubuntu Linux box to reconstruct. Two sequential commands were used: ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ --regexp Proj_.*.hnd -o varianGeometry and rtkfdk \ --geometry varianGeometry \ --regexp .*.hnd \ --path ../Scan0 \ --output rec.mha \ --verbose \ --spacing 2.0,2.0,2.0 \ --dimension 256,100,256 \ The projections are stored in the standard varian format: Scan0 and ProjectionInfo.xml with 644 projection images. I assume that rtkfdk handled the half fan geometry properly. What did I do wrong then? Many thanks! -howard -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 04:12:23 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 10:12:23 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: Message-ID: <541A93E7.7010301@creatis.insa-lyon.fr> Hi Howard, The bright ring artifact is typically caused by high-pass filtering (the ramp filter used in FDK) of truncated projection data (when projections have non-zero values on the sides, the edge of the projection makes a sharp transition to zero). A classical answer to this problem is to pad the projections, for example with values starting from the values on the side and slowly decreasing to zero. rtkfdk can do this padding for you. Just add "--pad 0.1" to your options (or more than 0.1 if it isn't enough). Also, I noticed that your reconstructed image seems quite noisy. You might want to use a Hann windowing of the ramp filter to reduce the noise amplification effect of high-pass filtering. You can do that by adding "--hann 0.5" to your options. Note that the argument is a cut-off frequency, so smaller values mean more smoothing. Best regards, Cyril On 09/18/2014 05:21 AM, Howard wrote: > Hi, > I use rtkfdk to reconstruct varian cbct images following the example > on rtk wiki page. The projections were obtained with half fan mode > because it is an abdominal region with the patient lateral x AP > dimension of 550x550. The reconstructed cbct images have a big > bright circle around > the image. Please see the image: > http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > I am using Ubuntu Linux box to reconstruct. Two sequential commands > were used: > ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > --regexp Proj_.*.hnd -o varianGeometry > and > rtkfdk \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output rec.mha \ > --verbose \ > --spacing 2.0,2.0,2.0 \ > --dimension 256,100,256 \ > The projections are stored in the standard varian format: Scan0 and > ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled the half fan geometry properly. What did I do wrong then? > Many thanks! > -howard > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 04:53:34 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 10:53:34 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: <54195B9E.10000@creatis.insa-lyon.fr> Message-ID: <541A9D8E.5040403@creatis.insa-lyon.fr> Hi Louie, Good that you managed to solve your problem. Your question on training made us think a bit. Here are a few answers: - At the moment, there is only a wiki, the documentation and this mailing list - We're only a handful of developers working on RTK, so it seems too early, and too much logistics, to organize real workshops or training sessions in the near future - That being said, we would like to leave the door open. Surely it is important, if we want more people to use RTK and contribute to it, that new developers can learn easily and efficiently. I'll start a specific thread on the mailing list to gather the possible requests similar to yours - RTK uses ITK to do most of the work, therefore programming in RTK essentially requires knowing ITK and knowing some tomography. ITK training sessions are organized often and in many countries I hope it helps, Cyril On 09/17/2014 05:58 PM, ghostcz wrote: > Dear Cyril, > > Thank you for the follow-up. > That is indeed a faster way to realize this function. I wrote a > launcher instead, where I call cuda_set_device to select the device. > No, I don?t think I know CUDA good enough to manage the memory > transfer between the devices. > > Best regards, > Louie > > P.S. is there any training or workshop focusing on rtk application and > development available? > > > > > -----Original Message----- From: Cyril Mory > Sent: Wednesday, September 17, 2014 11:59 AM > To: Simon Rit ; ghostcz > Cc: rtk-users at openrtk.org > Subject: Re: [Rtk-users] How to run the reconstruction on a specific GPU? > > Hi Louie, > > We have been investigating your question bit. A first possible solution, > which may be sufficient for your needs, could be to set the > CUDA_VISIBLE_DEVICES environment variable. You'll find details here : > http://www.acceleware.com/blog/cudavisibledevices-masking-gpus > > Here are two scripts I used to run tests on our two-GPUs server: > > ######### First script ######### > echo "Running two instances of rtkfdk without specifying a GPU" > CUDA_VISIBLE_DEVICES="0,1" > time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g > geom.xml --dimension 512 & > time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g > geom.xml --dimension 512 & > > ######### Second script ######### > echo "Running two instances of rtkfdk, specifying which GPU to use for > each" > echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o > fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash > echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o > fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash > > ######### End ############# > > On our server, which has two identical GPUs, these two scripts took the > same time. It seems that, in the first script, rtkfdk somehow managed to > detect that the first GPU was in use and ran on the second one. But I > can't guarantee under which conditions this happens, and surely it's > safer to use the second script. > > This is the cheapest solution. If you need more than that, and you are > ready to dive into the cuda filters' code as well as into the automatic > transfers between CPU and GPU memory, do not hesitate to propose > modifications of the RTK code. > > Regards, > Cyril > > On 09/15/2014 02:45 PM, Simon Rit wrote: >> Hi, >> Good question, I did not hear anybody working on multiple GPUs so far. >> It currently uses the first Cuda compatible device. I think you'll >> have to look up in the Cuda manual to see how to switch to another one >> but there is nothing available in the RTK lib yet. Don't hesitate to >> suggest some code changes to add this feature. >> Simon >> >> On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >>> Dear Rtk users, >>> >>> How can I select one (or maybe more?) specific GPU to run my >>> reconstruction? >>> It seems if I start a second instance of the reconstruction program, >>> it will >>> run on the same GPU. >>> >>> Best regards, >>> Louie >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://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 >> > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 05:28:42 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 11:28:42 +0200 Subject: [Rtk-users] Would you like RTK trainings ? Message-ID: <541AA5CA.9050306@creatis.insa-lyon.fr> Hi RTK users, A recent question on the mailing list by Louie triggered a conversation between us. Louie asked whether there exists some sort of training or workshop on RTK. In a nutshell, the answer is "No, not yet, but why not talk about it ?". So I'd like to start some sort of "poll" to gather the requests you might have on this topic: Do you need / want / would like a training on RTK ? If so, can you be more specific on what you would like to learn ? (basics of tomography, how to start using RTK on your data, practical issues in circular cone beam CT, motion compensated reconstruction, compressed sensing in tomography, ITK programming, ... this is not an exhaustive list) I think this is enough questions for the time being. The rest will depend on your answers. Looking forward to reading you, -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 06:08:21 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 12:08:21 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: <540ED73D.3080003@creatis.insa-lyon.fr> <541847CB.8020807@creatis.insa-lyon.fr> Message-ID: <541AAF15.9080707@creatis.insa-lyon.fr> Hi Padraig, It is puzzling, as the code is simple and we have many machines on which it works without problem. So let's explore the weirder options : - In one of your previous emails, you mentioned that "the same example runs without a seg fault in the build directory". What does that mean ? - Can you go into your build directory, run "make test", and post the result of the tests ? - Have you tried installing RTK on another machine ? Regards, Cyril On 09/16/2014 04:38 PM, Padraig Looney wrote: > It happens with the first call. > > I set a breakpoint just before and it is not empty. I have tried to > attach a screen capture of my space. > > Yes I thought I may have changed something but I have copied the > directory twice from the original download in which it builds > correctly. I cloned this with git and there are no changes. > > > On Tue, Sep 16, 2014 at 3:23 PM, Cyril Mory > > wrote: > > Hi Padraig, > > Does the segfault happen at the first call of > geometry->AddProjection(...) or later ? > > My guess is that, for some reason, geometry is not initialized. > Can you make sure it is by setting a breakpoint just before ? > You should also make sure that all variables involved in this > call, ie "sid", "sdd", "angle", "isox" and "isoy" have reasonable > values before the call. > > It is probably not a good question, yet I have to ask : did you > modify something in the file > examples/FirstReconstruction/FirstReconstruction.cxx ? > > Regards, > Cyril > > > On 09/16/2014 04:07 PM, Padraig Looney wrote: >> Thanks Cyril, >> >> Following your advice I have tracked the seg fault down to line >> 36 in FirstReconstruction >> >> geometry->AddProjection(sid, >> sdd, >> angle, >> isox, >> isoy); >> } >> >> I realised that I managed to build the examples with RTK fine and >> the same example runs without a seg fault in the build directory. >> >> On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory >> > > wrote: >> >> Hi Padraig, >> >> With so little information, there isn't much we can do to >> help you. >> I usually track segfaults by compiling in Debug mode (by >> setting "CMAKE_BUILD_TYPE" to "Debug"), then running the >> program in debug in QT Creator (any decent IDE will do just >> fine, and should stop when the segfault occurs, allowing you >> to trace it back) >> >> Good luck, >> Cyril >> >> >> On 09/09/2014 12:05 PM, Padraig Looney wrote: >>> When I try to run the "FirstReconstruction" example I am >>> getting a segmentation fault. >>> >>> The following is the output from gdb >>> >>> Program received signal SIGSEGV, Segmentation fault. >>> 0x00000000004952d7 in typeinfo for >>> rtk::ProjectionGeometry<3u> () >>> >>> >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://public.kitware.com/mailman/listinfo/rtk-users >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile:+33 6 69 46 73 79 >> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Thu Sep 18 09:47:40 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Thu, 18 Sep 2014 15:47:40 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: <541A93E7.7010301@creatis.insa-lyon.fr> References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: Hi, I fully agree with Cyril. Something else : you might want to mask out what is outside the field-of-view using the rtkfieldofview executable. Your ring corresponds to that border. See an example here: http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction Simon On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < cyril.mory at creatis.insa-lyon.fr> wrote: > Hi Howard, > > The bright ring artifact is typically caused by high-pass filtering (the > ramp filter used in FDK) of truncated projection data (when projections > have non-zero values on the sides, the edge of the projection makes a sharp > transition to zero). A classical answer to this problem is to pad the > projections, for example with values starting from the values on the side > and slowly decreasing to zero. > > rtkfdk can do this padding for you. Just add "--pad 0.1" to your options > (or more than 0.1 if it isn't enough). > Also, I noticed that your reconstructed image seems quite noisy. You might > want to use a Hann windowing of the ramp filter to reduce the noise > amplification effect of high-pass filtering. You can do that by adding > "--hann 0.5" to your options. Note that the argument is a cut-off > frequency, so smaller values mean more smoothing. > > Best regards, > Cyril > > > On 09/18/2014 05:21 AM, Howard wrote: > > Hi, > > I use rtkfdk to reconstruct varian cbct images following the example on > rtk wiki page. The projections were obtained with half fan mode because it > is an abdominal region with the patient lateral x AP dimension of 550x550. > The reconstructed cbct images have a big bright circle around > the image. Please see the image: > http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > > I am using Ubuntu Linux box to reconstruct. Two sequential commands were > used: > > ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > --regexp Proj_.*.hnd -o varianGeometry > and > > rtkfdk \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output rec.mha \ > --verbose \ > --spacing 2.0,2.0,2.0 \ > --dimension 256,100,256 \ > The projections are stored in the standard varian format: Scan0 and > ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled the half fan geometry properly. What did I do wrong then? Many > thanks! > > -howard > > > _______________________________________________ > Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users > > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > > _______________________________________________ > 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: From lomahu at gmail.com Thu Sep 18 10:47:17 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 10:47:17 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: Thanks very much, Cyril & Simon. Now the fdk reconstruction is working beautifully. Jus another quick question: for rtksart executable, are we still able to do padding and hanning window trick as well? On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit wrote: > Hi, > I fully agree with Cyril. Something else : you might want to mask out what > is outside the field-of-view using the rtkfieldofview executable. Your ring > corresponds to that border. See an example here: > http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > Simon > > On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < > cyril.mory at creatis.insa-lyon.fr> wrote: > >> Hi Howard, >> >> The bright ring artifact is typically caused by high-pass filtering (the >> ramp filter used in FDK) of truncated projection data (when projections >> have non-zero values on the sides, the edge of the projection makes a sharp >> transition to zero). A classical answer to this problem is to pad the >> projections, for example with values starting from the values on the side >> and slowly decreasing to zero. >> >> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >> (or more than 0.1 if it isn't enough). >> Also, I noticed that your reconstructed image seems quite noisy. You >> might want to use a Hann windowing of the ramp filter to reduce the noise >> amplification effect of high-pass filtering. You can do that by adding >> "--hann 0.5" to your options. Note that the argument is a cut-off >> frequency, so smaller values mean more smoothing. >> >> Best regards, >> Cyril >> >> >> On 09/18/2014 05:21 AM, Howard wrote: >> >> Hi, >> >> I use rtkfdk to reconstruct varian cbct images following the example on >> rtk wiki page. The projections were obtained with half fan mode because it >> is an abdominal region with the patient lateral x AP dimension of 550x550. >> The reconstructed cbct images have a big bright circle around >> the image. Please see the image: >> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> >> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >> used: >> >> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >> --regexp Proj_.*.hnd -o varianGeometry >> and >> >> rtkfdk \ >> --geometry varianGeometry \ >> --regexp .*.hnd \ >> --path ../Scan0 \ >> --output rec.mha \ >> --verbose \ >> --spacing 2.0,2.0,2.0 \ >> --dimension 256,100,256 \ >> The projections are stored in the standard varian format: Scan0 and >> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >> handled the half fan geometry properly. What did I do wrong then? Many >> thanks! >> >> -howard >> >> >> _______________________________________________ >> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 >> >> >> _______________________________________________ >> 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: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 10:59:53 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 16:59:53 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: <541AF369.9090403@creatis.insa-lyon.fr> Howard, For SART reconstructions, you do not need padding, and you can't do Hann windowing because no ramp filtering is applied. SART usually outputs smoother images, so you probably will not need this denoising trick anyway. However, you should be careful about one thing : your object has to be fully contained in the reconstructed volume, or you will observe important border effects. Use the --dimension, --spacing and --origin options to ensure this. All the best, Cyril On 09/18/2014 04:47 PM, Howard wrote: > Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > beautifully. Jus another quick question: for rtksart executable, are > we still able to do padding and hanning window trick as well? > > On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > > wrote: > > Hi, > I fully agree with Cyril. Something else : you might want to mask > out what is outside the field-of-view using the rtkfieldofview > executable. Your ring corresponds to that border. See an example here: > http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > Simon > > On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory > > wrote: > > Hi Howard, > > The bright ring artifact is typically caused by high-pass > filtering (the ramp filter used in FDK) of truncated > projection data (when projections have non-zero values on the > sides, the edge of the projection makes a sharp transition to > zero). A classical answer to this problem is to pad the > projections, for example with values starting from the values > on the side and slowly decreasing to zero. > > rtkfdk can do this padding for you. Just add "--pad 0.1" to > your options (or more than 0.1 if it isn't enough). > Also, I noticed that your reconstructed image seems quite > noisy. You might want to use a Hann windowing of the ramp > filter to reduce the noise amplification effect of high-pass > filtering. You can do that by adding "--hann 0.5" to your > options. Note that the argument is a cut-off frequency, so > smaller values mean more smoothing. > > Best regards, > Cyril > > > On 09/18/2014 05:21 AM, Howard wrote: >> Hi, >> I use rtkfdk to reconstruct varian cbct images following the >> example on rtk wiki page. The projections were obtained with >> half fan mode because it is an abdominal region with the >> patient lateral x AP dimension of 550x550. The reconstructed >> cbct images have a big bright circle around >> the image. Please see the image: >> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> I am using Ubuntu Linux box to reconstruct. Two sequential >> commands were used: >> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path >> Scan0/ --regexp Proj_.*.hnd -o varianGeometry >> and >> rtkfdk \ >> --geometry varianGeometry \ >> --regexp .*.hnd \ >> --path ../Scan0 \ >> --output rec.mha \ >> --verbose \ >> --spacing 2.0,2.0,2.0 \ >> --dimension 256,100,256 \ >> The projections are stored in the standard varian format: >> Scan0 and ProjectionInfo.xml with 644 projection images. I >> assume that rtkfdk handled the half fan geometry properly. >> What did I do wrong then? Many thanks! >> -howard >> >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://public.kitware.com/mailman/listinfo/rtk-users > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From lomahu at gmail.com Thu Sep 18 13:03:52 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 13:03:52 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: <541AF369.9090403@creatis.insa-lyon.fr> References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Cyril, I am testing SART reconstruction according to what you described, specifying dimension, spacing and origin: rtksart \ --geometry varianGeometry \ --regexp .*.hnd \ --path ../Scan0 \ --output sart_rec.mha \ --verbose \ --spacing 2.0\ --dimension 128,100,128 \ --origin -127.5,-99,-127.5 but the reconstruction gave a plain image with no object/contrast. I checked the grayscale values on the reconstructed images and did see they ranged from -1.78 to 3 (this may not be precise but give you some idea). I tried to adjust window level but couldn't see any contrast. I must miss something here. Please advise. Thanks! -howard On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory < cyril.mory at creatis.insa-lyon.fr> wrote: > Howard, > > For SART reconstructions, you do not need padding, and you can't do Hann > windowing because no ramp filtering is applied. SART usually outputs > smoother images, so you probably will not need this denoising trick anyway. > However, you should be careful about one thing : your object has to be > fully contained in the reconstructed volume, or you will observe important > border effects. Use the --dimension, --spacing and --origin options to > ensure this. > > All the best, > Cyril > > > On 09/18/2014 04:47 PM, Howard wrote: > > Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > beautifully. Jus another quick question: for rtksart executable, are we > still able to do padding and hanning window trick as well? > > On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > wrote: > >> Hi, >> I fully agree with Cyril. Something else : you might want to mask out >> what is outside the field-of-view using the rtkfieldofview executable. Your >> ring corresponds to that border. See an example here: >> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >> Simon >> >> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < >> cyril.mory at creatis.insa-lyon.fr> wrote: >> >>> Hi Howard, >>> >>> The bright ring artifact is typically caused by high-pass filtering (the >>> ramp filter used in FDK) of truncated projection data (when projections >>> have non-zero values on the sides, the edge of the projection makes a sharp >>> transition to zero). A classical answer to this problem is to pad the >>> projections, for example with values starting from the values on the side >>> and slowly decreasing to zero. >>> >>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >>> (or more than 0.1 if it isn't enough). >>> Also, I noticed that your reconstructed image seems quite noisy. You >>> might want to use a Hann windowing of the ramp filter to reduce the noise >>> amplification effect of high-pass filtering. You can do that by adding >>> "--hann 0.5" to your options. Note that the argument is a cut-off >>> frequency, so smaller values mean more smoothing. >>> >>> Best regards, >>> Cyril >>> >>> >>> On 09/18/2014 05:21 AM, Howard wrote: >>> >>> Hi, >>> >>> I use rtkfdk to reconstruct varian cbct images following the example on >>> rtk wiki page. The projections were obtained with half fan mode because it >>> is an abdominal region with the patient lateral x AP dimension of 550x550. >>> The reconstructed cbct images have a big bright circle around >>> the image. Please see the image: >>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >>> >>> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >>> used: >>> >>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >>> --regexp Proj_.*.hnd -o varianGeometry >>> and >>> >>> rtkfdk \ >>> --geometry varianGeometry \ >>> --regexp .*.hnd \ >>> --path ../Scan0 \ >>> --output rec.mha \ >>> --verbose \ >>> --spacing 2.0,2.0,2.0 \ >>> --dimension 256,100,256 \ >>> The projections are stored in the standard varian format: Scan0 and >>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >>> handled the half fan geometry properly. What did I do wrong then? Many >>> thanks! >>> >>> -howard >>> >>> >>> _______________________________________________ >>> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >>> -- >>> -- >>> Cyril Mory, Post-doc >>> CREATIS >>> Leon Berard cancer treatment center >>> 28 rue La?nnec >>> 69373 Lyon cedex 08 FRANCE >>> >>> Mobile: +33 6 69 46 73 79 >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Thu Sep 18 16:41:10 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Thu, 18 Sep 2014 22:41:10 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Howard, Assuming you're using the same dataset as the one you used for the rtkfdk test, you have decreased its size. For example, x was 2*256 mm with rtkfdk and it is now 128*2. On the slice you sent, we could see that a part of the phantom on the right was missing so you should keep the same size except for this side that should be larger, certainly not reduce the size. For the display, I would suggest to use the same window/level as for your FDK reconstruction. The two reconstruction algorithms reconstruct the same average intensities, only the texture is different. Good luck, Simon On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: > Hi Cyril, > > I am testing SART reconstruction according to what you described, specifying > dimension, spacing and origin: > > rtksart \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output sart_rec.mha \ > --verbose \ > --spacing 2.0\ > --dimension 128,100,128 \ > --origin -127.5,-99,-127.5 > > but the reconstruction gave a plain image with no object/contrast. I checked > the grayscale values on the reconstructed images and did see they ranged > from -1.78 to 3 (this may not be precise but give you some idea). I tried to > adjust window level but couldn't see any contrast. I must miss something > here. Please advise. Thanks! > > -howard > > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory > wrote: >> >> Howard, >> >> For SART reconstructions, you do not need padding, and you can't do Hann >> windowing because no ramp filtering is applied. SART usually outputs >> smoother images, so you probably will not need this denoising trick anyway. >> However, you should be careful about one thing : your object has to be >> fully contained in the reconstructed volume, or you will observe important >> border effects. Use the --dimension, --spacing and --origin options to >> ensure this. >> >> All the best, >> Cyril >> >> >> On 09/18/2014 04:47 PM, Howard wrote: >> >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working >> beautifully. Jus another quick question: for rtksart executable, are we >> still able to do padding and hanning window trick as well? >> >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit >> wrote: >>> >>> Hi, >>> I fully agree with Cyril. Something else : you might want to mask out >>> what is outside the field-of-view using the rtkfieldofview executable. Your >>> ring corresponds to that border. See an example here: >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >>> Simon >>> >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory >>> wrote: >>>> >>>> Hi Howard, >>>> >>>> The bright ring artifact is typically caused by high-pass filtering (the >>>> ramp filter used in FDK) of truncated projection data (when projections have >>>> non-zero values on the sides, the edge of the projection makes a sharp >>>> transition to zero). A classical answer to this problem is to pad the >>>> projections, for example with values starting from the values on the side >>>> and slowly decreasing to zero. >>>> >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >>>> (or more than 0.1 if it isn't enough). >>>> Also, I noticed that your reconstructed image seems quite noisy. You >>>> might want to use a Hann windowing of the ramp filter to reduce the noise >>>> amplification effect of high-pass filtering. You can do that by adding >>>> "--hann 0.5" to your options. Note that the argument is a cut-off frequency, >>>> so smaller values mean more smoothing. >>>> >>>> Best regards, >>>> Cyril >>>> >>>> >>>> On 09/18/2014 05:21 AM, Howard wrote: >>>> >>>> Hi, >>>> >>>> I use rtkfdk to reconstruct varian cbct images following the example on >>>> rtk wiki page. The projections were obtained with half fan mode because it >>>> is an abdominal region with the patient lateral x AP dimension of 550x550. >>>> The reconstructed cbct images have a big bright circle around >>>> the image. Please see the image: >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >>>> >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >>>> used: >>>> >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >>>> --regexp Proj_.*.hnd -o varianGeometry >>>> and >>>> >>>> rtkfdk \ >>>> --geometry varianGeometry \ >>>> --regexp .*.hnd \ >>>> --path ../Scan0 \ >>>> --output rec.mha \ >>>> --verbose \ >>>> --spacing 2.0,2.0,2.0 \ >>>> --dimension 256,100,256 \ >>>> The projections are stored in the standard varian format: Scan0 and >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk handled >>>> the half fan geometry properly. What did I do wrong then? Many thanks! >>>> >>>> -howard >>>> >>>> >>>> _______________________________________________ >>>> Rtk-users mailing list >>>> Rtk-users at public.kitware.com >>>> http://public.kitware.com/mailman/listinfo/rtk-users >>>> >>>> >>>> -- >>>> -- >>>> Cyril Mory, Post-doc >>>> CREATIS >>>> Leon Berard cancer treatment center >>>> 28 rue La?nnec >>>> 69373 Lyon cedex 08 FRANCE >>>> >>>> Mobile: +33 6 69 46 73 79 >>>> >>>> >>>> _______________________________________________ >>>> Rtk-users mailing list >>>> Rtk-users at public.kitware.com >>>> http://public.kitware.com/mailman/listinfo/rtk-users >>>> >>> >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 > > From lomahu at gmail.com Thu Sep 18 17:47:51 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 17:47:51 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Simon, I apologize for the confusion about the dataset. Actually I did not use the same dataset. The reason is that the set I used for rtkfdk test had 644 projections and with it rtksart crashed because of memory (I only allocated 3GB memory to Virtualbox from my window7). So for the SART test I changed to a small projection set (366 projections) where the object is a cube with dimension of 5cm x 5cm x 5cm. That's why I chose a smaller reconstruction size 128*2. With the same dataset when I ran rtkfdk I got very good reconstruction. -howard On Thu, Sep 18, 2014 at 4:41 PM, Simon Rit wrote: > Hi Howard, > Assuming you're using the same dataset as the one you used for the > rtkfdk test, you have decreased its size. For example, x was 2*256 mm > with rtkfdk and it is now 128*2. On the slice you sent, we could see > that a part of the phantom on the right was missing so you should keep > the same size except for this side that should be larger, certainly > not reduce the size. > For the display, I would suggest to use the same window/level as for > your FDK reconstruction. The two reconstruction algorithms reconstruct > the same average intensities, only the texture is different. > Good luck, > Simon > > On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: > > Hi Cyril, > > > > I am testing SART reconstruction according to what you described, > specifying > > dimension, spacing and origin: > > > > rtksart \ > > --geometry varianGeometry \ > > --regexp .*.hnd \ > > --path ../Scan0 \ > > --output sart_rec.mha \ > > --verbose \ > > --spacing 2.0\ > > --dimension 128,100,128 \ > > --origin -127.5,-99,-127.5 > > > > but the reconstruction gave a plain image with no object/contrast. I > checked > > the grayscale values on the reconstructed images and did see they ranged > > from -1.78 to 3 (this may not be precise but give you some idea). I > tried to > > adjust window level but couldn't see any contrast. I must miss something > > here. Please advise. Thanks! > > > > -howard > > > > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory > > wrote: > >> > >> Howard, > >> > >> For SART reconstructions, you do not need padding, and you can't do Hann > >> windowing because no ramp filtering is applied. SART usually outputs > >> smoother images, so you probably will not need this denoising trick > anyway. > >> However, you should be careful about one thing : your object has to be > >> fully contained in the reconstructed volume, or you will observe > important > >> border effects. Use the --dimension, --spacing and --origin options to > >> ensure this. > >> > >> All the best, > >> Cyril > >> > >> > >> On 09/18/2014 04:47 PM, Howard wrote: > >> > >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > >> beautifully. Jus another quick question: for rtksart executable, are we > >> still able to do padding and hanning window trick as well? > >> > >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > >> wrote: > >>> > >>> Hi, > >>> I fully agree with Cyril. Something else : you might want to mask out > >>> what is outside the field-of-view using the rtkfieldofview executable. > Your > >>> ring corresponds to that border. See an example here: > >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > >>> Simon > >>> > >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory > >>> wrote: > >>>> > >>>> Hi Howard, > >>>> > >>>> The bright ring artifact is typically caused by high-pass filtering > (the > >>>> ramp filter used in FDK) of truncated projection data (when > projections have > >>>> non-zero values on the sides, the edge of the projection makes a sharp > >>>> transition to zero). A classical answer to this problem is to pad the > >>>> projections, for example with values starting from the values on the > side > >>>> and slowly decreasing to zero. > >>>> > >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your > options > >>>> (or more than 0.1 if it isn't enough). > >>>> Also, I noticed that your reconstructed image seems quite noisy. You > >>>> might want to use a Hann windowing of the ramp filter to reduce the > noise > >>>> amplification effect of high-pass filtering. You can do that by adding > >>>> "--hann 0.5" to your options. Note that the argument is a cut-off > frequency, > >>>> so smaller values mean more smoothing. > >>>> > >>>> Best regards, > >>>> Cyril > >>>> > >>>> > >>>> On 09/18/2014 05:21 AM, Howard wrote: > >>>> > >>>> Hi, > >>>> > >>>> I use rtkfdk to reconstruct varian cbct images following the example > on > >>>> rtk wiki page. The projections were obtained with half fan mode > because it > >>>> is an abdominal region with the patient lateral x AP dimension of > 550x550. > >>>> The reconstructed cbct images have a big bright circle around > >>>> the image. Please see the image: > >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > >>>> > >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands > were > >>>> used: > >>>> > >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > >>>> --regexp Proj_.*.hnd -o varianGeometry > >>>> and > >>>> > >>>> rtkfdk \ > >>>> --geometry varianGeometry \ > >>>> --regexp .*.hnd \ > >>>> --path ../Scan0 \ > >>>> --output rec.mha \ > >>>> --verbose \ > >>>> --spacing 2.0,2.0,2.0 \ > >>>> --dimension 256,100,256 \ > >>>> The projections are stored in the standard varian format: Scan0 and > >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled > >>>> the half fan geometry properly. What did I do wrong then? Many > thanks! > >>>> > >>>> -howard > >>>> > >>>> > >>>> _______________________________________________ > >>>> Rtk-users mailing list > >>>> Rtk-users at public.kitware.com > >>>> http://public.kitware.com/mailman/listinfo/rtk-users > >>>> > >>>> > >>>> -- > >>>> -- > >>>> Cyril Mory, Post-doc > >>>> CREATIS > >>>> Leon Berard cancer treatment center > >>>> 28 rue La?nnec > >>>> 69373 Lyon cedex 08 FRANCE > >>>> > >>>> Mobile: +33 6 69 46 73 79 > >>>> > >>>> > >>>> _______________________________________________ > >>>> Rtk-users mailing list > >>>> Rtk-users at public.kitware.com > >>>> http://public.kitware.com/mailman/listinfo/rtk-users > >>>> > >>> > >> > >> > >> -- > >> -- > >> Cyril Mory, Post-doc > >> CREATIS > >> Leon Berard cancer treatment center > >> 28 rue La?nnec > >> 69373 Lyon cedex 08 FRANCE > >> > >> Mobile: +33 6 69 46 73 79 > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lomahu at gmail.com Thu Sep 18 22:53:45 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 22:53:45 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Simon, It appears I have to apologize again and take back the question about the SART reconstruction. I re-ran on the big data set (644 projections). This time no memory issue and SART worked well. For some reason it did not work on the small set initially. I should have run more tests before posting here. Sorry about the noise and thanks a lot for looking into the "issues". -howard On Thu, Sep 18, 2014 at 5:47 PM, Howard wrote: > Hi Simon, > > I apologize for the confusion about the dataset. Actually I did not use > the same dataset. > The reason is that the set I used for rtkfdk test had 644 projections and > with it rtksart > crashed because of memory (I only allocated 3GB memory to Virtualbox from > my window7). > So for the SART test I changed to a small projection set (366 projections) > where the object is > a cube with dimension of 5cm x 5cm x 5cm. That's why I chose a smaller > reconstruction > size 128*2. With the same dataset when I ran rtkfdk I got very good > reconstruction. > > -howard > > On Thu, Sep 18, 2014 at 4:41 PM, Simon Rit > wrote: > >> Hi Howard, >> Assuming you're using the same dataset as the one you used for the >> rtkfdk test, you have decreased its size. For example, x was 2*256 mm >> with rtkfdk and it is now 128*2. On the slice you sent, we could see >> that a part of the phantom on the right was missing so you should keep >> the same size except for this side that should be larger, certainly >> not reduce the size. >> For the display, I would suggest to use the same window/level as for >> your FDK reconstruction. The two reconstruction algorithms reconstruct >> the same average intensities, only the texture is different. >> Good luck, >> Simon >> >> On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: >> > Hi Cyril, >> > >> > I am testing SART reconstruction according to what you described, >> specifying >> > dimension, spacing and origin: >> > >> > rtksart \ >> > --geometry varianGeometry \ >> > --regexp .*.hnd \ >> > --path ../Scan0 \ >> > --output sart_rec.mha \ >> > --verbose \ >> > --spacing 2.0\ >> > --dimension 128,100,128 \ >> > --origin -127.5,-99,-127.5 >> > >> > but the reconstruction gave a plain image with no object/contrast. I >> checked >> > the grayscale values on the reconstructed images and did see they ranged >> > from -1.78 to 3 (this may not be precise but give you some idea). I >> tried to >> > adjust window level but couldn't see any contrast. I must miss something >> > here. Please advise. Thanks! >> > >> > -howard >> > >> > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory >> > wrote: >> >> >> >> Howard, >> >> >> >> For SART reconstructions, you do not need padding, and you can't do >> Hann >> >> windowing because no ramp filtering is applied. SART usually outputs >> >> smoother images, so you probably will not need this denoising trick >> anyway. >> >> However, you should be careful about one thing : your object has to be >> >> fully contained in the reconstructed volume, or you will observe >> important >> >> border effects. Use the --dimension, --spacing and --origin options to >> >> ensure this. >> >> >> >> All the best, >> >> Cyril >> >> >> >> >> >> On 09/18/2014 04:47 PM, Howard wrote: >> >> >> >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working >> >> beautifully. Jus another quick question: for rtksart executable, are we >> >> still able to do padding and hanning window trick as well? >> >> >> >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit >> >> wrote: >> >>> >> >>> Hi, >> >>> I fully agree with Cyril. Something else : you might want to mask out >> >>> what is outside the field-of-view using the rtkfieldofview >> executable. Your >> >>> ring corresponds to that border. See an example here: >> >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >> >>> Simon >> >>> >> >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory >> >>> wrote: >> >>>> >> >>>> Hi Howard, >> >>>> >> >>>> The bright ring artifact is typically caused by high-pass filtering >> (the >> >>>> ramp filter used in FDK) of truncated projection data (when >> projections have >> >>>> non-zero values on the sides, the edge of the projection makes a >> sharp >> >>>> transition to zero). A classical answer to this problem is to pad the >> >>>> projections, for example with values starting from the values on the >> side >> >>>> and slowly decreasing to zero. >> >>>> >> >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your >> options >> >>>> (or more than 0.1 if it isn't enough). >> >>>> Also, I noticed that your reconstructed image seems quite noisy. You >> >>>> might want to use a Hann windowing of the ramp filter to reduce the >> noise >> >>>> amplification effect of high-pass filtering. You can do that by >> adding >> >>>> "--hann 0.5" to your options. Note that the argument is a cut-off >> frequency, >> >>>> so smaller values mean more smoothing. >> >>>> >> >>>> Best regards, >> >>>> Cyril >> >>>> >> >>>> >> >>>> On 09/18/2014 05:21 AM, Howard wrote: >> >>>> >> >>>> Hi, >> >>>> >> >>>> I use rtkfdk to reconstruct varian cbct images following the example >> on >> >>>> rtk wiki page. The projections were obtained with half fan mode >> because it >> >>>> is an abdominal region with the patient lateral x AP dimension of >> 550x550. >> >>>> The reconstructed cbct images have a big bright circle around >> >>>> the image. Please see the image: >> >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> >>>> >> >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands >> were >> >>>> used: >> >>>> >> >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >> >>>> --regexp Proj_.*.hnd -o varianGeometry >> >>>> and >> >>>> >> >>>> rtkfdk \ >> >>>> --geometry varianGeometry \ >> >>>> --regexp .*.hnd \ >> >>>> --path ../Scan0 \ >> >>>> --output rec.mha \ >> >>>> --verbose \ >> >>>> --spacing 2.0,2.0,2.0 \ >> >>>> --dimension 256,100,256 \ >> >>>> The projections are stored in the standard varian format: Scan0 and >> >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >> handled >> >>>> the half fan geometry properly. What did I do wrong then? Many >> thanks! >> >>>> >> >>>> -howard >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> Rtk-users mailing list >> >>>> Rtk-users at public.kitware.com >> >>>> http://public.kitware.com/mailman/listinfo/rtk-users >> >>>> >> >>>> >> >>>> -- >> >>>> -- >> >>>> Cyril Mory, Post-doc >> >>>> CREATIS >> >>>> Leon Berard cancer treatment center >> >>>> 28 rue La?nnec >> >>>> 69373 Lyon cedex 08 FRANCE >> >>>> >> >>>> Mobile: +33 6 69 46 73 79 >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> Rtk-users mailing list >> >>>> Rtk-users at public.kitware.com >> >>>> http://public.kitware.com/mailman/listinfo/rtk-users >> >>>> >> >>> >> >> >> >> >> >> -- >> >> -- >> >> Cyril Mory, Post-doc >> >> CREATIS >> >> Leon Berard cancer treatment center >> >> 28 rue La?nnec >> >> 69373 Lyon cedex 08 FRANCE >> >> >> >> Mobile: +33 6 69 46 73 79 >> > >> > >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ucabba1 at ucl.ac.uk Fri Sep 19 07:04:49 2014 From: ucabba1 at ucl.ac.uk (Ben Champion) Date: Fri, 19 Sep 2014 12:04:49 +0100 Subject: [Rtk-users] Would you like RTK trainings ? In-Reply-To: <541AA5CA.9050306@creatis.insa-lyon.fr> References: <541AA5CA.9050306@creatis.insa-lyon.fr> Message-ID: <541C0DD1.4070203@ucl.ac.uk> Hi Cyril, Having used RTK (and ITK) for approximately 1 year now, I have learnt mainly by trial and error, and by reading the source code and wiki examples. (Aside: many thanks to the RTK community for these!) Nevertheless, I think I could benefit from some kind of RTK training for my future work. The kinds of topics that would be most interesting to me are: - theory/use of reconstruction methods other than FDK (e.g. SART, 4D ROOSTER, ...) - motion compensated reconstruction - compressed sensing in tomography - extending RTK (and contributing back to the community) That said, I would not be averse to at least some discussion of "basics of tomography", "starting to use RTK with your own data", and "practical issues in circular CBCT" and in fact it could help fill some gaps in my knowledge. Best wishes, Ben -- Doctoral Student (MRes/EngD) Centre for Medical Image Computing University College London Room 3.01 Engineering Front Building Torrington Place LONDON WC1E 7JE On 18/09/14 10:28, Cyril Mory wrote: > Hi RTK users, > > A recent question on the mailing list by Louie triggered a > conversation between us. Louie asked whether there exists some sort of > training or workshop on RTK. In a nutshell, the answer is "No, not > yet, but why not talk about it ?". > > So I'd like to start some sort of "poll" to gather the requests you > might have on this topic: > Do you need / want / would like a training on RTK ? > If so, can you be more specific on what you would like to learn ? > (basics of tomography, how to start using RTK on your data, practical > issues in circular cone beam CT, motion compensated reconstruction, > compressed sensing in tomography, ITK programming, ... this is not an > exhaustive list) > > I think this is enough questions for the time being. The rest will > depend on your answers. > > Looking forward to reading you, > From lomahu at gmail.com Fri Sep 19 09:47:58 2014 From: lomahu at gmail.com (Howard) Date: Fri, 19 Sep 2014 09:47:58 -0400 Subject: [Rtk-users] Would you like RTK trainings ? In-Reply-To: <541C0DD1.4070203@ucl.ac.uk> References: <541AA5CA.9050306@creatis.insa-lyon.fr> <541C0DD1.4070203@ucl.ac.uk> Message-ID: Hi Cyril, It would be extremely helpful to have an RTK training. As Ben listed, I have similar interests. The topics I am very interested in are the following: 1. Basic principles of reconstruction with FDK and SART 2. Coding framework in RTK 3. Practical examples using iterative reconstruction technique 4. Compressed sensing applications in reconstruction 5. Practical issues in reconstruction specially CBCT reconstruction. Thanks! -howard On Fri, Sep 19, 2014 at 7:04 AM, Ben Champion wrote: > Hi Cyril, > > Having used RTK (and ITK) for approximately 1 year now, I have learnt > mainly by trial and error, and by reading the source code and wiki > examples. (Aside: many thanks to the RTK community for these!) > > Nevertheless, I think I could benefit from some kind of RTK training for > my future work. The kinds of topics that would be most interesting to me > are: > > - theory/use of reconstruction methods other than FDK (e.g. SART, 4D > ROOSTER, ...) > - motion compensated reconstruction > - compressed sensing in tomography > - extending RTK (and contributing back to the community) > > That said, I would not be averse to at least some discussion of "basics of > tomography", "starting to use RTK with your own data", and "practical > issues in circular CBCT" and in fact it could help fill some gaps in my > knowledge. > > Best wishes, > > Ben > -- > Doctoral Student (MRes/EngD) > Centre for Medical Image Computing > University College London > Room 3.01 Engineering Front Building > Torrington Place > LONDON > WC1E 7JE > > > > On 18/09/14 10:28, Cyril Mory wrote: > >> Hi RTK users, >> >> A recent question on the mailing list by Louie triggered a conversation >> between us. Louie asked whether there exists some sort of training or >> workshop on RTK. In a nutshell, the answer is "No, not yet, but why not >> talk about it ?". >> >> So I'd like to start some sort of "poll" to gather the requests you might >> have on this topic: >> Do you need / want / would like a training on RTK ? >> If so, can you be more specific on what you would like to learn ? (basics >> of tomography, how to start using RTK on your data, practical issues in >> circular cone beam CT, motion compensated reconstruction, compressed >> sensing in tomography, ITK programming, ... this is not an exhaustive list) >> >> I think this is enough questions for the time being. The rest will depend >> on your answers. >> >> Looking forward to reading you, >> >> > _______________________________________________ > 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: From padraig.looney at gmail.com Mon Sep 8 08:43:27 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Mon, 8 Sep 2014 13:43:27 +0100 Subject: [Rtk-users] RTK helloworld Message-ID: Dear all, I am trying to get the HelloWorld example running but I get a large number of errors after the build. I am using ITK-4.6 and have followed the instructions as per http://wiki.openrtk.org/index.php/RTK_wiki_help#Tutorial_0_-_Building_an_HelloWorld_application_with_RTK My executable is built and is working but I have hundreds of errors. The first few are. CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::MemoryAllocationError::MemoryAllocationError(std::string const&, unsigned int, std::string const&, std::string const&)': main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x35): undefined reference to `itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, std::string const&, std::string const&)' main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x40): undefined reference to `vtable for itk::MemoryAllocationError' CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::Object::SetObjectName(std::string)': main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x25): undefined reference to `itk::Object::GetDebug() const' main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x2e): undefined reference to `itk::Object::GetGlobalWarningDisplay()' main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x12e): undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::DataObject::SetRealTimeStamp(itk::RealTimeStamp)': main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x25): undefined reference to `itk::Object::GetDebug() const' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x2e): undefined reference to `itk::Object::GetGlobalWarningDisplay()' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0xf1): undefined reference to `itk::operator<<(std::ostream&, itk::RealTimeStamp const&)' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x12e): undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x169): undefined reference to `itk::RealTimeStamp::operator!=(itk::RealTimeStamp const&) const' Thanks P?draig -------------- next part -------------- An HTML attachment was scrubbed... URL: From julien.jomier at kitware.com Mon Sep 8 09:11:50 2014 From: julien.jomier at kitware.com (Julien Jomier) Date: Mon, 08 Sep 2014 15:11:50 +0200 Subject: [Rtk-users] RTK helloworld In-Reply-To: References: Message-ID: <540DAB16.3050904@kitware.com> Dear Padraig, When you say "built and is working but I have hundreds of errors" do you mean that you have successfully compiled and linked the example? It seems that your example cannot find the ITK libraries. Are you building ITK and RTK using BUILD_SHARED_LIBS to ON in CMake? Julien On 08/09/2014 14:43, Padraig Looney wrote: > Dear all, > > I am trying to get the HelloWorld example running but I get a large > number of errors after the build. I am using ITK-4.6 and have followed > the instructions as per > > http://wiki.openrtk.org/index.php/RTK_wiki_help#Tutorial_0_-_Building_an_HelloWorld_application_with_RTK > > My executable is built and is working but I have hundreds of errors. The > first few are. > > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::MemoryAllocationError::MemoryAllocationError(std::string const&, > unsigned int, std::string const&, std::string const&)': > main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x35): > undefined reference to > `itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, > std::string const&, std::string const&)' > main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x40): > undefined reference to `vtable for itk::MemoryAllocationError' > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::Object::SetObjectName(std::string)': > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x2e): > undefined reference to `itk::Object::GetGlobalWarningDisplay()' > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x12e): > undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::DataObject::SetRealTimeStamp(itk::RealTimeStamp)': > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x2e): > undefined reference to `itk::Object::GetGlobalWarningDisplay()' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0xf1): > undefined reference to `itk::operator<<(std::ostream&, > itk::RealTimeStamp const&)' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x12e): > undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x169): > undefined reference to > `itk::RealTimeStamp::operator!=(itk::RealTimeStamp const&) const' > > > Thanks > P?draig > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > From julien.jomier at kitware.com Mon Sep 8 09:32:47 2014 From: julien.jomier at kitware.com (Julien Jomier) Date: Mon, 08 Sep 2014 15:32:47 +0200 Subject: [Rtk-users] RTK helloworld In-Reply-To: References: <540DAB16.3050904@kitware.com> Message-ID: <540DAFFF.4080103@kitware.com> I'm guessing the ITK shared libs cannot be found. Can you specify the path where the ITK libraries (.so) are located in the LD_LIBRARY_PATH before your run make? Julien On 08/09/2014 15:23, Padraig Looney wrote: > It has successfully compiled using ccmake and make. I presume that has > successfully linked it. The errors were produced with make. > > Both the SharedLibs variables are set to ON. > > I've tried building RTK two different ways. Once by allowing cmake to > find ITK. This way ITK_DIR is set to /usr/local/lib/cmake/ITK-4.6 > > The other way I built it was by setting ITK_DIR to be the location of > the build directory. Which is what I understand from the wiki > > "When CMake asks for the ITK_DIR, specify the binary directory where ITK > is built and choose CMAKE_BUILD_TYPE (default: Release)" > > It didn't make any difference though. > > On Mon, Sep 8, 2014 at 2:11 PM, Julien Jomier > wrote: > > Dear Padraig, > > When you say "built and is working but I have hundreds of errors" do > you mean that you have successfully compiled and linked the example? > It seems that your example cannot find the ITK libraries. Are you > building ITK and RTK using BUILD_SHARED_LIBS to ON in CMake? > > Julien > > > On 08/09/2014 14:43, Padraig Looney wrote: > > Dear all, > > I am trying to get the HelloWorld example running but I get a large > number of errors after the build. I am using ITK-4.6 and have > followed > the instructions as per > > http://wiki.openrtk.org/index.__php/RTK_wiki_help#Tutorial_0_-___Building_an_HelloWorld___application_with_RTK > > > My executable is built and is working but I have hundreds of > errors. The > first few are. > > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::MemoryAllocationError::__MemoryAllocationError(std::__string > const&, > unsigned int, std::string const&, std::string const&)': > main.cpp:(.text.___ZN3itk21MemoryAllocationErrorC__2ERKSsjS2_S2_[___ZN3itk21MemoryAllocationErrorC__5ERKSsjS2_S2_]+0x35): > undefined reference to > `itk::ExceptionObject::__ExceptionObject(std::string const&, > unsigned int, > std::string const&, std::string const&)' > main.cpp:(.text.___ZN3itk21MemoryAllocationErrorC__2ERKSsjS2_S2_[___ZN3itk21MemoryAllocationErrorC__5ERKSsjS2_S2_]+0x40): > undefined reference to `vtable for itk::MemoryAllocationError' > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::Object::SetObjectName(__std::string)': > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x2e): > undefined reference to `itk::Object::__GetGlobalWarningDisplay()' > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x12e): > undefined reference to > `itk::__OutputWindowDisplayDebugText(__char const*)' > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::DataObject::__SetRealTimeStamp(itk::__RealTimeStamp)': > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x2e): > undefined reference to `itk::Object::__GetGlobalWarningDisplay()' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0xf1): > undefined reference to `itk::operator<<(std::ostream&__, > itk::RealTimeStamp const&)' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x12e): > undefined reference to > `itk::__OutputWindowDisplayDebugText(__char const*)' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x169): > undefined reference to > `itk::RealTimeStamp::operator!__=(itk::RealTimeStamp const&) const' > > > Thanks > P?draig > > > _________________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/__mailman/listinfo/rtk-users > > > From theday79 at gmail.com Mon Sep 8 23:22:32 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Mon, 8 Sep 2014 23:22:32 -0400 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> Message-ID: <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> Hi all, I've been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven't had any problem with full scan images (360 degree scan), I found that rtkfdk doesn't work well with my short scan images obtained from our Elekta XVI system. I've used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn't change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: short_scan.PNG Type: image/png Size: 166828 bytes Desc: not available URL: From simon.rit at creatis.insa-lyon.fr Tue Sep 9 01:24:25 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Tue, 9 Sep 2014 07:24:25 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> Message-ID: Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > _______________________________________________ > 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: From padraig.looney at gmail.com Tue Sep 9 06:05:01 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 9 Sep 2014 11:05:01 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction Message-ID: When I try to run the "FirstReconstruction" example I am getting a segmentation fault. The following is the output from gdb Program received signal SIGSEGV, Segmentation fault. 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue Sep 9 06:32:29 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 09 Sep 2014 12:32:29 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: Message-ID: <540ED73D.3080003@creatis.insa-lyon.fr> Hi Padraig, With so little information, there isn't much we can do to help you. I usually track segfaults by compiling in Debug mode (by setting "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT Creator (any decent IDE will do just fine, and should stop when the segfault occurs, allowing you to trace it back) Good luck, Cyril On 09/09/2014 12:05 PM, Padraig Looney wrote: > When I try to run the "FirstReconstruction" example I am getting a > segmentation fault. > > The following is the output from gdb > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () > > > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Tue Sep 9 08:40:48 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Tue, 9 Sep 2014 14:40:48 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing wrote: > Hi all, > > > > We have experienced the same problem as YangKyun in our institution. Find > attached a screendump of a short scan, and the ElektaGeometry file. We are > reconstructing on CPU using RTK 1.0.0, and have encountered the strange > behavior a couple of times without being able to find any patterns. Our > images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree > scan with the S20 filter on an Elekta XVI machine. > > > > Hope this helps in tracking down the problem. > > > > > > Best regards, > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *P? vegne > af *Simon Rit > *Sendt:* 9. september 2014 07:24 > *Til:* Yang Kyun Park > *Cc:* rtk-users at public.kitware.com > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Hi, > > Everything looks correct in what you did. What version of RTK did you use? > It looks like a bug in the angular weighting of the projections coming > from the discretization of the integral on the gantry angle. Could you send > us a copy of ElektaGeometry.xml and tell us what was the dimension of the > projections? We will look into it. > Thanks for the report, > Simon > > > > On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > > _______________________________________________ > 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: From theday79 at gmail.com Tue Sep 9 11:43:32 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Tue, 9 Sep 2014 11:43:32 -0400 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: <002e01cfcc44$d01763f0$70462bd0$@gmail.com> Hi Simon, Thank your for the prompt update. Now it works perfectly! Best, YangKyun From: simon.rit at gmail.com [mailto:simon.rit at gmail.com] On Behalf Of Simon Rit Sent: Tuesday, September 09, 2014 8:41 AM To: Rune Slot Thing Cc: Yang Kyun Park; rtk-users at public.kitware.com Subject: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: Hi all, We have experienced the same problem as YangKyun in our institution. Find attached a screendump of a short scan, and the ElektaGeometry file. We are reconstructing on CPU using RTK 1.0.0, and have encountered the strange behavior a couple of times without being able to find any patterns. Our images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree scan with the S20 filter on an Elekta XVI machine. Hope this helps in tracking down the problem. Best regards, Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: Rtk-users [mailto:rtk-users-bounces at public.kitware.com ] P? vegne af Simon Rit Sendt: 9. september 2014 07:24 Til: Yang Kyun Park Cc: rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park > wrote: Hi all, I?ve been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven?t had any problem with full scan images (360 degree scan), I found that rtkfdk doesn?t work well with my short scan images obtained from our Elekta XVI system. I?ve used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn?t change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun _______________________________________________ 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: From Rune.Slot.Thing at rsyd.dk Wed Sep 10 04:39:05 2014 From: Rune.Slot.Thing at rsyd.dk (Rune Slot Thing) Date: Wed, 10 Sep 2014 08:39:05 +0000 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> Hi Simon, I asked our IT-guy to recompile the new commit, but unfortunately he was unsuccessful. Here is what he writes: I've downloaded the master from git today and compiled in the VS 2008 pro 64bit on Win7 with itk 4.3.0 and fftw. The new fix does not compile because of issues on line 92-99 in rtkParkerShortScanImageFilter.txx error C2678: binary '==' : no operator found which takes a left-hand operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no acceptable conversion) and on line 73 error C2923: 'itk::Vector' : 'rtk::DaubechiesWaveletsConvolutionImageFilter::Pass' is not a valid template type argument for parameter 'T' f:\programmering\cxx\lib\rtk\master-2014-09-10\code\rtkDaubechiesWaveletsConvolutionImageFilter.h 73 rtkadmmwavelets Is it a typo with to identical lines (LINE 93 = 94)? Thanks again for your prompt help. Best regards, Rune Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: simon.rit at gmail.com [mailto:simon.rit at gmail.com] P? vegne af Simon Rit Sendt: 9. september 2014 14:41 Til: Rune Slot Thing Cc: Yang Kyun Park; rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: Hi all, We have experienced the same problem as YangKyun in our institution. Find attached a screendump of a short scan, and the ElektaGeometry file. We are reconstructing on CPU using RTK 1.0.0, and have encountered the strange behavior a couple of times without being able to find any patterns. Our images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree scan with the S20 filter on an Elekta XVI machine. Hope this helps in tracking down the problem. Best regards, Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: Rtk-users [mailto:rtk-users-bounces at public.kitware.com] P? vegne af Simon Rit Sendt: 9. september 2014 07:24 Til: Yang Kyun Park Cc: rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park > wrote: Hi all, I?ve been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven?t had any problem with full scan images (360 degree scan), I found that rtkfdk doesn?t work well with my short scan images obtained from our Elekta XVI system. I?ve used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn?t change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun _______________________________________________ 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: From wuchao04 at gmail.com Wed Sep 10 07:35:27 2014 From: wuchao04 at gmail.com (Chao Wu) Date: Wed, 10 Sep 2014 13:35:27 +0200 Subject: [Rtk-users] coordinates of 3D volume Message-ID: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 08:38:43 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 14:38:43 +0200 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: Message-ID: Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu wrote: > Hi all, > > I see that rtk use certain industrial standard for the coordinates of 2D > projections and 3D volumes. However in medical imaging, the xy planes of a > volume are usually transaxial slices while the 3rd dimension is aligned > with the axis of rotation. I would like to switch to this coordinates in my > own code. Is there anyone who can give me some comments and suggestions > about where to start? Thanks. > > Regards, > Chao > > _______________________________________________ > 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: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 08:43:54 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 14:43:54 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> Message-ID: I wonder why it compiles on Linux... but anyway, sorry, it's been fixed. On Wed, Sep 10, 2014 at 10:39 AM, Rune Slot Thing wrote: > Hi Simon, > > > > I asked our IT-guy to recompile the new commit, but unfortunately he was > unsuccessful. Here is what he writes: > > > > I've downloaded the master from git today and compiled in the VS 2008 pro > 64bit on Win7 with itk 4.3.0 and fftw. > > > > The new fix does not compile because of issues on line 92-99 in > rtkParkerShortScanImageFilter.txx > > > > error C2678: binary '==' : no operator found which takes a left-hand > operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no > acceptable conversion) > > > > and on line 73 > > > > error C2923: 'itk::Vector' : > 'rtk::DaubechiesWaveletsConvolutionImageFilter::Pass' is not a > valid template type argument for parameter 'T' > f:\programmering\cxx\lib\rtk\master-2014-09-10\code\rtkDaubechiesWaveletsConvolutionImageFilter.h > 73 rtkadmmwavelets > > Is it a typo with to identical lines (LINE 93 = 94)? > > > > Thanks again for your prompt help. > > > > Best regards, > > Rune > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* simon.rit at gmail.com [mailto:simon.rit at gmail.com] *P? vegne af *Simon > Rit > *Sendt:* 9. september 2014 14:41 > *Til:* Rune Slot Thing > *Cc:* Yang Kyun Park; rtk-users at public.kitware.com > > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Thank you Rune, this was very helpful. The pattern is that several > projections have the same gantry angle on one side of the gantry angle gap. > Something that happens with Elekta Synergy... I think that the bug has been > fixed: > > https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f > > > > On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: > > Hi all, > > > > We have experienced the same problem as YangKyun in our institution. Find > attached a screendump of a short scan, and the ElektaGeometry file. We are > reconstructing on CPU using RTK 1.0.0, and have encountered the strange > behavior a couple of times without being able to find any patterns. Our > images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree > scan with the S20 filter on an Elekta XVI machine. > > > > Hope this helps in tracking down the problem. > > > > > > Best regards, > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *P? vegne > af *Simon Rit > *Sendt:* 9. september 2014 07:24 > *Til:* Yang Kyun Park > *Cc:* rtk-users at public.kitware.com > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Hi, > > Everything looks correct in what you did. What version of RTK did you use? > It looks like a bug in the angular weighting of the projections coming > from the discretization of the integral on the gantry angle. Could you send > us a copy of ElektaGeometry.xml and tell us what was the dimension of the > projections? We will look into it. > Thanks for the report, > Simon > > > > On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > > _______________________________________________ > 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: From theday79 at gmail.com Wed Sep 10 09:47:17 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Wed, 10 Sep 2014 09:47:17 -0400 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: Message-ID: <003801cfccfd$bd111800$37334800$@gmail.com> Hi Chao, I had the same issue on my work and I?ve managed to fix it by the following codes. I?m not sure this is the optimal way to do it but at least it worked in my case. (Or you can transform it in 3D Slicer. In transform menu, you need to apply the following matrix: 0 0 -1 0 1 0 0 0 0 1 0 0 0 0 0 1 to the target image, harden the transform then export the image.) Best, YangKyun // OutputImageType = // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction //Same image type from original image -3D & float OutputImageType::IndexType start_trans; start_trans[0] = 0; start_trans[1] = 0; start_trans[2] = 0; OutputImageType::SizeType size_trans; size_trans[0] = sizeOutput[0]; // X //410 size_trans[1] = sizeOutput[2]; //Y // 410 size_trans[2] = sizeOutput[1]; //Z // 120? OutputImageType::SpacingType spacing_trans; spacing_trans[0] = spacing[0]; spacing_trans[1] = spacing[2]; spacing_trans[2] = spacing[1]; OutputImageType::PointType Origin_trans; Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; OutputImageType::RegionType region_trans; region_trans.SetSize(size_trans); region_trans.SetIndex(start_trans); /* 2) Prepare Target image */ OutputImageType::Pointer targetImg = streamerBP->GetOutput(); /* 3) Configure transform */ typedef itk::Euler3DTransform< double > TransformType; TransformType::Pointer transform = TransformType::New(); TransformType::ParametersType param; param.SetSize(6); //MAXIMUM PARAM NUMBER: 6!!! param.put(0, 0.0); //rot X // 0.5 = PI/2 param.put(1, itk::Math::pi/2.0);//rot Y param.put(2, itk::Math::pi/-2.0);//rot Z param.put(3, 0.0); // Trans X mm param.put(4, 0.0); // Trans Y mm param.put(5, 0.0); // Trans Z mm TransformType::ParametersType fixedParam(3); //rotation center fixedParam.put(0,0); fixedParam.put(1,0); fixedParam.put(2,0); transform->SetParameters(param); transform->SetFixedParameters(fixedParam); //Center of the Transform cout << "Transform matrix:" << " " << endl; cout << transform->GetMatrix() << std::endl; typedef itk::ResampleImageFilter ResampleFilterType; ResampleFilterType::Pointer resampler = ResampleFilterType::New(); //OutputImageType::RegionType fixedImg_Region = fixedImg->GetLargestPossibleRegion().GetSize(); resampler->SetInput(targetImg); resampler->SetSize(size_trans); resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large Canvas resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 resampler->SetOutputDirection( targetImg->GetDirection() ); //image normal? resampler->SetTransform(transform); //LR flip cout << "LR flip filter is being applied" << endl; typedef itk::FlipImageFilter< OutputImageType > FilterType; FilterType::Pointer flipFilter = FilterType::New(); typedef FilterType::FlipAxesArrayType FlipAxesArrayType; FlipAxesArrayType arrFlipAxes; arrFlipAxes[0] = 1; arrFlipAxes[1] = 0; arrFlipAxes[2] = 0; flipFilter->SetFlipAxes(arrFlipAxes); flipFilter->SetInput(resampler->GetOutput()); flipFilter->Update(); //Use flipFilter->GetOutput() for further process From: Rtk-users [mailto:rtk-users-bounces at public.kitware.com] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 8:39 AM To: Chao Wu Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu > wrote: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao _______________________________________________ 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: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 10:50:00 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 16:50:00 +0200 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: <003801cfccfd$bd111800$37334800$@gmail.com> References: <003801cfccfd$bd111800$37334800$@gmail.com> Message-ID: This option works but there is a risk of an additional interpolation by the resampler and it costs some computing time. The other option I suggested requires to modify the transform parameter of the source (in this example, add constantImageSource->SetDirection(transform->GetMatrix()); where transform is that of Yang's example, then use itk::ChangeImageInformation to reset the transform to identity. On Wed, Sep 10, 2014 at 3:47 PM, Yang Kyun Park wrote: > Hi Chao, > > > > I had the same issue on my work and I?ve managed to fix it by the > following codes. > > I?m not sure this is the optimal way to do it but at least it worked in my > case. > > > > (Or you can transform it in 3D Slicer. > > In transform menu, you need to apply the following matrix: > > 0 0 -1 0 > > 1 0 0 0 > > 0 1 0 0 > > 0 0 0 1 > > to the target image, harden the transform then export the image.) > > > > Best, > > YangKyun > > > > > > // OutputImageType = > > // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction > > > > //Same image type from original image -3D & float > > OutputImageType::IndexType start_trans; > > start_trans[0] = 0; > > start_trans[1] = 0; > > start_trans[2] = 0; > > > > OutputImageType::SizeType size_trans; > > size_trans[0] = sizeOutput[0]; // X //410 > > size_trans[1] = sizeOutput[2]; //Y // 410 > > size_trans[2] = sizeOutput[1]; //Z // 120? > > > > OutputImageType::SpacingType spacing_trans; > > spacing_trans[0] = spacing[0]; > > spacing_trans[1] = spacing[2]; > > spacing_trans[2] = spacing[1]; > > > > OutputImageType::PointType Origin_trans; > > Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; > > Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; > > Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; > > > > OutputImageType::RegionType region_trans; > > region_trans.SetSize(size_trans); > > region_trans.SetIndex(start_trans); > > > > /* 2) Prepare Target image */ > > OutputImageType::Pointer targetImg = streamerBP->GetOutput(); > > > > /* 3) Configure transform */ > > typedef itk::Euler3DTransform< double > TransformType; > > TransformType::Pointer transform = TransformType::New(); > > > > TransformType::ParametersType param; > > param.SetSize(6); > > //MAXIMUM PARAM NUMBER: 6!!! > > param.put(0, 0.0); //rot X // 0.5 = PI/2 > > param.put(1, itk::Math::pi/2.0);//rot Y > > param.put(2, itk::Math::pi/-2.0);//rot Z > > param.put(3, 0.0); // Trans X mm > > param.put(4, 0.0); // Trans Y mm > > param.put(5, 0.0); // Trans Z mm > > > > TransformType::ParametersType fixedParam(3); //rotation center > > fixedParam.put(0,0); > > fixedParam.put(1,0); > > fixedParam.put(2,0); > > > > transform->SetParameters(param); > > transform->SetFixedParameters(fixedParam); //Center of the > Transform > > > > cout << "Transform matrix:" << " " << endl; > > cout << transform->GetMatrix() << std::endl; > > > > typedef itk::ResampleImageFilter > ResampleFilterType; > > ResampleFilterType::Pointer resampler = ResampleFilterType::New(); > > //OutputImageType::RegionType fixedImg_Region = > fixedImg->GetLargestPossibleRegion().GetSize(); > > > > resampler->SetInput(targetImg); > > resampler->SetSize(size_trans); > > resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large > Canvas > > resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 > > resampler->SetOutputDirection( targetImg->GetDirection() ); //image > normal? > > resampler->SetTransform(transform); > > > > //LR flip > > > > cout << "LR flip filter is being applied" << endl; > > > > typedef itk::FlipImageFilter< OutputImageType > FilterType; > > > > FilterType::Pointer flipFilter = FilterType::New(); > > typedef FilterType::FlipAxesArrayType FlipAxesArrayType; > > > > FlipAxesArrayType arrFlipAxes; > > arrFlipAxes[0] = 1; > > arrFlipAxes[1] = 0; > > arrFlipAxes[2] = 0; > > > > flipFilter->SetFlipAxes(arrFlipAxes); > > flipFilter->SetInput(resampler->GetOutput()); > > flipFilter->Update(); > > > > //Use flipFilter->GetOutput() for further process > > > > > > > > *From:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *On > Behalf Of *Simon Rit > *Sent:* Wednesday, September 10, 2014 8:39 AM > *To:* Chao Wu > *Cc:* rtk-users at openrtk.org > *Subject:* Re: [Rtk-users] coordinates of 3D volume > > > > Hi, > > I wish there was a single industrial standard... You have the DICOM > standard in mind and I used an IEC standard (see wiki). You can play with > the --direction option to orientate the voxel axes of your image (see > itk::Image documentation) and then reset the direction of your output image > to identity, I think that will do what you want. > > Simon > > > > On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu wrote: > > Hi all, > > > > I see that rtk use certain industrial standard for the coordinates of 2D > projections and 3D volumes. However in medical imaging, the xy planes of a > volume are usually transaxial slices while the 3rd dimension is aligned > with the axis of rotation. I would like to switch to this coordinates in my > own code. Is there anyone who can give me some comments and suggestions > about where to start? Thanks. > > > > Regards, > > Chao > > > _______________________________________________ > 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: From theday79 at gmail.com Wed Sep 10 10:56:28 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Wed, 10 Sep 2014 10:56:28 -0400 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: <003801cfccfd$bd111800$37334800$@gmail.com> Message-ID: <005e01cfcd07$6783cdb0$368b6910$@gmail.com> Hi Simon, Thanks for the good tip. Let me try out your approach too! YangKyun From: simon.rit at gmail.com [mailto:simon.rit at gmail.com] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 10:50 AM To: Yang Kyun Park Cc: Chao Wu; rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume This option works but there is a risk of an additional interpolation by the resampler and it costs some computing time. The other option I suggested requires to modify the transform parameter of the source (in this example, add constantImageSource->SetDirection(transform->GetMatrix()); where transform is that of Yang's example, then use itk::ChangeImageInformation to reset the transform to identity. On Wed, Sep 10, 2014 at 3:47 PM, Yang Kyun Park > wrote: Hi Chao, I had the same issue on my work and I?ve managed to fix it by the following codes. I?m not sure this is the optimal way to do it but at least it worked in my case. (Or you can transform it in 3D Slicer. In transform menu, you need to apply the following matrix: 0 0 -1 0 1 0 0 0 0 1 0 0 0 0 0 1 to the target image, harden the transform then export the image.) Best, YangKyun // OutputImageType = // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction //Same image type from original image -3D & float OutputImageType::IndexType start_trans; start_trans[0] = 0; start_trans[1] = 0; start_trans[2] = 0; OutputImageType::SizeType size_trans; size_trans[0] = sizeOutput[0]; // X //410 size_trans[1] = sizeOutput[2]; //Y // 410 size_trans[2] = sizeOutput[1]; //Z // 120? OutputImageType::SpacingType spacing_trans; spacing_trans[0] = spacing[0]; spacing_trans[1] = spacing[2]; spacing_trans[2] = spacing[1]; OutputImageType::PointType Origin_trans; Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; OutputImageType::RegionType region_trans; region_trans.SetSize(size_trans); region_trans.SetIndex(start_trans); /* 2) Prepare Target image */ OutputImageType::Pointer targetImg = streamerBP->GetOutput(); /* 3) Configure transform */ typedef itk::Euler3DTransform< double > TransformType; TransformType::Pointer transform = TransformType::New(); TransformType::ParametersType param; param.SetSize(6); //MAXIMUM PARAM NUMBER: 6!!! param.put(0, 0.0); //rot X // 0.5 = PI/2 param.put(1, itk::Math::pi/2.0);//rot Y param.put(2, itk::Math::pi/-2.0);//rot Z param.put(3, 0.0); // Trans X mm param.put(4, 0.0); // Trans Y mm param.put(5, 0.0); // Trans Z mm TransformType::ParametersType fixedParam(3); //rotation center fixedParam.put(0,0); fixedParam.put(1,0); fixedParam.put(2,0); transform->SetParameters(param); transform->SetFixedParameters(fixedParam); //Center of the Transform cout << "Transform matrix:" << " " << endl; cout << transform->GetMatrix() << std::endl; typedef itk::ResampleImageFilter ResampleFilterType; ResampleFilterType::Pointer resampler = ResampleFilterType::New(); //OutputImageType::RegionType fixedImg_Region = fixedImg->GetLargestPossibleRegion().GetSize(); resampler->SetInput(targetImg); resampler->SetSize(size_trans); resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large Canvas resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 resampler->SetOutputDirection( targetImg->GetDirection() ); //image normal? resampler->SetTransform(transform); //LR flip cout << "LR flip filter is being applied" << endl; typedef itk::FlipImageFilter< OutputImageType > FilterType; FilterType::Pointer flipFilter = FilterType::New(); typedef FilterType::FlipAxesArrayType FlipAxesArrayType; FlipAxesArrayType arrFlipAxes; arrFlipAxes[0] = 1; arrFlipAxes[1] = 0; arrFlipAxes[2] = 0; flipFilter->SetFlipAxes(arrFlipAxes); flipFilter->SetInput(resampler->GetOutput()); flipFilter->Update(); //Use flipFilter->GetOutput() for further process From: Rtk-users [mailto:rtk-users-bounces at public.kitware.com ] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 8:39 AM To: Chao Wu Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu > wrote: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao _______________________________________________ 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: From ghostcz at hotmail.com Mon Sep 15 08:09:46 2014 From: ghostcz at hotmail.com (ghostcz) Date: Mon, 15 Sep 2014 14:09:46 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? Message-ID: Dear Rtk users, How can I select one (or maybe more?) specific GPU to run my reconstruction? It seems if I start a second instance of the reconstruction program, it will run on the same GPU. Best regards, Louie -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Mon Sep 15 08:45:24 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Mon, 15 Sep 2014 14:45:24 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: Message-ID: Hi, Good question, I did not hear anybody working on multiple GPUs so far. It currently uses the first Cuda compatible device. I think you'll have to look up in the Cuda manual to see how to switch to another one but there is nothing available in the RTK lib yet. Don't hesitate to suggest some code changes to add this feature. Simon On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: > Dear Rtk users, > > How can I select one (or maybe more?) specific GPU to run my reconstruction? > It seems if I start a second instance of the reconstruction program, it will > run on the same GPU. > > Best regards, > Louie > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > From padraig.looney at gmail.com Tue Sep 16 10:07:05 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 16 Sep 2014 15:07:05 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: <540ED73D.3080003@creatis.insa-lyon.fr> References: <540ED73D.3080003@creatis.insa-lyon.fr> Message-ID: Thanks Cyril, Following your advice I have tracked the seg fault down to line 36 in FirstReconstruction geometry->AddProjection(sid, sdd, angle, isox, isoy); } I realised that I managed to build the examples with RTK fine and the same example runs without a seg fault in the build directory. On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory wrote: > Hi Padraig, > > With so little information, there isn't much we can do to help you. > I usually track segfaults by compiling in Debug mode (by setting > "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT > Creator (any decent IDE will do just fine, and should stop when the > segfault occurs, allowing you to trace it back) > > Good luck, > Cyril > > > On 09/09/2014 12:05 PM, Padraig Looney wrote: > > When I try to run the "FirstReconstruction" example I am getting a > segmentation fault. > > The following is the output from gdb > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () > > > > > _______________________________________________ > Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users > > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue Sep 16 10:23:07 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 16 Sep 2014 16:23:07 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: <540ED73D.3080003@creatis.insa-lyon.fr> Message-ID: <541847CB.8020807@creatis.insa-lyon.fr> Hi Padraig, Does the segfault happen at the first call of geometry->AddProjection(...) or later ? My guess is that, for some reason, geometry is not initialized. Can you make sure it is by setting a breakpoint just before ? You should also make sure that all variables involved in this call, ie "sid", "sdd", "angle", "isox" and "isoy" have reasonable values before the call. It is probably not a good question, yet I have to ask : did you modify something in the file examples/FirstReconstruction/FirstReconstruction.cxx ? Regards, Cyril On 09/16/2014 04:07 PM, Padraig Looney wrote: > Thanks Cyril, > > Following your advice I have tracked the seg fault down to line 36 in > FirstReconstruction > > geometry->AddProjection(sid, > sdd, > angle, > isox, > isoy); > } > > I realised that I managed to build the examples with RTK fine and the > same example runs without a seg fault in the build directory. > > On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory > > wrote: > > Hi Padraig, > > With so little information, there isn't much we can do to help you. > I usually track segfaults by compiling in Debug mode (by setting > "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug > in QT Creator (any decent IDE will do just fine, and should stop > when the segfault occurs, allowing you to trace it back) > > Good luck, > Cyril > > > On 09/09/2014 12:05 PM, Padraig Looney wrote: >> When I try to run the "FirstReconstruction" example I am getting >> a segmentation fault. >> >> The following is the output from gdb >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () >> >> >> >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://public.kitware.com/mailman/listinfo/rtk-users > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From padraig.looney at gmail.com Tue Sep 16 10:38:05 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 16 Sep 2014 15:38:05 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: <541847CB.8020807@creatis.insa-lyon.fr> References: <540ED73D.3080003@creatis.insa-lyon.fr> <541847CB.8020807@creatis.insa-lyon.fr> Message-ID: It happens with the first call. I set a breakpoint just before and it is not empty. I have tried to attach a screen capture of my space. Yes I thought I may have changed something but I have copied the directory twice from the original download in which it builds correctly. I cloned this with git and there are no changes. On Tue, Sep 16, 2014 at 3:23 PM, Cyril Mory wrote: > Hi Padraig, > > Does the segfault happen at the first call of geometry->AddProjection(...) > or later ? > > My guess is that, for some reason, geometry is not initialized. Can you > make sure it is by setting a breakpoint just before ? > You should also make sure that all variables involved in this call, ie > "sid", "sdd", "angle", "isox" and "isoy" have reasonable values before the > call. > > It is probably not a good question, yet I have to ask : did you modify > something in the file examples/FirstReconstruction/FirstReconstruction.cxx > ? > > Regards, > Cyril > > > On 09/16/2014 04:07 PM, Padraig Looney wrote: > > Thanks Cyril, > > Following your advice I have tracked the seg fault down to line 36 in > FirstReconstruction > > geometry->AddProjection(sid, > sdd, > angle, > isox, > isoy); > } > > I realised that I managed to build the examples with RTK fine and the > same example runs without a seg fault in the build directory. > > On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory < > cyril.mory at creatis.insa-lyon.fr> wrote: > >> Hi Padraig, >> >> With so little information, there isn't much we can do to help you. >> I usually track segfaults by compiling in Debug mode (by setting >> "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT >> Creator (any decent IDE will do just fine, and should stop when the >> segfault occurs, allowing you to trace it back) >> >> Good luck, >> Cyril >> >> >> On 09/09/2014 12:05 PM, Padraig Looney wrote: >> >> When I try to run the "FirstReconstruction" example I am getting a >> segmentation fault. >> >> The following is the output from gdb >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () >> >> >> >> >> _______________________________________________ >> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 >> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: rtkSegFaultFirstRecon.png Type: image/png Size: 273538 bytes Desc: not available URL: From cyril.mory at creatis.insa-lyon.fr Wed Sep 17 05:59:58 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Wed, 17 Sep 2014 11:59:58 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: Message-ID: <54195B9E.10000@creatis.insa-lyon.fr> Hi Louie, We have been investigating your question bit. A first possible solution, which may be sufficient for your needs, could be to set the CUDA_VISIBLE_DEVICES environment variable. You'll find details here : http://www.acceleware.com/blog/cudavisibledevices-masking-gpus Here are two scripts I used to run tests on our two-GPUs server: ######### First script ######### echo "Running two instances of rtkfdk without specifying a GPU" CUDA_VISIBLE_DEVICES="0,1" time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g geom.xml --dimension 512 & time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g geom.xml --dimension 512 & ######### Second script ######### echo "Running two instances of rtkfdk, specifying which GPU to use for each" echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash ######### End ############# On our server, which has two identical GPUs, these two scripts took the same time. It seems that, in the first script, rtkfdk somehow managed to detect that the first GPU was in use and ran on the second one. But I can't guarantee under which conditions this happens, and surely it's safer to use the second script. This is the cheapest solution. If you need more than that, and you are ready to dive into the cuda filters' code as well as into the automatic transfers between CPU and GPU memory, do not hesitate to propose modifications of the RTK code. Regards, Cyril On 09/15/2014 02:45 PM, Simon Rit wrote: > Hi, > Good question, I did not hear anybody working on multiple GPUs so far. > It currently uses the first Cuda compatible device. I think you'll > have to look up in the Cuda manual to see how to switch to another one > but there is nothing available in the RTK lib yet. Don't hesitate to > suggest some code changes to add this feature. > Simon > > On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >> Dear Rtk users, >> >> How can I select one (or maybe more?) specific GPU to run my reconstruction? >> It seems if I start a second instance of the reconstruction program, it will >> run on the same GPU. >> >> Best regards, >> Louie >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://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 > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From ghostcz at hotmail.com Wed Sep 17 11:58:47 2014 From: ghostcz at hotmail.com (ghostcz) Date: Wed, 17 Sep 2014 17:58:47 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: <54195B9E.10000@creatis.insa-lyon.fr> References: <54195B9E.10000@creatis.insa-lyon.fr> Message-ID: Dear Cyril, Thank you for the follow-up. That is indeed a faster way to realize this function. I wrote a launcher instead, where I call cuda_set_device to select the device. No, I don?t think I know CUDA good enough to manage the memory transfer between the devices. Best regards, Louie P.S. is there any training or workshop focusing on rtk application and development available? -----Original Message----- From: Cyril Mory Sent: Wednesday, September 17, 2014 11:59 AM To: Simon Rit ; ghostcz Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] How to run the reconstruction on a specific GPU? Hi Louie, We have been investigating your question bit. A first possible solution, which may be sufficient for your needs, could be to set the CUDA_VISIBLE_DEVICES environment variable. You'll find details here : http://www.acceleware.com/blog/cudavisibledevices-masking-gpus Here are two scripts I used to run tests on our two-GPUs server: ######### First script ######### echo "Running two instances of rtkfdk without specifying a GPU" CUDA_VISIBLE_DEVICES="0,1" time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g geom.xml --dimension 512 & time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g geom.xml --dimension 512 & ######### Second script ######### echo "Running two instances of rtkfdk, specifying which GPU to use for each" echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash ######### End ############# On our server, which has two identical GPUs, these two scripts took the same time. It seems that, in the first script, rtkfdk somehow managed to detect that the first GPU was in use and ran on the second one. But I can't guarantee under which conditions this happens, and surely it's safer to use the second script. This is the cheapest solution. If you need more than that, and you are ready to dive into the cuda filters' code as well as into the automatic transfers between CPU and GPU memory, do not hesitate to propose modifications of the RTK code. Regards, Cyril On 09/15/2014 02:45 PM, Simon Rit wrote: > Hi, > Good question, I did not hear anybody working on multiple GPUs so far. > It currently uses the first Cuda compatible device. I think you'll > have to look up in the Cuda manual to see how to switch to another one > but there is nothing available in the RTK lib yet. Don't hesitate to > suggest some code changes to add this feature. > Simon > > On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >> Dear Rtk users, >> >> How can I select one (or maybe more?) specific GPU to run my >> reconstruction? >> It seems if I start a second instance of the reconstruction program, it >> will >> run on the same GPU. >> >> Best regards, >> Louie >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://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 > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From lomahu at gmail.com Wed Sep 17 23:21:34 2014 From: lomahu at gmail.com (Howard) Date: Wed, 17 Sep 2014 23:21:34 -0400 Subject: [Rtk-users] bright circle on the reconstructed image Message-ID: Hi, I use rtkfdk to reconstruct varian cbct images following the example on rtk wiki page. The projections were obtained with half fan mode because it is an abdominal region with the patient lateral x AP dimension of 550x550. The reconstructed cbct images have a big bright circle around the image. Please see the image: http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html I am using Ubuntu Linux box to reconstruct. Two sequential commands were used: ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ --regexp Proj_.*.hnd -o varianGeometry and rtkfdk \ --geometry varianGeometry \ --regexp .*.hnd \ --path ../Scan0 \ --output rec.mha \ --verbose \ --spacing 2.0,2.0,2.0 \ --dimension 256,100,256 \ The projections are stored in the standard varian format: Scan0 and ProjectionInfo.xml with 644 projection images. I assume that rtkfdk handled the half fan geometry properly. What did I do wrong then? Many thanks! -howard -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 04:12:23 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 10:12:23 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: Message-ID: <541A93E7.7010301@creatis.insa-lyon.fr> Hi Howard, The bright ring artifact is typically caused by high-pass filtering (the ramp filter used in FDK) of truncated projection data (when projections have non-zero values on the sides, the edge of the projection makes a sharp transition to zero). A classical answer to this problem is to pad the projections, for example with values starting from the values on the side and slowly decreasing to zero. rtkfdk can do this padding for you. Just add "--pad 0.1" to your options (or more than 0.1 if it isn't enough). Also, I noticed that your reconstructed image seems quite noisy. You might want to use a Hann windowing of the ramp filter to reduce the noise amplification effect of high-pass filtering. You can do that by adding "--hann 0.5" to your options. Note that the argument is a cut-off frequency, so smaller values mean more smoothing. Best regards, Cyril On 09/18/2014 05:21 AM, Howard wrote: > Hi, > I use rtkfdk to reconstruct varian cbct images following the example > on rtk wiki page. The projections were obtained with half fan mode > because it is an abdominal region with the patient lateral x AP > dimension of 550x550. The reconstructed cbct images have a big > bright circle around > the image. Please see the image: > http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > I am using Ubuntu Linux box to reconstruct. Two sequential commands > were used: > ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > --regexp Proj_.*.hnd -o varianGeometry > and > rtkfdk \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output rec.mha \ > --verbose \ > --spacing 2.0,2.0,2.0 \ > --dimension 256,100,256 \ > The projections are stored in the standard varian format: Scan0 and > ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled the half fan geometry properly. What did I do wrong then? > Many thanks! > -howard > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 04:53:34 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 10:53:34 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: <54195B9E.10000@creatis.insa-lyon.fr> Message-ID: <541A9D8E.5040403@creatis.insa-lyon.fr> Hi Louie, Good that you managed to solve your problem. Your question on training made us think a bit. Here are a few answers: - At the moment, there is only a wiki, the documentation and this mailing list - We're only a handful of developers working on RTK, so it seems too early, and too much logistics, to organize real workshops or training sessions in the near future - That being said, we would like to leave the door open. Surely it is important, if we want more people to use RTK and contribute to it, that new developers can learn easily and efficiently. I'll start a specific thread on the mailing list to gather the possible requests similar to yours - RTK uses ITK to do most of the work, therefore programming in RTK essentially requires knowing ITK and knowing some tomography. ITK training sessions are organized often and in many countries I hope it helps, Cyril On 09/17/2014 05:58 PM, ghostcz wrote: > Dear Cyril, > > Thank you for the follow-up. > That is indeed a faster way to realize this function. I wrote a > launcher instead, where I call cuda_set_device to select the device. > No, I don?t think I know CUDA good enough to manage the memory > transfer between the devices. > > Best regards, > Louie > > P.S. is there any training or workshop focusing on rtk application and > development available? > > > > > -----Original Message----- From: Cyril Mory > Sent: Wednesday, September 17, 2014 11:59 AM > To: Simon Rit ; ghostcz > Cc: rtk-users at openrtk.org > Subject: Re: [Rtk-users] How to run the reconstruction on a specific GPU? > > Hi Louie, > > We have been investigating your question bit. A first possible solution, > which may be sufficient for your needs, could be to set the > CUDA_VISIBLE_DEVICES environment variable. You'll find details here : > http://www.acceleware.com/blog/cudavisibledevices-masking-gpus > > Here are two scripts I used to run tests on our two-GPUs server: > > ######### First script ######### > echo "Running two instances of rtkfdk without specifying a GPU" > CUDA_VISIBLE_DEVICES="0,1" > time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g > geom.xml --dimension 512 & > time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g > geom.xml --dimension 512 & > > ######### Second script ######### > echo "Running two instances of rtkfdk, specifying which GPU to use for > each" > echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o > fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash > echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o > fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash > > ######### End ############# > > On our server, which has two identical GPUs, these two scripts took the > same time. It seems that, in the first script, rtkfdk somehow managed to > detect that the first GPU was in use and ran on the second one. But I > can't guarantee under which conditions this happens, and surely it's > safer to use the second script. > > This is the cheapest solution. If you need more than that, and you are > ready to dive into the cuda filters' code as well as into the automatic > transfers between CPU and GPU memory, do not hesitate to propose > modifications of the RTK code. > > Regards, > Cyril > > On 09/15/2014 02:45 PM, Simon Rit wrote: >> Hi, >> Good question, I did not hear anybody working on multiple GPUs so far. >> It currently uses the first Cuda compatible device. I think you'll >> have to look up in the Cuda manual to see how to switch to another one >> but there is nothing available in the RTK lib yet. Don't hesitate to >> suggest some code changes to add this feature. >> Simon >> >> On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >>> Dear Rtk users, >>> >>> How can I select one (or maybe more?) specific GPU to run my >>> reconstruction? >>> It seems if I start a second instance of the reconstruction program, >>> it will >>> run on the same GPU. >>> >>> Best regards, >>> Louie >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://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 >> > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 05:28:42 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 11:28:42 +0200 Subject: [Rtk-users] Would you like RTK trainings ? Message-ID: <541AA5CA.9050306@creatis.insa-lyon.fr> Hi RTK users, A recent question on the mailing list by Louie triggered a conversation between us. Louie asked whether there exists some sort of training or workshop on RTK. In a nutshell, the answer is "No, not yet, but why not talk about it ?". So I'd like to start some sort of "poll" to gather the requests you might have on this topic: Do you need / want / would like a training on RTK ? If so, can you be more specific on what you would like to learn ? (basics of tomography, how to start using RTK on your data, practical issues in circular cone beam CT, motion compensated reconstruction, compressed sensing in tomography, ITK programming, ... this is not an exhaustive list) I think this is enough questions for the time being. The rest will depend on your answers. Looking forward to reading you, -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 06:08:21 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 12:08:21 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: <540ED73D.3080003@creatis.insa-lyon.fr> <541847CB.8020807@creatis.insa-lyon.fr> Message-ID: <541AAF15.9080707@creatis.insa-lyon.fr> Hi Padraig, It is puzzling, as the code is simple and we have many machines on which it works without problem. So let's explore the weirder options : - In one of your previous emails, you mentioned that "the same example runs without a seg fault in the build directory". What does that mean ? - Can you go into your build directory, run "make test", and post the result of the tests ? - Have you tried installing RTK on another machine ? Regards, Cyril On 09/16/2014 04:38 PM, Padraig Looney wrote: > It happens with the first call. > > I set a breakpoint just before and it is not empty. I have tried to > attach a screen capture of my space. > > Yes I thought I may have changed something but I have copied the > directory twice from the original download in which it builds > correctly. I cloned this with git and there are no changes. > > > On Tue, Sep 16, 2014 at 3:23 PM, Cyril Mory > > wrote: > > Hi Padraig, > > Does the segfault happen at the first call of > geometry->AddProjection(...) or later ? > > My guess is that, for some reason, geometry is not initialized. > Can you make sure it is by setting a breakpoint just before ? > You should also make sure that all variables involved in this > call, ie "sid", "sdd", "angle", "isox" and "isoy" have reasonable > values before the call. > > It is probably not a good question, yet I have to ask : did you > modify something in the file > examples/FirstReconstruction/FirstReconstruction.cxx ? > > Regards, > Cyril > > > On 09/16/2014 04:07 PM, Padraig Looney wrote: >> Thanks Cyril, >> >> Following your advice I have tracked the seg fault down to line >> 36 in FirstReconstruction >> >> geometry->AddProjection(sid, >> sdd, >> angle, >> isox, >> isoy); >> } >> >> I realised that I managed to build the examples with RTK fine and >> the same example runs without a seg fault in the build directory. >> >> On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory >> > > wrote: >> >> Hi Padraig, >> >> With so little information, there isn't much we can do to >> help you. >> I usually track segfaults by compiling in Debug mode (by >> setting "CMAKE_BUILD_TYPE" to "Debug"), then running the >> program in debug in QT Creator (any decent IDE will do just >> fine, and should stop when the segfault occurs, allowing you >> to trace it back) >> >> Good luck, >> Cyril >> >> >> On 09/09/2014 12:05 PM, Padraig Looney wrote: >>> When I try to run the "FirstReconstruction" example I am >>> getting a segmentation fault. >>> >>> The following is the output from gdb >>> >>> Program received signal SIGSEGV, Segmentation fault. >>> 0x00000000004952d7 in typeinfo for >>> rtk::ProjectionGeometry<3u> () >>> >>> >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://public.kitware.com/mailman/listinfo/rtk-users >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile:+33 6 69 46 73 79 >> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Thu Sep 18 09:47:40 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Thu, 18 Sep 2014 15:47:40 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: <541A93E7.7010301@creatis.insa-lyon.fr> References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: Hi, I fully agree with Cyril. Something else : you might want to mask out what is outside the field-of-view using the rtkfieldofview executable. Your ring corresponds to that border. See an example here: http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction Simon On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < cyril.mory at creatis.insa-lyon.fr> wrote: > Hi Howard, > > The bright ring artifact is typically caused by high-pass filtering (the > ramp filter used in FDK) of truncated projection data (when projections > have non-zero values on the sides, the edge of the projection makes a sharp > transition to zero). A classical answer to this problem is to pad the > projections, for example with values starting from the values on the side > and slowly decreasing to zero. > > rtkfdk can do this padding for you. Just add "--pad 0.1" to your options > (or more than 0.1 if it isn't enough). > Also, I noticed that your reconstructed image seems quite noisy. You might > want to use a Hann windowing of the ramp filter to reduce the noise > amplification effect of high-pass filtering. You can do that by adding > "--hann 0.5" to your options. Note that the argument is a cut-off > frequency, so smaller values mean more smoothing. > > Best regards, > Cyril > > > On 09/18/2014 05:21 AM, Howard wrote: > > Hi, > > I use rtkfdk to reconstruct varian cbct images following the example on > rtk wiki page. The projections were obtained with half fan mode because it > is an abdominal region with the patient lateral x AP dimension of 550x550. > The reconstructed cbct images have a big bright circle around > the image. Please see the image: > http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > > I am using Ubuntu Linux box to reconstruct. Two sequential commands were > used: > > ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > --regexp Proj_.*.hnd -o varianGeometry > and > > rtkfdk \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output rec.mha \ > --verbose \ > --spacing 2.0,2.0,2.0 \ > --dimension 256,100,256 \ > The projections are stored in the standard varian format: Scan0 and > ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled the half fan geometry properly. What did I do wrong then? Many > thanks! > > -howard > > > _______________________________________________ > Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users > > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > > _______________________________________________ > 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: From lomahu at gmail.com Thu Sep 18 10:47:17 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 10:47:17 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: Thanks very much, Cyril & Simon. Now the fdk reconstruction is working beautifully. Jus another quick question: for rtksart executable, are we still able to do padding and hanning window trick as well? On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit wrote: > Hi, > I fully agree with Cyril. Something else : you might want to mask out what > is outside the field-of-view using the rtkfieldofview executable. Your ring > corresponds to that border. See an example here: > http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > Simon > > On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < > cyril.mory at creatis.insa-lyon.fr> wrote: > >> Hi Howard, >> >> The bright ring artifact is typically caused by high-pass filtering (the >> ramp filter used in FDK) of truncated projection data (when projections >> have non-zero values on the sides, the edge of the projection makes a sharp >> transition to zero). A classical answer to this problem is to pad the >> projections, for example with values starting from the values on the side >> and slowly decreasing to zero. >> >> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >> (or more than 0.1 if it isn't enough). >> Also, I noticed that your reconstructed image seems quite noisy. You >> might want to use a Hann windowing of the ramp filter to reduce the noise >> amplification effect of high-pass filtering. You can do that by adding >> "--hann 0.5" to your options. Note that the argument is a cut-off >> frequency, so smaller values mean more smoothing. >> >> Best regards, >> Cyril >> >> >> On 09/18/2014 05:21 AM, Howard wrote: >> >> Hi, >> >> I use rtkfdk to reconstruct varian cbct images following the example on >> rtk wiki page. The projections were obtained with half fan mode because it >> is an abdominal region with the patient lateral x AP dimension of 550x550. >> The reconstructed cbct images have a big bright circle around >> the image. Please see the image: >> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> >> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >> used: >> >> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >> --regexp Proj_.*.hnd -o varianGeometry >> and >> >> rtkfdk \ >> --geometry varianGeometry \ >> --regexp .*.hnd \ >> --path ../Scan0 \ >> --output rec.mha \ >> --verbose \ >> --spacing 2.0,2.0,2.0 \ >> --dimension 256,100,256 \ >> The projections are stored in the standard varian format: Scan0 and >> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >> handled the half fan geometry properly. What did I do wrong then? Many >> thanks! >> >> -howard >> >> >> _______________________________________________ >> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 >> >> >> _______________________________________________ >> 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: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 10:59:53 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 16:59:53 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: <541AF369.9090403@creatis.insa-lyon.fr> Howard, For SART reconstructions, you do not need padding, and you can't do Hann windowing because no ramp filtering is applied. SART usually outputs smoother images, so you probably will not need this denoising trick anyway. However, you should be careful about one thing : your object has to be fully contained in the reconstructed volume, or you will observe important border effects. Use the --dimension, --spacing and --origin options to ensure this. All the best, Cyril On 09/18/2014 04:47 PM, Howard wrote: > Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > beautifully. Jus another quick question: for rtksart executable, are > we still able to do padding and hanning window trick as well? > > On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > > wrote: > > Hi, > I fully agree with Cyril. Something else : you might want to mask > out what is outside the field-of-view using the rtkfieldofview > executable. Your ring corresponds to that border. See an example here: > http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > Simon > > On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory > > wrote: > > Hi Howard, > > The bright ring artifact is typically caused by high-pass > filtering (the ramp filter used in FDK) of truncated > projection data (when projections have non-zero values on the > sides, the edge of the projection makes a sharp transition to > zero). A classical answer to this problem is to pad the > projections, for example with values starting from the values > on the side and slowly decreasing to zero. > > rtkfdk can do this padding for you. Just add "--pad 0.1" to > your options (or more than 0.1 if it isn't enough). > Also, I noticed that your reconstructed image seems quite > noisy. You might want to use a Hann windowing of the ramp > filter to reduce the noise amplification effect of high-pass > filtering. You can do that by adding "--hann 0.5" to your > options. Note that the argument is a cut-off frequency, so > smaller values mean more smoothing. > > Best regards, > Cyril > > > On 09/18/2014 05:21 AM, Howard wrote: >> Hi, >> I use rtkfdk to reconstruct varian cbct images following the >> example on rtk wiki page. The projections were obtained with >> half fan mode because it is an abdominal region with the >> patient lateral x AP dimension of 550x550. The reconstructed >> cbct images have a big bright circle around >> the image. Please see the image: >> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> I am using Ubuntu Linux box to reconstruct. Two sequential >> commands were used: >> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path >> Scan0/ --regexp Proj_.*.hnd -o varianGeometry >> and >> rtkfdk \ >> --geometry varianGeometry \ >> --regexp .*.hnd \ >> --path ../Scan0 \ >> --output rec.mha \ >> --verbose \ >> --spacing 2.0,2.0,2.0 \ >> --dimension 256,100,256 \ >> The projections are stored in the standard varian format: >> Scan0 and ProjectionInfo.xml with 644 projection images. I >> assume that rtkfdk handled the half fan geometry properly. >> What did I do wrong then? Many thanks! >> -howard >> >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://public.kitware.com/mailman/listinfo/rtk-users > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From lomahu at gmail.com Thu Sep 18 13:03:52 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 13:03:52 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: <541AF369.9090403@creatis.insa-lyon.fr> References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Cyril, I am testing SART reconstruction according to what you described, specifying dimension, spacing and origin: rtksart \ --geometry varianGeometry \ --regexp .*.hnd \ --path ../Scan0 \ --output sart_rec.mha \ --verbose \ --spacing 2.0\ --dimension 128,100,128 \ --origin -127.5,-99,-127.5 but the reconstruction gave a plain image with no object/contrast. I checked the grayscale values on the reconstructed images and did see they ranged from -1.78 to 3 (this may not be precise but give you some idea). I tried to adjust window level but couldn't see any contrast. I must miss something here. Please advise. Thanks! -howard On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory < cyril.mory at creatis.insa-lyon.fr> wrote: > Howard, > > For SART reconstructions, you do not need padding, and you can't do Hann > windowing because no ramp filtering is applied. SART usually outputs > smoother images, so you probably will not need this denoising trick anyway. > However, you should be careful about one thing : your object has to be > fully contained in the reconstructed volume, or you will observe important > border effects. Use the --dimension, --spacing and --origin options to > ensure this. > > All the best, > Cyril > > > On 09/18/2014 04:47 PM, Howard wrote: > > Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > beautifully. Jus another quick question: for rtksart executable, are we > still able to do padding and hanning window trick as well? > > On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > wrote: > >> Hi, >> I fully agree with Cyril. Something else : you might want to mask out >> what is outside the field-of-view using the rtkfieldofview executable. Your >> ring corresponds to that border. See an example here: >> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >> Simon >> >> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < >> cyril.mory at creatis.insa-lyon.fr> wrote: >> >>> Hi Howard, >>> >>> The bright ring artifact is typically caused by high-pass filtering (the >>> ramp filter used in FDK) of truncated projection data (when projections >>> have non-zero values on the sides, the edge of the projection makes a sharp >>> transition to zero). A classical answer to this problem is to pad the >>> projections, for example with values starting from the values on the side >>> and slowly decreasing to zero. >>> >>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >>> (or more than 0.1 if it isn't enough). >>> Also, I noticed that your reconstructed image seems quite noisy. You >>> might want to use a Hann windowing of the ramp filter to reduce the noise >>> amplification effect of high-pass filtering. You can do that by adding >>> "--hann 0.5" to your options. Note that the argument is a cut-off >>> frequency, so smaller values mean more smoothing. >>> >>> Best regards, >>> Cyril >>> >>> >>> On 09/18/2014 05:21 AM, Howard wrote: >>> >>> Hi, >>> >>> I use rtkfdk to reconstruct varian cbct images following the example on >>> rtk wiki page. The projections were obtained with half fan mode because it >>> is an abdominal region with the patient lateral x AP dimension of 550x550. >>> The reconstructed cbct images have a big bright circle around >>> the image. Please see the image: >>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >>> >>> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >>> used: >>> >>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >>> --regexp Proj_.*.hnd -o varianGeometry >>> and >>> >>> rtkfdk \ >>> --geometry varianGeometry \ >>> --regexp .*.hnd \ >>> --path ../Scan0 \ >>> --output rec.mha \ >>> --verbose \ >>> --spacing 2.0,2.0,2.0 \ >>> --dimension 256,100,256 \ >>> The projections are stored in the standard varian format: Scan0 and >>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >>> handled the half fan geometry properly. What did I do wrong then? Many >>> thanks! >>> >>> -howard >>> >>> >>> _______________________________________________ >>> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >>> -- >>> -- >>> Cyril Mory, Post-doc >>> CREATIS >>> Leon Berard cancer treatment center >>> 28 rue La?nnec >>> 69373 Lyon cedex 08 FRANCE >>> >>> Mobile: +33 6 69 46 73 79 >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Thu Sep 18 16:41:10 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Thu, 18 Sep 2014 22:41:10 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Howard, Assuming you're using the same dataset as the one you used for the rtkfdk test, you have decreased its size. For example, x was 2*256 mm with rtkfdk and it is now 128*2. On the slice you sent, we could see that a part of the phantom on the right was missing so you should keep the same size except for this side that should be larger, certainly not reduce the size. For the display, I would suggest to use the same window/level as for your FDK reconstruction. The two reconstruction algorithms reconstruct the same average intensities, only the texture is different. Good luck, Simon On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: > Hi Cyril, > > I am testing SART reconstruction according to what you described, specifying > dimension, spacing and origin: > > rtksart \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output sart_rec.mha \ > --verbose \ > --spacing 2.0\ > --dimension 128,100,128 \ > --origin -127.5,-99,-127.5 > > but the reconstruction gave a plain image with no object/contrast. I checked > the grayscale values on the reconstructed images and did see they ranged > from -1.78 to 3 (this may not be precise but give you some idea). I tried to > adjust window level but couldn't see any contrast. I must miss something > here. Please advise. Thanks! > > -howard > > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory > wrote: >> >> Howard, >> >> For SART reconstructions, you do not need padding, and you can't do Hann >> windowing because no ramp filtering is applied. SART usually outputs >> smoother images, so you probably will not need this denoising trick anyway. >> However, you should be careful about one thing : your object has to be >> fully contained in the reconstructed volume, or you will observe important >> border effects. Use the --dimension, --spacing and --origin options to >> ensure this. >> >> All the best, >> Cyril >> >> >> On 09/18/2014 04:47 PM, Howard wrote: >> >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working >> beautifully. Jus another quick question: for rtksart executable, are we >> still able to do padding and hanning window trick as well? >> >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit >> wrote: >>> >>> Hi, >>> I fully agree with Cyril. Something else : you might want to mask out >>> what is outside the field-of-view using the rtkfieldofview executable. Your >>> ring corresponds to that border. See an example here: >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >>> Simon >>> >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory >>> wrote: >>>> >>>> Hi Howard, >>>> >>>> The bright ring artifact is typically caused by high-pass filtering (the >>>> ramp filter used in FDK) of truncated projection data (when projections have >>>> non-zero values on the sides, the edge of the projection makes a sharp >>>> transition to zero). A classical answer to this problem is to pad the >>>> projections, for example with values starting from the values on the side >>>> and slowly decreasing to zero. >>>> >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >>>> (or more than 0.1 if it isn't enough). >>>> Also, I noticed that your reconstructed image seems quite noisy. You >>>> might want to use a Hann windowing of the ramp filter to reduce the noise >>>> amplification effect of high-pass filtering. You can do that by adding >>>> "--hann 0.5" to your options. Note that the argument is a cut-off frequency, >>>> so smaller values mean more smoothing. >>>> >>>> Best regards, >>>> Cyril >>>> >>>> >>>> On 09/18/2014 05:21 AM, Howard wrote: >>>> >>>> Hi, >>>> >>>> I use rtkfdk to reconstruct varian cbct images following the example on >>>> rtk wiki page. The projections were obtained with half fan mode because it >>>> is an abdominal region with the patient lateral x AP dimension of 550x550. >>>> The reconstructed cbct images have a big bright circle around >>>> the image. Please see the image: >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >>>> >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >>>> used: >>>> >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >>>> --regexp Proj_.*.hnd -o varianGeometry >>>> and >>>> >>>> rtkfdk \ >>>> --geometry varianGeometry \ >>>> --regexp .*.hnd \ >>>> --path ../Scan0 \ >>>> --output rec.mha \ >>>> --verbose \ >>>> --spacing 2.0,2.0,2.0 \ >>>> --dimension 256,100,256 \ >>>> The projections are stored in the standard varian format: Scan0 and >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk handled >>>> the half fan geometry properly. What did I do wrong then? Many thanks! >>>> >>>> -howard >>>> >>>> >>>> _______________________________________________ >>>> Rtk-users mailing list >>>> Rtk-users at public.kitware.com >>>> http://public.kitware.com/mailman/listinfo/rtk-users >>>> >>>> >>>> -- >>>> -- >>>> Cyril Mory, Post-doc >>>> CREATIS >>>> Leon Berard cancer treatment center >>>> 28 rue La?nnec >>>> 69373 Lyon cedex 08 FRANCE >>>> >>>> Mobile: +33 6 69 46 73 79 >>>> >>>> >>>> _______________________________________________ >>>> Rtk-users mailing list >>>> Rtk-users at public.kitware.com >>>> http://public.kitware.com/mailman/listinfo/rtk-users >>>> >>> >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 > > From lomahu at gmail.com Thu Sep 18 17:47:51 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 17:47:51 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Simon, I apologize for the confusion about the dataset. Actually I did not use the same dataset. The reason is that the set I used for rtkfdk test had 644 projections and with it rtksart crashed because of memory (I only allocated 3GB memory to Virtualbox from my window7). So for the SART test I changed to a small projection set (366 projections) where the object is a cube with dimension of 5cm x 5cm x 5cm. That's why I chose a smaller reconstruction size 128*2. With the same dataset when I ran rtkfdk I got very good reconstruction. -howard On Thu, Sep 18, 2014 at 4:41 PM, Simon Rit wrote: > Hi Howard, > Assuming you're using the same dataset as the one you used for the > rtkfdk test, you have decreased its size. For example, x was 2*256 mm > with rtkfdk and it is now 128*2. On the slice you sent, we could see > that a part of the phantom on the right was missing so you should keep > the same size except for this side that should be larger, certainly > not reduce the size. > For the display, I would suggest to use the same window/level as for > your FDK reconstruction. The two reconstruction algorithms reconstruct > the same average intensities, only the texture is different. > Good luck, > Simon > > On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: > > Hi Cyril, > > > > I am testing SART reconstruction according to what you described, > specifying > > dimension, spacing and origin: > > > > rtksart \ > > --geometry varianGeometry \ > > --regexp .*.hnd \ > > --path ../Scan0 \ > > --output sart_rec.mha \ > > --verbose \ > > --spacing 2.0\ > > --dimension 128,100,128 \ > > --origin -127.5,-99,-127.5 > > > > but the reconstruction gave a plain image with no object/contrast. I > checked > > the grayscale values on the reconstructed images and did see they ranged > > from -1.78 to 3 (this may not be precise but give you some idea). I > tried to > > adjust window level but couldn't see any contrast. I must miss something > > here. Please advise. Thanks! > > > > -howard > > > > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory > > wrote: > >> > >> Howard, > >> > >> For SART reconstructions, you do not need padding, and you can't do Hann > >> windowing because no ramp filtering is applied. SART usually outputs > >> smoother images, so you probably will not need this denoising trick > anyway. > >> However, you should be careful about one thing : your object has to be > >> fully contained in the reconstructed volume, or you will observe > important > >> border effects. Use the --dimension, --spacing and --origin options to > >> ensure this. > >> > >> All the best, > >> Cyril > >> > >> > >> On 09/18/2014 04:47 PM, Howard wrote: > >> > >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > >> beautifully. Jus another quick question: for rtksart executable, are we > >> still able to do padding and hanning window trick as well? > >> > >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > >> wrote: > >>> > >>> Hi, > >>> I fully agree with Cyril. Something else : you might want to mask out > >>> what is outside the field-of-view using the rtkfieldofview executable. > Your > >>> ring corresponds to that border. See an example here: > >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > >>> Simon > >>> > >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory > >>> wrote: > >>>> > >>>> Hi Howard, > >>>> > >>>> The bright ring artifact is typically caused by high-pass filtering > (the > >>>> ramp filter used in FDK) of truncated projection data (when > projections have > >>>> non-zero values on the sides, the edge of the projection makes a sharp > >>>> transition to zero). A classical answer to this problem is to pad the > >>>> projections, for example with values starting from the values on the > side > >>>> and slowly decreasing to zero. > >>>> > >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your > options > >>>> (or more than 0.1 if it isn't enough). > >>>> Also, I noticed that your reconstructed image seems quite noisy. You > >>>> might want to use a Hann windowing of the ramp filter to reduce the > noise > >>>> amplification effect of high-pass filtering. You can do that by adding > >>>> "--hann 0.5" to your options. Note that the argument is a cut-off > frequency, > >>>> so smaller values mean more smoothing. > >>>> > >>>> Best regards, > >>>> Cyril > >>>> > >>>> > >>>> On 09/18/2014 05:21 AM, Howard wrote: > >>>> > >>>> Hi, > >>>> > >>>> I use rtkfdk to reconstruct varian cbct images following the example > on > >>>> rtk wiki page. The projections were obtained with half fan mode > because it > >>>> is an abdominal region with the patient lateral x AP dimension of > 550x550. > >>>> The reconstructed cbct images have a big bright circle around > >>>> the image. Please see the image: > >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > >>>> > >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands > were > >>>> used: > >>>> > >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > >>>> --regexp Proj_.*.hnd -o varianGeometry > >>>> and > >>>> > >>>> rtkfdk \ > >>>> --geometry varianGeometry \ > >>>> --regexp .*.hnd \ > >>>> --path ../Scan0 \ > >>>> --output rec.mha \ > >>>> --verbose \ > >>>> --spacing 2.0,2.0,2.0 \ > >>>> --dimension 256,100,256 \ > >>>> The projections are stored in the standard varian format: Scan0 and > >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled > >>>> the half fan geometry properly. What did I do wrong then? Many > thanks! > >>>> > >>>> -howard > >>>> > >>>> > >>>> _______________________________________________ > >>>> Rtk-users mailing list > >>>> Rtk-users at public.kitware.com > >>>> http://public.kitware.com/mailman/listinfo/rtk-users > >>>> > >>>> > >>>> -- > >>>> -- > >>>> Cyril Mory, Post-doc > >>>> CREATIS > >>>> Leon Berard cancer treatment center > >>>> 28 rue La?nnec > >>>> 69373 Lyon cedex 08 FRANCE > >>>> > >>>> Mobile: +33 6 69 46 73 79 > >>>> > >>>> > >>>> _______________________________________________ > >>>> Rtk-users mailing list > >>>> Rtk-users at public.kitware.com > >>>> http://public.kitware.com/mailman/listinfo/rtk-users > >>>> > >>> > >> > >> > >> -- > >> -- > >> Cyril Mory, Post-doc > >> CREATIS > >> Leon Berard cancer treatment center > >> 28 rue La?nnec > >> 69373 Lyon cedex 08 FRANCE > >> > >> Mobile: +33 6 69 46 73 79 > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lomahu at gmail.com Thu Sep 18 22:53:45 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 22:53:45 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Simon, It appears I have to apologize again and take back the question about the SART reconstruction. I re-ran on the big data set (644 projections). This time no memory issue and SART worked well. For some reason it did not work on the small set initially. I should have run more tests before posting here. Sorry about the noise and thanks a lot for looking into the "issues". -howard On Thu, Sep 18, 2014 at 5:47 PM, Howard wrote: > Hi Simon, > > I apologize for the confusion about the dataset. Actually I did not use > the same dataset. > The reason is that the set I used for rtkfdk test had 644 projections and > with it rtksart > crashed because of memory (I only allocated 3GB memory to Virtualbox from > my window7). > So for the SART test I changed to a small projection set (366 projections) > where the object is > a cube with dimension of 5cm x 5cm x 5cm. That's why I chose a smaller > reconstruction > size 128*2. With the same dataset when I ran rtkfdk I got very good > reconstruction. > > -howard > > On Thu, Sep 18, 2014 at 4:41 PM, Simon Rit > wrote: > >> Hi Howard, >> Assuming you're using the same dataset as the one you used for the >> rtkfdk test, you have decreased its size. For example, x was 2*256 mm >> with rtkfdk and it is now 128*2. On the slice you sent, we could see >> that a part of the phantom on the right was missing so you should keep >> the same size except for this side that should be larger, certainly >> not reduce the size. >> For the display, I would suggest to use the same window/level as for >> your FDK reconstruction. The two reconstruction algorithms reconstruct >> the same average intensities, only the texture is different. >> Good luck, >> Simon >> >> On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: >> > Hi Cyril, >> > >> > I am testing SART reconstruction according to what you described, >> specifying >> > dimension, spacing and origin: >> > >> > rtksart \ >> > --geometry varianGeometry \ >> > --regexp .*.hnd \ >> > --path ../Scan0 \ >> > --output sart_rec.mha \ >> > --verbose \ >> > --spacing 2.0\ >> > --dimension 128,100,128 \ >> > --origin -127.5,-99,-127.5 >> > >> > but the reconstruction gave a plain image with no object/contrast. I >> checked >> > the grayscale values on the reconstructed images and did see they ranged >> > from -1.78 to 3 (this may not be precise but give you some idea). I >> tried to >> > adjust window level but couldn't see any contrast. I must miss something >> > here. Please advise. Thanks! >> > >> > -howard >> > >> > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory >> > wrote: >> >> >> >> Howard, >> >> >> >> For SART reconstructions, you do not need padding, and you can't do >> Hann >> >> windowing because no ramp filtering is applied. SART usually outputs >> >> smoother images, so you probably will not need this denoising trick >> anyway. >> >> However, you should be careful about one thing : your object has to be >> >> fully contained in the reconstructed volume, or you will observe >> important >> >> border effects. Use the --dimension, --spacing and --origin options to >> >> ensure this. >> >> >> >> All the best, >> >> Cyril >> >> >> >> >> >> On 09/18/2014 04:47 PM, Howard wrote: >> >> >> >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working >> >> beautifully. Jus another quick question: for rtksart executable, are we >> >> still able to do padding and hanning window trick as well? >> >> >> >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit >> >> wrote: >> >>> >> >>> Hi, >> >>> I fully agree with Cyril. Something else : you might want to mask out >> >>> what is outside the field-of-view using the rtkfieldofview >> executable. Your >> >>> ring corresponds to that border. See an example here: >> >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >> >>> Simon >> >>> >> >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory >> >>> wrote: >> >>>> >> >>>> Hi Howard, >> >>>> >> >>>> The bright ring artifact is typically caused by high-pass filtering >> (the >> >>>> ramp filter used in FDK) of truncated projection data (when >> projections have >> >>>> non-zero values on the sides, the edge of the projection makes a >> sharp >> >>>> transition to zero). A classical answer to this problem is to pad the >> >>>> projections, for example with values starting from the values on the >> side >> >>>> and slowly decreasing to zero. >> >>>> >> >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your >> options >> >>>> (or more than 0.1 if it isn't enough). >> >>>> Also, I noticed that your reconstructed image seems quite noisy. You >> >>>> might want to use a Hann windowing of the ramp filter to reduce the >> noise >> >>>> amplification effect of high-pass filtering. You can do that by >> adding >> >>>> "--hann 0.5" to your options. Note that the argument is a cut-off >> frequency, >> >>>> so smaller values mean more smoothing. >> >>>> >> >>>> Best regards, >> >>>> Cyril >> >>>> >> >>>> >> >>>> On 09/18/2014 05:21 AM, Howard wrote: >> >>>> >> >>>> Hi, >> >>>> >> >>>> I use rtkfdk to reconstruct varian cbct images following the example >> on >> >>>> rtk wiki page. The projections were obtained with half fan mode >> because it >> >>>> is an abdominal region with the patient lateral x AP dimension of >> 550x550. >> >>>> The reconstructed cbct images have a big bright circle around >> >>>> the image. Please see the image: >> >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> >>>> >> >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands >> were >> >>>> used: >> >>>> >> >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >> >>>> --regexp Proj_.*.hnd -o varianGeometry >> >>>> and >> >>>> >> >>>> rtkfdk \ >> >>>> --geometry varianGeometry \ >> >>>> --regexp .*.hnd \ >> >>>> --path ../Scan0 \ >> >>>> --output rec.mha \ >> >>>> --verbose \ >> >>>> --spacing 2.0,2.0,2.0 \ >> >>>> --dimension 256,100,256 \ >> >>>> The projections are stored in the standard varian format: Scan0 and >> >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >> handled >> >>>> the half fan geometry properly. What did I do wrong then? Many >> thanks! >> >>>> >> >>>> -howard >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> Rtk-users mailing list >> >>>> Rtk-users at public.kitware.com >> >>>> http://public.kitware.com/mailman/listinfo/rtk-users >> >>>> >> >>>> >> >>>> -- >> >>>> -- >> >>>> Cyril Mory, Post-doc >> >>>> CREATIS >> >>>> Leon Berard cancer treatment center >> >>>> 28 rue La?nnec >> >>>> 69373 Lyon cedex 08 FRANCE >> >>>> >> >>>> Mobile: +33 6 69 46 73 79 >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> Rtk-users mailing list >> >>>> Rtk-users at public.kitware.com >> >>>> http://public.kitware.com/mailman/listinfo/rtk-users >> >>>> >> >>> >> >> >> >> >> >> -- >> >> -- >> >> Cyril Mory, Post-doc >> >> CREATIS >> >> Leon Berard cancer treatment center >> >> 28 rue La?nnec >> >> 69373 Lyon cedex 08 FRANCE >> >> >> >> Mobile: +33 6 69 46 73 79 >> > >> > >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ucabba1 at ucl.ac.uk Fri Sep 19 07:04:49 2014 From: ucabba1 at ucl.ac.uk (Ben Champion) Date: Fri, 19 Sep 2014 12:04:49 +0100 Subject: [Rtk-users] Would you like RTK trainings ? In-Reply-To: <541AA5CA.9050306@creatis.insa-lyon.fr> References: <541AA5CA.9050306@creatis.insa-lyon.fr> Message-ID: <541C0DD1.4070203@ucl.ac.uk> Hi Cyril, Having used RTK (and ITK) for approximately 1 year now, I have learnt mainly by trial and error, and by reading the source code and wiki examples. (Aside: many thanks to the RTK community for these!) Nevertheless, I think I could benefit from some kind of RTK training for my future work. The kinds of topics that would be most interesting to me are: - theory/use of reconstruction methods other than FDK (e.g. SART, 4D ROOSTER, ...) - motion compensated reconstruction - compressed sensing in tomography - extending RTK (and contributing back to the community) That said, I would not be averse to at least some discussion of "basics of tomography", "starting to use RTK with your own data", and "practical issues in circular CBCT" and in fact it could help fill some gaps in my knowledge. Best wishes, Ben -- Doctoral Student (MRes/EngD) Centre for Medical Image Computing University College London Room 3.01 Engineering Front Building Torrington Place LONDON WC1E 7JE On 18/09/14 10:28, Cyril Mory wrote: > Hi RTK users, > > A recent question on the mailing list by Louie triggered a > conversation between us. Louie asked whether there exists some sort of > training or workshop on RTK. In a nutshell, the answer is "No, not > yet, but why not talk about it ?". > > So I'd like to start some sort of "poll" to gather the requests you > might have on this topic: > Do you need / want / would like a training on RTK ? > If so, can you be more specific on what you would like to learn ? > (basics of tomography, how to start using RTK on your data, practical > issues in circular cone beam CT, motion compensated reconstruction, > compressed sensing in tomography, ITK programming, ... this is not an > exhaustive list) > > I think this is enough questions for the time being. The rest will > depend on your answers. > > Looking forward to reading you, > From lomahu at gmail.com Fri Sep 19 09:47:58 2014 From: lomahu at gmail.com (Howard) Date: Fri, 19 Sep 2014 09:47:58 -0400 Subject: [Rtk-users] Would you like RTK trainings ? In-Reply-To: <541C0DD1.4070203@ucl.ac.uk> References: <541AA5CA.9050306@creatis.insa-lyon.fr> <541C0DD1.4070203@ucl.ac.uk> Message-ID: Hi Cyril, It would be extremely helpful to have an RTK training. As Ben listed, I have similar interests. The topics I am very interested in are the following: 1. Basic principles of reconstruction with FDK and SART 2. Coding framework in RTK 3. Practical examples using iterative reconstruction technique 4. Compressed sensing applications in reconstruction 5. Practical issues in reconstruction specially CBCT reconstruction. Thanks! -howard On Fri, Sep 19, 2014 at 7:04 AM, Ben Champion wrote: > Hi Cyril, > > Having used RTK (and ITK) for approximately 1 year now, I have learnt > mainly by trial and error, and by reading the source code and wiki > examples. (Aside: many thanks to the RTK community for these!) > > Nevertheless, I think I could benefit from some kind of RTK training for > my future work. The kinds of topics that would be most interesting to me > are: > > - theory/use of reconstruction methods other than FDK (e.g. SART, 4D > ROOSTER, ...) > - motion compensated reconstruction > - compressed sensing in tomography > - extending RTK (and contributing back to the community) > > That said, I would not be averse to at least some discussion of "basics of > tomography", "starting to use RTK with your own data", and "practical > issues in circular CBCT" and in fact it could help fill some gaps in my > knowledge. > > Best wishes, > > Ben > -- > Doctoral Student (MRes/EngD) > Centre for Medical Image Computing > University College London > Room 3.01 Engineering Front Building > Torrington Place > LONDON > WC1E 7JE > > > > On 18/09/14 10:28, Cyril Mory wrote: > >> Hi RTK users, >> >> A recent question on the mailing list by Louie triggered a conversation >> between us. Louie asked whether there exists some sort of training or >> workshop on RTK. In a nutshell, the answer is "No, not yet, but why not >> talk about it ?". >> >> So I'd like to start some sort of "poll" to gather the requests you might >> have on this topic: >> Do you need / want / would like a training on RTK ? >> If so, can you be more specific on what you would like to learn ? (basics >> of tomography, how to start using RTK on your data, practical issues in >> circular cone beam CT, motion compensated reconstruction, compressed >> sensing in tomography, ITK programming, ... this is not an exhaustive list) >> >> I think this is enough questions for the time being. The rest will depend >> on your answers. >> >> Looking forward to reading you, >> >> > _______________________________________________ > 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: From padraig.looney at gmail.com Mon Sep 8 08:43:27 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Mon, 8 Sep 2014 13:43:27 +0100 Subject: [Rtk-users] RTK helloworld Message-ID: Dear all, I am trying to get the HelloWorld example running but I get a large number of errors after the build. I am using ITK-4.6 and have followed the instructions as per http://wiki.openrtk.org/index.php/RTK_wiki_help#Tutorial_0_-_Building_an_HelloWorld_application_with_RTK My executable is built and is working but I have hundreds of errors. The first few are. CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::MemoryAllocationError::MemoryAllocationError(std::string const&, unsigned int, std::string const&, std::string const&)': main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x35): undefined reference to `itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, std::string const&, std::string const&)' main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x40): undefined reference to `vtable for itk::MemoryAllocationError' CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::Object::SetObjectName(std::string)': main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x25): undefined reference to `itk::Object::GetDebug() const' main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x2e): undefined reference to `itk::Object::GetGlobalWarningDisplay()' main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x12e): undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::DataObject::SetRealTimeStamp(itk::RealTimeStamp)': main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x25): undefined reference to `itk::Object::GetDebug() const' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x2e): undefined reference to `itk::Object::GetGlobalWarningDisplay()' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0xf1): undefined reference to `itk::operator<<(std::ostream&, itk::RealTimeStamp const&)' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x12e): undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x169): undefined reference to `itk::RealTimeStamp::operator!=(itk::RealTimeStamp const&) const' Thanks P?draig -------------- next part -------------- An HTML attachment was scrubbed... URL: From julien.jomier at kitware.com Mon Sep 8 09:11:50 2014 From: julien.jomier at kitware.com (Julien Jomier) Date: Mon, 08 Sep 2014 15:11:50 +0200 Subject: [Rtk-users] RTK helloworld In-Reply-To: References: Message-ID: <540DAB16.3050904@kitware.com> Dear Padraig, When you say "built and is working but I have hundreds of errors" do you mean that you have successfully compiled and linked the example? It seems that your example cannot find the ITK libraries. Are you building ITK and RTK using BUILD_SHARED_LIBS to ON in CMake? Julien On 08/09/2014 14:43, Padraig Looney wrote: > Dear all, > > I am trying to get the HelloWorld example running but I get a large > number of errors after the build. I am using ITK-4.6 and have followed > the instructions as per > > http://wiki.openrtk.org/index.php/RTK_wiki_help#Tutorial_0_-_Building_an_HelloWorld_application_with_RTK > > My executable is built and is working but I have hundreds of errors. The > first few are. > > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::MemoryAllocationError::MemoryAllocationError(std::string const&, > unsigned int, std::string const&, std::string const&)': > main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x35): > undefined reference to > `itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, > std::string const&, std::string const&)' > main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x40): > undefined reference to `vtable for itk::MemoryAllocationError' > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::Object::SetObjectName(std::string)': > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x2e): > undefined reference to `itk::Object::GetGlobalWarningDisplay()' > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x12e): > undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::DataObject::SetRealTimeStamp(itk::RealTimeStamp)': > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x2e): > undefined reference to `itk::Object::GetGlobalWarningDisplay()' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0xf1): > undefined reference to `itk::operator<<(std::ostream&, > itk::RealTimeStamp const&)' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x12e): > undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x169): > undefined reference to > `itk::RealTimeStamp::operator!=(itk::RealTimeStamp const&) const' > > > Thanks > P?draig > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > From julien.jomier at kitware.com Mon Sep 8 09:32:47 2014 From: julien.jomier at kitware.com (Julien Jomier) Date: Mon, 08 Sep 2014 15:32:47 +0200 Subject: [Rtk-users] RTK helloworld In-Reply-To: References: <540DAB16.3050904@kitware.com> Message-ID: <540DAFFF.4080103@kitware.com> I'm guessing the ITK shared libs cannot be found. Can you specify the path where the ITK libraries (.so) are located in the LD_LIBRARY_PATH before your run make? Julien On 08/09/2014 15:23, Padraig Looney wrote: > It has successfully compiled using ccmake and make. I presume that has > successfully linked it. The errors were produced with make. > > Both the SharedLibs variables are set to ON. > > I've tried building RTK two different ways. Once by allowing cmake to > find ITK. This way ITK_DIR is set to /usr/local/lib/cmake/ITK-4.6 > > The other way I built it was by setting ITK_DIR to be the location of > the build directory. Which is what I understand from the wiki > > "When CMake asks for the ITK_DIR, specify the binary directory where ITK > is built and choose CMAKE_BUILD_TYPE (default: Release)" > > It didn't make any difference though. > > On Mon, Sep 8, 2014 at 2:11 PM, Julien Jomier > wrote: > > Dear Padraig, > > When you say "built and is working but I have hundreds of errors" do > you mean that you have successfully compiled and linked the example? > It seems that your example cannot find the ITK libraries. Are you > building ITK and RTK using BUILD_SHARED_LIBS to ON in CMake? > > Julien > > > On 08/09/2014 14:43, Padraig Looney wrote: > > Dear all, > > I am trying to get the HelloWorld example running but I get a large > number of errors after the build. I am using ITK-4.6 and have > followed > the instructions as per > > http://wiki.openrtk.org/index.__php/RTK_wiki_help#Tutorial_0_-___Building_an_HelloWorld___application_with_RTK > > > My executable is built and is working but I have hundreds of > errors. The > first few are. > > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::MemoryAllocationError::__MemoryAllocationError(std::__string > const&, > unsigned int, std::string const&, std::string const&)': > main.cpp:(.text.___ZN3itk21MemoryAllocationErrorC__2ERKSsjS2_S2_[___ZN3itk21MemoryAllocationErrorC__5ERKSsjS2_S2_]+0x35): > undefined reference to > `itk::ExceptionObject::__ExceptionObject(std::string const&, > unsigned int, > std::string const&, std::string const&)' > main.cpp:(.text.___ZN3itk21MemoryAllocationErrorC__2ERKSsjS2_S2_[___ZN3itk21MemoryAllocationErrorC__5ERKSsjS2_S2_]+0x40): > undefined reference to `vtable for itk::MemoryAllocationError' > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::Object::SetObjectName(__std::string)': > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x2e): > undefined reference to `itk::Object::__GetGlobalWarningDisplay()' > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x12e): > undefined reference to > `itk::__OutputWindowDisplayDebugText(__char const*)' > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::DataObject::__SetRealTimeStamp(itk::__RealTimeStamp)': > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x2e): > undefined reference to `itk::Object::__GetGlobalWarningDisplay()' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0xf1): > undefined reference to `itk::operator<<(std::ostream&__, > itk::RealTimeStamp const&)' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x12e): > undefined reference to > `itk::__OutputWindowDisplayDebugText(__char const*)' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x169): > undefined reference to > `itk::RealTimeStamp::operator!__=(itk::RealTimeStamp const&) const' > > > Thanks > P?draig > > > _________________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/__mailman/listinfo/rtk-users > > > From theday79 at gmail.com Mon Sep 8 23:22:32 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Mon, 8 Sep 2014 23:22:32 -0400 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> Message-ID: <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> Hi all, I've been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven't had any problem with full scan images (360 degree scan), I found that rtkfdk doesn't work well with my short scan images obtained from our Elekta XVI system. I've used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn't change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: short_scan.PNG Type: image/png Size: 166828 bytes Desc: not available URL: From simon.rit at creatis.insa-lyon.fr Tue Sep 9 01:24:25 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Tue, 9 Sep 2014 07:24:25 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> Message-ID: Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > _______________________________________________ > 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: From padraig.looney at gmail.com Tue Sep 9 06:05:01 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 9 Sep 2014 11:05:01 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction Message-ID: When I try to run the "FirstReconstruction" example I am getting a segmentation fault. The following is the output from gdb Program received signal SIGSEGV, Segmentation fault. 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue Sep 9 06:32:29 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 09 Sep 2014 12:32:29 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: Message-ID: <540ED73D.3080003@creatis.insa-lyon.fr> Hi Padraig, With so little information, there isn't much we can do to help you. I usually track segfaults by compiling in Debug mode (by setting "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT Creator (any decent IDE will do just fine, and should stop when the segfault occurs, allowing you to trace it back) Good luck, Cyril On 09/09/2014 12:05 PM, Padraig Looney wrote: > When I try to run the "FirstReconstruction" example I am getting a > segmentation fault. > > The following is the output from gdb > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () > > > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Tue Sep 9 08:40:48 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Tue, 9 Sep 2014 14:40:48 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing wrote: > Hi all, > > > > We have experienced the same problem as YangKyun in our institution. Find > attached a screendump of a short scan, and the ElektaGeometry file. We are > reconstructing on CPU using RTK 1.0.0, and have encountered the strange > behavior a couple of times without being able to find any patterns. Our > images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree > scan with the S20 filter on an Elekta XVI machine. > > > > Hope this helps in tracking down the problem. > > > > > > Best regards, > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *P? vegne > af *Simon Rit > *Sendt:* 9. september 2014 07:24 > *Til:* Yang Kyun Park > *Cc:* rtk-users at public.kitware.com > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Hi, > > Everything looks correct in what you did. What version of RTK did you use? > It looks like a bug in the angular weighting of the projections coming > from the discretization of the integral on the gantry angle. Could you send > us a copy of ElektaGeometry.xml and tell us what was the dimension of the > projections? We will look into it. > Thanks for the report, > Simon > > > > On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > > _______________________________________________ > 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: From theday79 at gmail.com Tue Sep 9 11:43:32 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Tue, 9 Sep 2014 11:43:32 -0400 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: <002e01cfcc44$d01763f0$70462bd0$@gmail.com> Hi Simon, Thank your for the prompt update. Now it works perfectly! Best, YangKyun From: simon.rit at gmail.com [mailto:simon.rit at gmail.com] On Behalf Of Simon Rit Sent: Tuesday, September 09, 2014 8:41 AM To: Rune Slot Thing Cc: Yang Kyun Park; rtk-users at public.kitware.com Subject: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: Hi all, We have experienced the same problem as YangKyun in our institution. Find attached a screendump of a short scan, and the ElektaGeometry file. We are reconstructing on CPU using RTK 1.0.0, and have encountered the strange behavior a couple of times without being able to find any patterns. Our images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree scan with the S20 filter on an Elekta XVI machine. Hope this helps in tracking down the problem. Best regards, Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: Rtk-users [mailto:rtk-users-bounces at public.kitware.com ] P? vegne af Simon Rit Sendt: 9. september 2014 07:24 Til: Yang Kyun Park Cc: rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park > wrote: Hi all, I?ve been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven?t had any problem with full scan images (360 degree scan), I found that rtkfdk doesn?t work well with my short scan images obtained from our Elekta XVI system. I?ve used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn?t change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun _______________________________________________ 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: From Rune.Slot.Thing at rsyd.dk Wed Sep 10 04:39:05 2014 From: Rune.Slot.Thing at rsyd.dk (Rune Slot Thing) Date: Wed, 10 Sep 2014 08:39:05 +0000 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> Hi Simon, I asked our IT-guy to recompile the new commit, but unfortunately he was unsuccessful. Here is what he writes: I've downloaded the master from git today and compiled in the VS 2008 pro 64bit on Win7 with itk 4.3.0 and fftw. The new fix does not compile because of issues on line 92-99 in rtkParkerShortScanImageFilter.txx error C2678: binary '==' : no operator found which takes a left-hand operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no acceptable conversion) and on line 73 error C2923: 'itk::Vector' : 'rtk::DaubechiesWaveletsConvolutionImageFilter::Pass' is not a valid template type argument for parameter 'T' f:\programmering\cxx\lib\rtk\master-2014-09-10\code\rtkDaubechiesWaveletsConvolutionImageFilter.h 73 rtkadmmwavelets Is it a typo with to identical lines (LINE 93 = 94)? Thanks again for your prompt help. Best regards, Rune Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: simon.rit at gmail.com [mailto:simon.rit at gmail.com] P? vegne af Simon Rit Sendt: 9. september 2014 14:41 Til: Rune Slot Thing Cc: Yang Kyun Park; rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: Hi all, We have experienced the same problem as YangKyun in our institution. Find attached a screendump of a short scan, and the ElektaGeometry file. We are reconstructing on CPU using RTK 1.0.0, and have encountered the strange behavior a couple of times without being able to find any patterns. Our images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree scan with the S20 filter on an Elekta XVI machine. Hope this helps in tracking down the problem. Best regards, Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: Rtk-users [mailto:rtk-users-bounces at public.kitware.com] P? vegne af Simon Rit Sendt: 9. september 2014 07:24 Til: Yang Kyun Park Cc: rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park > wrote: Hi all, I?ve been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven?t had any problem with full scan images (360 degree scan), I found that rtkfdk doesn?t work well with my short scan images obtained from our Elekta XVI system. I?ve used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn?t change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun _______________________________________________ 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: From wuchao04 at gmail.com Wed Sep 10 07:35:27 2014 From: wuchao04 at gmail.com (Chao Wu) Date: Wed, 10 Sep 2014 13:35:27 +0200 Subject: [Rtk-users] coordinates of 3D volume Message-ID: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 08:38:43 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 14:38:43 +0200 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: Message-ID: Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu wrote: > Hi all, > > I see that rtk use certain industrial standard for the coordinates of 2D > projections and 3D volumes. However in medical imaging, the xy planes of a > volume are usually transaxial slices while the 3rd dimension is aligned > with the axis of rotation. I would like to switch to this coordinates in my > own code. Is there anyone who can give me some comments and suggestions > about where to start? Thanks. > > Regards, > Chao > > _______________________________________________ > 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: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 08:43:54 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 14:43:54 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> Message-ID: I wonder why it compiles on Linux... but anyway, sorry, it's been fixed. On Wed, Sep 10, 2014 at 10:39 AM, Rune Slot Thing wrote: > Hi Simon, > > > > I asked our IT-guy to recompile the new commit, but unfortunately he was > unsuccessful. Here is what he writes: > > > > I've downloaded the master from git today and compiled in the VS 2008 pro > 64bit on Win7 with itk 4.3.0 and fftw. > > > > The new fix does not compile because of issues on line 92-99 in > rtkParkerShortScanImageFilter.txx > > > > error C2678: binary '==' : no operator found which takes a left-hand > operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no > acceptable conversion) > > > > and on line 73 > > > > error C2923: 'itk::Vector' : > 'rtk::DaubechiesWaveletsConvolutionImageFilter::Pass' is not a > valid template type argument for parameter 'T' > f:\programmering\cxx\lib\rtk\master-2014-09-10\code\rtkDaubechiesWaveletsConvolutionImageFilter.h > 73 rtkadmmwavelets > > Is it a typo with to identical lines (LINE 93 = 94)? > > > > Thanks again for your prompt help. > > > > Best regards, > > Rune > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* simon.rit at gmail.com [mailto:simon.rit at gmail.com] *P? vegne af *Simon > Rit > *Sendt:* 9. september 2014 14:41 > *Til:* Rune Slot Thing > *Cc:* Yang Kyun Park; rtk-users at public.kitware.com > > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Thank you Rune, this was very helpful. The pattern is that several > projections have the same gantry angle on one side of the gantry angle gap. > Something that happens with Elekta Synergy... I think that the bug has been > fixed: > > https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f > > > > On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: > > Hi all, > > > > We have experienced the same problem as YangKyun in our institution. Find > attached a screendump of a short scan, and the ElektaGeometry file. We are > reconstructing on CPU using RTK 1.0.0, and have encountered the strange > behavior a couple of times without being able to find any patterns. Our > images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree > scan with the S20 filter on an Elekta XVI machine. > > > > Hope this helps in tracking down the problem. > > > > > > Best regards, > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *P? vegne > af *Simon Rit > *Sendt:* 9. september 2014 07:24 > *Til:* Yang Kyun Park > *Cc:* rtk-users at public.kitware.com > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Hi, > > Everything looks correct in what you did. What version of RTK did you use? > It looks like a bug in the angular weighting of the projections coming > from the discretization of the integral on the gantry angle. Could you send > us a copy of ElektaGeometry.xml and tell us what was the dimension of the > projections? We will look into it. > Thanks for the report, > Simon > > > > On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > > _______________________________________________ > 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: From theday79 at gmail.com Wed Sep 10 09:47:17 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Wed, 10 Sep 2014 09:47:17 -0400 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: Message-ID: <003801cfccfd$bd111800$37334800$@gmail.com> Hi Chao, I had the same issue on my work and I?ve managed to fix it by the following codes. I?m not sure this is the optimal way to do it but at least it worked in my case. (Or you can transform it in 3D Slicer. In transform menu, you need to apply the following matrix: 0 0 -1 0 1 0 0 0 0 1 0 0 0 0 0 1 to the target image, harden the transform then export the image.) Best, YangKyun // OutputImageType = // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction //Same image type from original image -3D & float OutputImageType::IndexType start_trans; start_trans[0] = 0; start_trans[1] = 0; start_trans[2] = 0; OutputImageType::SizeType size_trans; size_trans[0] = sizeOutput[0]; // X //410 size_trans[1] = sizeOutput[2]; //Y // 410 size_trans[2] = sizeOutput[1]; //Z // 120? OutputImageType::SpacingType spacing_trans; spacing_trans[0] = spacing[0]; spacing_trans[1] = spacing[2]; spacing_trans[2] = spacing[1]; OutputImageType::PointType Origin_trans; Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; OutputImageType::RegionType region_trans; region_trans.SetSize(size_trans); region_trans.SetIndex(start_trans); /* 2) Prepare Target image */ OutputImageType::Pointer targetImg = streamerBP->GetOutput(); /* 3) Configure transform */ typedef itk::Euler3DTransform< double > TransformType; TransformType::Pointer transform = TransformType::New(); TransformType::ParametersType param; param.SetSize(6); //MAXIMUM PARAM NUMBER: 6!!! param.put(0, 0.0); //rot X // 0.5 = PI/2 param.put(1, itk::Math::pi/2.0);//rot Y param.put(2, itk::Math::pi/-2.0);//rot Z param.put(3, 0.0); // Trans X mm param.put(4, 0.0); // Trans Y mm param.put(5, 0.0); // Trans Z mm TransformType::ParametersType fixedParam(3); //rotation center fixedParam.put(0,0); fixedParam.put(1,0); fixedParam.put(2,0); transform->SetParameters(param); transform->SetFixedParameters(fixedParam); //Center of the Transform cout << "Transform matrix:" << " " << endl; cout << transform->GetMatrix() << std::endl; typedef itk::ResampleImageFilter ResampleFilterType; ResampleFilterType::Pointer resampler = ResampleFilterType::New(); //OutputImageType::RegionType fixedImg_Region = fixedImg->GetLargestPossibleRegion().GetSize(); resampler->SetInput(targetImg); resampler->SetSize(size_trans); resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large Canvas resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 resampler->SetOutputDirection( targetImg->GetDirection() ); //image normal? resampler->SetTransform(transform); //LR flip cout << "LR flip filter is being applied" << endl; typedef itk::FlipImageFilter< OutputImageType > FilterType; FilterType::Pointer flipFilter = FilterType::New(); typedef FilterType::FlipAxesArrayType FlipAxesArrayType; FlipAxesArrayType arrFlipAxes; arrFlipAxes[0] = 1; arrFlipAxes[1] = 0; arrFlipAxes[2] = 0; flipFilter->SetFlipAxes(arrFlipAxes); flipFilter->SetInput(resampler->GetOutput()); flipFilter->Update(); //Use flipFilter->GetOutput() for further process From: Rtk-users [mailto:rtk-users-bounces at public.kitware.com] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 8:39 AM To: Chao Wu Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu > wrote: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao _______________________________________________ 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: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 10:50:00 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 16:50:00 +0200 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: <003801cfccfd$bd111800$37334800$@gmail.com> References: <003801cfccfd$bd111800$37334800$@gmail.com> Message-ID: This option works but there is a risk of an additional interpolation by the resampler and it costs some computing time. The other option I suggested requires to modify the transform parameter of the source (in this example, add constantImageSource->SetDirection(transform->GetMatrix()); where transform is that of Yang's example, then use itk::ChangeImageInformation to reset the transform to identity. On Wed, Sep 10, 2014 at 3:47 PM, Yang Kyun Park wrote: > Hi Chao, > > > > I had the same issue on my work and I?ve managed to fix it by the > following codes. > > I?m not sure this is the optimal way to do it but at least it worked in my > case. > > > > (Or you can transform it in 3D Slicer. > > In transform menu, you need to apply the following matrix: > > 0 0 -1 0 > > 1 0 0 0 > > 0 1 0 0 > > 0 0 0 1 > > to the target image, harden the transform then export the image.) > > > > Best, > > YangKyun > > > > > > // OutputImageType = > > // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction > > > > //Same image type from original image -3D & float > > OutputImageType::IndexType start_trans; > > start_trans[0] = 0; > > start_trans[1] = 0; > > start_trans[2] = 0; > > > > OutputImageType::SizeType size_trans; > > size_trans[0] = sizeOutput[0]; // X //410 > > size_trans[1] = sizeOutput[2]; //Y // 410 > > size_trans[2] = sizeOutput[1]; //Z // 120? > > > > OutputImageType::SpacingType spacing_trans; > > spacing_trans[0] = spacing[0]; > > spacing_trans[1] = spacing[2]; > > spacing_trans[2] = spacing[1]; > > > > OutputImageType::PointType Origin_trans; > > Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; > > Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; > > Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; > > > > OutputImageType::RegionType region_trans; > > region_trans.SetSize(size_trans); > > region_trans.SetIndex(start_trans); > > > > /* 2) Prepare Target image */ > > OutputImageType::Pointer targetImg = streamerBP->GetOutput(); > > > > /* 3) Configure transform */ > > typedef itk::Euler3DTransform< double > TransformType; > > TransformType::Pointer transform = TransformType::New(); > > > > TransformType::ParametersType param; > > param.SetSize(6); > > //MAXIMUM PARAM NUMBER: 6!!! > > param.put(0, 0.0); //rot X // 0.5 = PI/2 > > param.put(1, itk::Math::pi/2.0);//rot Y > > param.put(2, itk::Math::pi/-2.0);//rot Z > > param.put(3, 0.0); // Trans X mm > > param.put(4, 0.0); // Trans Y mm > > param.put(5, 0.0); // Trans Z mm > > > > TransformType::ParametersType fixedParam(3); //rotation center > > fixedParam.put(0,0); > > fixedParam.put(1,0); > > fixedParam.put(2,0); > > > > transform->SetParameters(param); > > transform->SetFixedParameters(fixedParam); //Center of the > Transform > > > > cout << "Transform matrix:" << " " << endl; > > cout << transform->GetMatrix() << std::endl; > > > > typedef itk::ResampleImageFilter > ResampleFilterType; > > ResampleFilterType::Pointer resampler = ResampleFilterType::New(); > > //OutputImageType::RegionType fixedImg_Region = > fixedImg->GetLargestPossibleRegion().GetSize(); > > > > resampler->SetInput(targetImg); > > resampler->SetSize(size_trans); > > resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large > Canvas > > resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 > > resampler->SetOutputDirection( targetImg->GetDirection() ); //image > normal? > > resampler->SetTransform(transform); > > > > //LR flip > > > > cout << "LR flip filter is being applied" << endl; > > > > typedef itk::FlipImageFilter< OutputImageType > FilterType; > > > > FilterType::Pointer flipFilter = FilterType::New(); > > typedef FilterType::FlipAxesArrayType FlipAxesArrayType; > > > > FlipAxesArrayType arrFlipAxes; > > arrFlipAxes[0] = 1; > > arrFlipAxes[1] = 0; > > arrFlipAxes[2] = 0; > > > > flipFilter->SetFlipAxes(arrFlipAxes); > > flipFilter->SetInput(resampler->GetOutput()); > > flipFilter->Update(); > > > > //Use flipFilter->GetOutput() for further process > > > > > > > > *From:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *On > Behalf Of *Simon Rit > *Sent:* Wednesday, September 10, 2014 8:39 AM > *To:* Chao Wu > *Cc:* rtk-users at openrtk.org > *Subject:* Re: [Rtk-users] coordinates of 3D volume > > > > Hi, > > I wish there was a single industrial standard... You have the DICOM > standard in mind and I used an IEC standard (see wiki). You can play with > the --direction option to orientate the voxel axes of your image (see > itk::Image documentation) and then reset the direction of your output image > to identity, I think that will do what you want. > > Simon > > > > On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu wrote: > > Hi all, > > > > I see that rtk use certain industrial standard for the coordinates of 2D > projections and 3D volumes. However in medical imaging, the xy planes of a > volume are usually transaxial slices while the 3rd dimension is aligned > with the axis of rotation. I would like to switch to this coordinates in my > own code. Is there anyone who can give me some comments and suggestions > about where to start? Thanks. > > > > Regards, > > Chao > > > _______________________________________________ > 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: From theday79 at gmail.com Wed Sep 10 10:56:28 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Wed, 10 Sep 2014 10:56:28 -0400 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: <003801cfccfd$bd111800$37334800$@gmail.com> Message-ID: <005e01cfcd07$6783cdb0$368b6910$@gmail.com> Hi Simon, Thanks for the good tip. Let me try out your approach too! YangKyun From: simon.rit at gmail.com [mailto:simon.rit at gmail.com] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 10:50 AM To: Yang Kyun Park Cc: Chao Wu; rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume This option works but there is a risk of an additional interpolation by the resampler and it costs some computing time. The other option I suggested requires to modify the transform parameter of the source (in this example, add constantImageSource->SetDirection(transform->GetMatrix()); where transform is that of Yang's example, then use itk::ChangeImageInformation to reset the transform to identity. On Wed, Sep 10, 2014 at 3:47 PM, Yang Kyun Park > wrote: Hi Chao, I had the same issue on my work and I?ve managed to fix it by the following codes. I?m not sure this is the optimal way to do it but at least it worked in my case. (Or you can transform it in 3D Slicer. In transform menu, you need to apply the following matrix: 0 0 -1 0 1 0 0 0 0 1 0 0 0 0 0 1 to the target image, harden the transform then export the image.) Best, YangKyun // OutputImageType = // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction //Same image type from original image -3D & float OutputImageType::IndexType start_trans; start_trans[0] = 0; start_trans[1] = 0; start_trans[2] = 0; OutputImageType::SizeType size_trans; size_trans[0] = sizeOutput[0]; // X //410 size_trans[1] = sizeOutput[2]; //Y // 410 size_trans[2] = sizeOutput[1]; //Z // 120? OutputImageType::SpacingType spacing_trans; spacing_trans[0] = spacing[0]; spacing_trans[1] = spacing[2]; spacing_trans[2] = spacing[1]; OutputImageType::PointType Origin_trans; Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; OutputImageType::RegionType region_trans; region_trans.SetSize(size_trans); region_trans.SetIndex(start_trans); /* 2) Prepare Target image */ OutputImageType::Pointer targetImg = streamerBP->GetOutput(); /* 3) Configure transform */ typedef itk::Euler3DTransform< double > TransformType; TransformType::Pointer transform = TransformType::New(); TransformType::ParametersType param; param.SetSize(6); //MAXIMUM PARAM NUMBER: 6!!! param.put(0, 0.0); //rot X // 0.5 = PI/2 param.put(1, itk::Math::pi/2.0);//rot Y param.put(2, itk::Math::pi/-2.0);//rot Z param.put(3, 0.0); // Trans X mm param.put(4, 0.0); // Trans Y mm param.put(5, 0.0); // Trans Z mm TransformType::ParametersType fixedParam(3); //rotation center fixedParam.put(0,0); fixedParam.put(1,0); fixedParam.put(2,0); transform->SetParameters(param); transform->SetFixedParameters(fixedParam); //Center of the Transform cout << "Transform matrix:" << " " << endl; cout << transform->GetMatrix() << std::endl; typedef itk::ResampleImageFilter ResampleFilterType; ResampleFilterType::Pointer resampler = ResampleFilterType::New(); //OutputImageType::RegionType fixedImg_Region = fixedImg->GetLargestPossibleRegion().GetSize(); resampler->SetInput(targetImg); resampler->SetSize(size_trans); resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large Canvas resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 resampler->SetOutputDirection( targetImg->GetDirection() ); //image normal? resampler->SetTransform(transform); //LR flip cout << "LR flip filter is being applied" << endl; typedef itk::FlipImageFilter< OutputImageType > FilterType; FilterType::Pointer flipFilter = FilterType::New(); typedef FilterType::FlipAxesArrayType FlipAxesArrayType; FlipAxesArrayType arrFlipAxes; arrFlipAxes[0] = 1; arrFlipAxes[1] = 0; arrFlipAxes[2] = 0; flipFilter->SetFlipAxes(arrFlipAxes); flipFilter->SetInput(resampler->GetOutput()); flipFilter->Update(); //Use flipFilter->GetOutput() for further process From: Rtk-users [mailto:rtk-users-bounces at public.kitware.com ] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 8:39 AM To: Chao Wu Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu > wrote: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao _______________________________________________ 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: From ghostcz at hotmail.com Mon Sep 15 08:09:46 2014 From: ghostcz at hotmail.com (ghostcz) Date: Mon, 15 Sep 2014 14:09:46 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? Message-ID: Dear Rtk users, How can I select one (or maybe more?) specific GPU to run my reconstruction? It seems if I start a second instance of the reconstruction program, it will run on the same GPU. Best regards, Louie -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Mon Sep 15 08:45:24 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Mon, 15 Sep 2014 14:45:24 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: Message-ID: Hi, Good question, I did not hear anybody working on multiple GPUs so far. It currently uses the first Cuda compatible device. I think you'll have to look up in the Cuda manual to see how to switch to another one but there is nothing available in the RTK lib yet. Don't hesitate to suggest some code changes to add this feature. Simon On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: > Dear Rtk users, > > How can I select one (or maybe more?) specific GPU to run my reconstruction? > It seems if I start a second instance of the reconstruction program, it will > run on the same GPU. > > Best regards, > Louie > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > From padraig.looney at gmail.com Tue Sep 16 10:07:05 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 16 Sep 2014 15:07:05 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: <540ED73D.3080003@creatis.insa-lyon.fr> References: <540ED73D.3080003@creatis.insa-lyon.fr> Message-ID: Thanks Cyril, Following your advice I have tracked the seg fault down to line 36 in FirstReconstruction geometry->AddProjection(sid, sdd, angle, isox, isoy); } I realised that I managed to build the examples with RTK fine and the same example runs without a seg fault in the build directory. On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory wrote: > Hi Padraig, > > With so little information, there isn't much we can do to help you. > I usually track segfaults by compiling in Debug mode (by setting > "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT > Creator (any decent IDE will do just fine, and should stop when the > segfault occurs, allowing you to trace it back) > > Good luck, > Cyril > > > On 09/09/2014 12:05 PM, Padraig Looney wrote: > > When I try to run the "FirstReconstruction" example I am getting a > segmentation fault. > > The following is the output from gdb > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () > > > > > _______________________________________________ > Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users > > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue Sep 16 10:23:07 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 16 Sep 2014 16:23:07 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: <540ED73D.3080003@creatis.insa-lyon.fr> Message-ID: <541847CB.8020807@creatis.insa-lyon.fr> Hi Padraig, Does the segfault happen at the first call of geometry->AddProjection(...) or later ? My guess is that, for some reason, geometry is not initialized. Can you make sure it is by setting a breakpoint just before ? You should also make sure that all variables involved in this call, ie "sid", "sdd", "angle", "isox" and "isoy" have reasonable values before the call. It is probably not a good question, yet I have to ask : did you modify something in the file examples/FirstReconstruction/FirstReconstruction.cxx ? Regards, Cyril On 09/16/2014 04:07 PM, Padraig Looney wrote: > Thanks Cyril, > > Following your advice I have tracked the seg fault down to line 36 in > FirstReconstruction > > geometry->AddProjection(sid, > sdd, > angle, > isox, > isoy); > } > > I realised that I managed to build the examples with RTK fine and the > same example runs without a seg fault in the build directory. > > On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory > > wrote: > > Hi Padraig, > > With so little information, there isn't much we can do to help you. > I usually track segfaults by compiling in Debug mode (by setting > "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug > in QT Creator (any decent IDE will do just fine, and should stop > when the segfault occurs, allowing you to trace it back) > > Good luck, > Cyril > > > On 09/09/2014 12:05 PM, Padraig Looney wrote: >> When I try to run the "FirstReconstruction" example I am getting >> a segmentation fault. >> >> The following is the output from gdb >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () >> >> >> >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://public.kitware.com/mailman/listinfo/rtk-users > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From padraig.looney at gmail.com Tue Sep 16 10:38:05 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 16 Sep 2014 15:38:05 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: <541847CB.8020807@creatis.insa-lyon.fr> References: <540ED73D.3080003@creatis.insa-lyon.fr> <541847CB.8020807@creatis.insa-lyon.fr> Message-ID: It happens with the first call. I set a breakpoint just before and it is not empty. I have tried to attach a screen capture of my space. Yes I thought I may have changed something but I have copied the directory twice from the original download in which it builds correctly. I cloned this with git and there are no changes. On Tue, Sep 16, 2014 at 3:23 PM, Cyril Mory wrote: > Hi Padraig, > > Does the segfault happen at the first call of geometry->AddProjection(...) > or later ? > > My guess is that, for some reason, geometry is not initialized. Can you > make sure it is by setting a breakpoint just before ? > You should also make sure that all variables involved in this call, ie > "sid", "sdd", "angle", "isox" and "isoy" have reasonable values before the > call. > > It is probably not a good question, yet I have to ask : did you modify > something in the file examples/FirstReconstruction/FirstReconstruction.cxx > ? > > Regards, > Cyril > > > On 09/16/2014 04:07 PM, Padraig Looney wrote: > > Thanks Cyril, > > Following your advice I have tracked the seg fault down to line 36 in > FirstReconstruction > > geometry->AddProjection(sid, > sdd, > angle, > isox, > isoy); > } > > I realised that I managed to build the examples with RTK fine and the > same example runs without a seg fault in the build directory. > > On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory < > cyril.mory at creatis.insa-lyon.fr> wrote: > >> Hi Padraig, >> >> With so little information, there isn't much we can do to help you. >> I usually track segfaults by compiling in Debug mode (by setting >> "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT >> Creator (any decent IDE will do just fine, and should stop when the >> segfault occurs, allowing you to trace it back) >> >> Good luck, >> Cyril >> >> >> On 09/09/2014 12:05 PM, Padraig Looney wrote: >> >> When I try to run the "FirstReconstruction" example I am getting a >> segmentation fault. >> >> The following is the output from gdb >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () >> >> >> >> >> _______________________________________________ >> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 >> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: rtkSegFaultFirstRecon.png Type: image/png Size: 273538 bytes Desc: not available URL: From cyril.mory at creatis.insa-lyon.fr Wed Sep 17 05:59:58 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Wed, 17 Sep 2014 11:59:58 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: Message-ID: <54195B9E.10000@creatis.insa-lyon.fr> Hi Louie, We have been investigating your question bit. A first possible solution, which may be sufficient for your needs, could be to set the CUDA_VISIBLE_DEVICES environment variable. You'll find details here : http://www.acceleware.com/blog/cudavisibledevices-masking-gpus Here are two scripts I used to run tests on our two-GPUs server: ######### First script ######### echo "Running two instances of rtkfdk without specifying a GPU" CUDA_VISIBLE_DEVICES="0,1" time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g geom.xml --dimension 512 & time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g geom.xml --dimension 512 & ######### Second script ######### echo "Running two instances of rtkfdk, specifying which GPU to use for each" echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash ######### End ############# On our server, which has two identical GPUs, these two scripts took the same time. It seems that, in the first script, rtkfdk somehow managed to detect that the first GPU was in use and ran on the second one. But I can't guarantee under which conditions this happens, and surely it's safer to use the second script. This is the cheapest solution. If you need more than that, and you are ready to dive into the cuda filters' code as well as into the automatic transfers between CPU and GPU memory, do not hesitate to propose modifications of the RTK code. Regards, Cyril On 09/15/2014 02:45 PM, Simon Rit wrote: > Hi, > Good question, I did not hear anybody working on multiple GPUs so far. > It currently uses the first Cuda compatible device. I think you'll > have to look up in the Cuda manual to see how to switch to another one > but there is nothing available in the RTK lib yet. Don't hesitate to > suggest some code changes to add this feature. > Simon > > On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >> Dear Rtk users, >> >> How can I select one (or maybe more?) specific GPU to run my reconstruction? >> It seems if I start a second instance of the reconstruction program, it will >> run on the same GPU. >> >> Best regards, >> Louie >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://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 > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From ghostcz at hotmail.com Wed Sep 17 11:58:47 2014 From: ghostcz at hotmail.com (ghostcz) Date: Wed, 17 Sep 2014 17:58:47 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: <54195B9E.10000@creatis.insa-lyon.fr> References: <54195B9E.10000@creatis.insa-lyon.fr> Message-ID: Dear Cyril, Thank you for the follow-up. That is indeed a faster way to realize this function. I wrote a launcher instead, where I call cuda_set_device to select the device. No, I don?t think I know CUDA good enough to manage the memory transfer between the devices. Best regards, Louie P.S. is there any training or workshop focusing on rtk application and development available? -----Original Message----- From: Cyril Mory Sent: Wednesday, September 17, 2014 11:59 AM To: Simon Rit ; ghostcz Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] How to run the reconstruction on a specific GPU? Hi Louie, We have been investigating your question bit. A first possible solution, which may be sufficient for your needs, could be to set the CUDA_VISIBLE_DEVICES environment variable. You'll find details here : http://www.acceleware.com/blog/cudavisibledevices-masking-gpus Here are two scripts I used to run tests on our two-GPUs server: ######### First script ######### echo "Running two instances of rtkfdk without specifying a GPU" CUDA_VISIBLE_DEVICES="0,1" time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g geom.xml --dimension 512 & time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g geom.xml --dimension 512 & ######### Second script ######### echo "Running two instances of rtkfdk, specifying which GPU to use for each" echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash ######### End ############# On our server, which has two identical GPUs, these two scripts took the same time. It seems that, in the first script, rtkfdk somehow managed to detect that the first GPU was in use and ran on the second one. But I can't guarantee under which conditions this happens, and surely it's safer to use the second script. This is the cheapest solution. If you need more than that, and you are ready to dive into the cuda filters' code as well as into the automatic transfers between CPU and GPU memory, do not hesitate to propose modifications of the RTK code. Regards, Cyril On 09/15/2014 02:45 PM, Simon Rit wrote: > Hi, > Good question, I did not hear anybody working on multiple GPUs so far. > It currently uses the first Cuda compatible device. I think you'll > have to look up in the Cuda manual to see how to switch to another one > but there is nothing available in the RTK lib yet. Don't hesitate to > suggest some code changes to add this feature. > Simon > > On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >> Dear Rtk users, >> >> How can I select one (or maybe more?) specific GPU to run my >> reconstruction? >> It seems if I start a second instance of the reconstruction program, it >> will >> run on the same GPU. >> >> Best regards, >> Louie >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://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 > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From lomahu at gmail.com Wed Sep 17 23:21:34 2014 From: lomahu at gmail.com (Howard) Date: Wed, 17 Sep 2014 23:21:34 -0400 Subject: [Rtk-users] bright circle on the reconstructed image Message-ID: Hi, I use rtkfdk to reconstruct varian cbct images following the example on rtk wiki page. The projections were obtained with half fan mode because it is an abdominal region with the patient lateral x AP dimension of 550x550. The reconstructed cbct images have a big bright circle around the image. Please see the image: http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html I am using Ubuntu Linux box to reconstruct. Two sequential commands were used: ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ --regexp Proj_.*.hnd -o varianGeometry and rtkfdk \ --geometry varianGeometry \ --regexp .*.hnd \ --path ../Scan0 \ --output rec.mha \ --verbose \ --spacing 2.0,2.0,2.0 \ --dimension 256,100,256 \ The projections are stored in the standard varian format: Scan0 and ProjectionInfo.xml with 644 projection images. I assume that rtkfdk handled the half fan geometry properly. What did I do wrong then? Many thanks! -howard -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 04:12:23 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 10:12:23 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: Message-ID: <541A93E7.7010301@creatis.insa-lyon.fr> Hi Howard, The bright ring artifact is typically caused by high-pass filtering (the ramp filter used in FDK) of truncated projection data (when projections have non-zero values on the sides, the edge of the projection makes a sharp transition to zero). A classical answer to this problem is to pad the projections, for example with values starting from the values on the side and slowly decreasing to zero. rtkfdk can do this padding for you. Just add "--pad 0.1" to your options (or more than 0.1 if it isn't enough). Also, I noticed that your reconstructed image seems quite noisy. You might want to use a Hann windowing of the ramp filter to reduce the noise amplification effect of high-pass filtering. You can do that by adding "--hann 0.5" to your options. Note that the argument is a cut-off frequency, so smaller values mean more smoothing. Best regards, Cyril On 09/18/2014 05:21 AM, Howard wrote: > Hi, > I use rtkfdk to reconstruct varian cbct images following the example > on rtk wiki page. The projections were obtained with half fan mode > because it is an abdominal region with the patient lateral x AP > dimension of 550x550. The reconstructed cbct images have a big > bright circle around > the image. Please see the image: > http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > I am using Ubuntu Linux box to reconstruct. Two sequential commands > were used: > ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > --regexp Proj_.*.hnd -o varianGeometry > and > rtkfdk \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output rec.mha \ > --verbose \ > --spacing 2.0,2.0,2.0 \ > --dimension 256,100,256 \ > The projections are stored in the standard varian format: Scan0 and > ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled the half fan geometry properly. What did I do wrong then? > Many thanks! > -howard > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 04:53:34 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 10:53:34 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: <54195B9E.10000@creatis.insa-lyon.fr> Message-ID: <541A9D8E.5040403@creatis.insa-lyon.fr> Hi Louie, Good that you managed to solve your problem. Your question on training made us think a bit. Here are a few answers: - At the moment, there is only a wiki, the documentation and this mailing list - We're only a handful of developers working on RTK, so it seems too early, and too much logistics, to organize real workshops or training sessions in the near future - That being said, we would like to leave the door open. Surely it is important, if we want more people to use RTK and contribute to it, that new developers can learn easily and efficiently. I'll start a specific thread on the mailing list to gather the possible requests similar to yours - RTK uses ITK to do most of the work, therefore programming in RTK essentially requires knowing ITK and knowing some tomography. ITK training sessions are organized often and in many countries I hope it helps, Cyril On 09/17/2014 05:58 PM, ghostcz wrote: > Dear Cyril, > > Thank you for the follow-up. > That is indeed a faster way to realize this function. I wrote a > launcher instead, where I call cuda_set_device to select the device. > No, I don?t think I know CUDA good enough to manage the memory > transfer between the devices. > > Best regards, > Louie > > P.S. is there any training or workshop focusing on rtk application and > development available? > > > > > -----Original Message----- From: Cyril Mory > Sent: Wednesday, September 17, 2014 11:59 AM > To: Simon Rit ; ghostcz > Cc: rtk-users at openrtk.org > Subject: Re: [Rtk-users] How to run the reconstruction on a specific GPU? > > Hi Louie, > > We have been investigating your question bit. A first possible solution, > which may be sufficient for your needs, could be to set the > CUDA_VISIBLE_DEVICES environment variable. You'll find details here : > http://www.acceleware.com/blog/cudavisibledevices-masking-gpus > > Here are two scripts I used to run tests on our two-GPUs server: > > ######### First script ######### > echo "Running two instances of rtkfdk without specifying a GPU" > CUDA_VISIBLE_DEVICES="0,1" > time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g > geom.xml --dimension 512 & > time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g > geom.xml --dimension 512 & > > ######### Second script ######### > echo "Running two instances of rtkfdk, specifying which GPU to use for > each" > echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o > fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash > echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o > fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash > > ######### End ############# > > On our server, which has two identical GPUs, these two scripts took the > same time. It seems that, in the first script, rtkfdk somehow managed to > detect that the first GPU was in use and ran on the second one. But I > can't guarantee under which conditions this happens, and surely it's > safer to use the second script. > > This is the cheapest solution. If you need more than that, and you are > ready to dive into the cuda filters' code as well as into the automatic > transfers between CPU and GPU memory, do not hesitate to propose > modifications of the RTK code. > > Regards, > Cyril > > On 09/15/2014 02:45 PM, Simon Rit wrote: >> Hi, >> Good question, I did not hear anybody working on multiple GPUs so far. >> It currently uses the first Cuda compatible device. I think you'll >> have to look up in the Cuda manual to see how to switch to another one >> but there is nothing available in the RTK lib yet. Don't hesitate to >> suggest some code changes to add this feature. >> Simon >> >> On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >>> Dear Rtk users, >>> >>> How can I select one (or maybe more?) specific GPU to run my >>> reconstruction? >>> It seems if I start a second instance of the reconstruction program, >>> it will >>> run on the same GPU. >>> >>> Best regards, >>> Louie >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://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 >> > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 05:28:42 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 11:28:42 +0200 Subject: [Rtk-users] Would you like RTK trainings ? Message-ID: <541AA5CA.9050306@creatis.insa-lyon.fr> Hi RTK users, A recent question on the mailing list by Louie triggered a conversation between us. Louie asked whether there exists some sort of training or workshop on RTK. In a nutshell, the answer is "No, not yet, but why not talk about it ?". So I'd like to start some sort of "poll" to gather the requests you might have on this topic: Do you need / want / would like a training on RTK ? If so, can you be more specific on what you would like to learn ? (basics of tomography, how to start using RTK on your data, practical issues in circular cone beam CT, motion compensated reconstruction, compressed sensing in tomography, ITK programming, ... this is not an exhaustive list) I think this is enough questions for the time being. The rest will depend on your answers. Looking forward to reading you, -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 06:08:21 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 12:08:21 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: <540ED73D.3080003@creatis.insa-lyon.fr> <541847CB.8020807@creatis.insa-lyon.fr> Message-ID: <541AAF15.9080707@creatis.insa-lyon.fr> Hi Padraig, It is puzzling, as the code is simple and we have many machines on which it works without problem. So let's explore the weirder options : - In one of your previous emails, you mentioned that "the same example runs without a seg fault in the build directory". What does that mean ? - Can you go into your build directory, run "make test", and post the result of the tests ? - Have you tried installing RTK on another machine ? Regards, Cyril On 09/16/2014 04:38 PM, Padraig Looney wrote: > It happens with the first call. > > I set a breakpoint just before and it is not empty. I have tried to > attach a screen capture of my space. > > Yes I thought I may have changed something but I have copied the > directory twice from the original download in which it builds > correctly. I cloned this with git and there are no changes. > > > On Tue, Sep 16, 2014 at 3:23 PM, Cyril Mory > > wrote: > > Hi Padraig, > > Does the segfault happen at the first call of > geometry->AddProjection(...) or later ? > > My guess is that, for some reason, geometry is not initialized. > Can you make sure it is by setting a breakpoint just before ? > You should also make sure that all variables involved in this > call, ie "sid", "sdd", "angle", "isox" and "isoy" have reasonable > values before the call. > > It is probably not a good question, yet I have to ask : did you > modify something in the file > examples/FirstReconstruction/FirstReconstruction.cxx ? > > Regards, > Cyril > > > On 09/16/2014 04:07 PM, Padraig Looney wrote: >> Thanks Cyril, >> >> Following your advice I have tracked the seg fault down to line >> 36 in FirstReconstruction >> >> geometry->AddProjection(sid, >> sdd, >> angle, >> isox, >> isoy); >> } >> >> I realised that I managed to build the examples with RTK fine and >> the same example runs without a seg fault in the build directory. >> >> On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory >> > > wrote: >> >> Hi Padraig, >> >> With so little information, there isn't much we can do to >> help you. >> I usually track segfaults by compiling in Debug mode (by >> setting "CMAKE_BUILD_TYPE" to "Debug"), then running the >> program in debug in QT Creator (any decent IDE will do just >> fine, and should stop when the segfault occurs, allowing you >> to trace it back) >> >> Good luck, >> Cyril >> >> >> On 09/09/2014 12:05 PM, Padraig Looney wrote: >>> When I try to run the "FirstReconstruction" example I am >>> getting a segmentation fault. >>> >>> The following is the output from gdb >>> >>> Program received signal SIGSEGV, Segmentation fault. >>> 0x00000000004952d7 in typeinfo for >>> rtk::ProjectionGeometry<3u> () >>> >>> >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://public.kitware.com/mailman/listinfo/rtk-users >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile:+33 6 69 46 73 79 >> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Thu Sep 18 09:47:40 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Thu, 18 Sep 2014 15:47:40 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: <541A93E7.7010301@creatis.insa-lyon.fr> References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: Hi, I fully agree with Cyril. Something else : you might want to mask out what is outside the field-of-view using the rtkfieldofview executable. Your ring corresponds to that border. See an example here: http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction Simon On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < cyril.mory at creatis.insa-lyon.fr> wrote: > Hi Howard, > > The bright ring artifact is typically caused by high-pass filtering (the > ramp filter used in FDK) of truncated projection data (when projections > have non-zero values on the sides, the edge of the projection makes a sharp > transition to zero). A classical answer to this problem is to pad the > projections, for example with values starting from the values on the side > and slowly decreasing to zero. > > rtkfdk can do this padding for you. Just add "--pad 0.1" to your options > (or more than 0.1 if it isn't enough). > Also, I noticed that your reconstructed image seems quite noisy. You might > want to use a Hann windowing of the ramp filter to reduce the noise > amplification effect of high-pass filtering. You can do that by adding > "--hann 0.5" to your options. Note that the argument is a cut-off > frequency, so smaller values mean more smoothing. > > Best regards, > Cyril > > > On 09/18/2014 05:21 AM, Howard wrote: > > Hi, > > I use rtkfdk to reconstruct varian cbct images following the example on > rtk wiki page. The projections were obtained with half fan mode because it > is an abdominal region with the patient lateral x AP dimension of 550x550. > The reconstructed cbct images have a big bright circle around > the image. Please see the image: > http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > > I am using Ubuntu Linux box to reconstruct. Two sequential commands were > used: > > ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > --regexp Proj_.*.hnd -o varianGeometry > and > > rtkfdk \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output rec.mha \ > --verbose \ > --spacing 2.0,2.0,2.0 \ > --dimension 256,100,256 \ > The projections are stored in the standard varian format: Scan0 and > ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled the half fan geometry properly. What did I do wrong then? Many > thanks! > > -howard > > > _______________________________________________ > Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users > > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > > _______________________________________________ > 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: From lomahu at gmail.com Thu Sep 18 10:47:17 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 10:47:17 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: Thanks very much, Cyril & Simon. Now the fdk reconstruction is working beautifully. Jus another quick question: for rtksart executable, are we still able to do padding and hanning window trick as well? On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit wrote: > Hi, > I fully agree with Cyril. Something else : you might want to mask out what > is outside the field-of-view using the rtkfieldofview executable. Your ring > corresponds to that border. See an example here: > http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > Simon > > On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < > cyril.mory at creatis.insa-lyon.fr> wrote: > >> Hi Howard, >> >> The bright ring artifact is typically caused by high-pass filtering (the >> ramp filter used in FDK) of truncated projection data (when projections >> have non-zero values on the sides, the edge of the projection makes a sharp >> transition to zero). A classical answer to this problem is to pad the >> projections, for example with values starting from the values on the side >> and slowly decreasing to zero. >> >> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >> (or more than 0.1 if it isn't enough). >> Also, I noticed that your reconstructed image seems quite noisy. You >> might want to use a Hann windowing of the ramp filter to reduce the noise >> amplification effect of high-pass filtering. You can do that by adding >> "--hann 0.5" to your options. Note that the argument is a cut-off >> frequency, so smaller values mean more smoothing. >> >> Best regards, >> Cyril >> >> >> On 09/18/2014 05:21 AM, Howard wrote: >> >> Hi, >> >> I use rtkfdk to reconstruct varian cbct images following the example on >> rtk wiki page. The projections were obtained with half fan mode because it >> is an abdominal region with the patient lateral x AP dimension of 550x550. >> The reconstructed cbct images have a big bright circle around >> the image. Please see the image: >> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> >> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >> used: >> >> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >> --regexp Proj_.*.hnd -o varianGeometry >> and >> >> rtkfdk \ >> --geometry varianGeometry \ >> --regexp .*.hnd \ >> --path ../Scan0 \ >> --output rec.mha \ >> --verbose \ >> --spacing 2.0,2.0,2.0 \ >> --dimension 256,100,256 \ >> The projections are stored in the standard varian format: Scan0 and >> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >> handled the half fan geometry properly. What did I do wrong then? Many >> thanks! >> >> -howard >> >> >> _______________________________________________ >> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 >> >> >> _______________________________________________ >> 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: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 10:59:53 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 16:59:53 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: <541AF369.9090403@creatis.insa-lyon.fr> Howard, For SART reconstructions, you do not need padding, and you can't do Hann windowing because no ramp filtering is applied. SART usually outputs smoother images, so you probably will not need this denoising trick anyway. However, you should be careful about one thing : your object has to be fully contained in the reconstructed volume, or you will observe important border effects. Use the --dimension, --spacing and --origin options to ensure this. All the best, Cyril On 09/18/2014 04:47 PM, Howard wrote: > Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > beautifully. Jus another quick question: for rtksart executable, are > we still able to do padding and hanning window trick as well? > > On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > > wrote: > > Hi, > I fully agree with Cyril. Something else : you might want to mask > out what is outside the field-of-view using the rtkfieldofview > executable. Your ring corresponds to that border. See an example here: > http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > Simon > > On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory > > wrote: > > Hi Howard, > > The bright ring artifact is typically caused by high-pass > filtering (the ramp filter used in FDK) of truncated > projection data (when projections have non-zero values on the > sides, the edge of the projection makes a sharp transition to > zero). A classical answer to this problem is to pad the > projections, for example with values starting from the values > on the side and slowly decreasing to zero. > > rtkfdk can do this padding for you. Just add "--pad 0.1" to > your options (or more than 0.1 if it isn't enough). > Also, I noticed that your reconstructed image seems quite > noisy. You might want to use a Hann windowing of the ramp > filter to reduce the noise amplification effect of high-pass > filtering. You can do that by adding "--hann 0.5" to your > options. Note that the argument is a cut-off frequency, so > smaller values mean more smoothing. > > Best regards, > Cyril > > > On 09/18/2014 05:21 AM, Howard wrote: >> Hi, >> I use rtkfdk to reconstruct varian cbct images following the >> example on rtk wiki page. The projections were obtained with >> half fan mode because it is an abdominal region with the >> patient lateral x AP dimension of 550x550. The reconstructed >> cbct images have a big bright circle around >> the image. Please see the image: >> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> I am using Ubuntu Linux box to reconstruct. Two sequential >> commands were used: >> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path >> Scan0/ --regexp Proj_.*.hnd -o varianGeometry >> and >> rtkfdk \ >> --geometry varianGeometry \ >> --regexp .*.hnd \ >> --path ../Scan0 \ >> --output rec.mha \ >> --verbose \ >> --spacing 2.0,2.0,2.0 \ >> --dimension 256,100,256 \ >> The projections are stored in the standard varian format: >> Scan0 and ProjectionInfo.xml with 644 projection images. I >> assume that rtkfdk handled the half fan geometry properly. >> What did I do wrong then? Many thanks! >> -howard >> >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://public.kitware.com/mailman/listinfo/rtk-users > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From lomahu at gmail.com Thu Sep 18 13:03:52 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 13:03:52 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: <541AF369.9090403@creatis.insa-lyon.fr> References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Cyril, I am testing SART reconstruction according to what you described, specifying dimension, spacing and origin: rtksart \ --geometry varianGeometry \ --regexp .*.hnd \ --path ../Scan0 \ --output sart_rec.mha \ --verbose \ --spacing 2.0\ --dimension 128,100,128 \ --origin -127.5,-99,-127.5 but the reconstruction gave a plain image with no object/contrast. I checked the grayscale values on the reconstructed images and did see they ranged from -1.78 to 3 (this may not be precise but give you some idea). I tried to adjust window level but couldn't see any contrast. I must miss something here. Please advise. Thanks! -howard On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory < cyril.mory at creatis.insa-lyon.fr> wrote: > Howard, > > For SART reconstructions, you do not need padding, and you can't do Hann > windowing because no ramp filtering is applied. SART usually outputs > smoother images, so you probably will not need this denoising trick anyway. > However, you should be careful about one thing : your object has to be > fully contained in the reconstructed volume, or you will observe important > border effects. Use the --dimension, --spacing and --origin options to > ensure this. > > All the best, > Cyril > > > On 09/18/2014 04:47 PM, Howard wrote: > > Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > beautifully. Jus another quick question: for rtksart executable, are we > still able to do padding and hanning window trick as well? > > On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > wrote: > >> Hi, >> I fully agree with Cyril. Something else : you might want to mask out >> what is outside the field-of-view using the rtkfieldofview executable. Your >> ring corresponds to that border. See an example here: >> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >> Simon >> >> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < >> cyril.mory at creatis.insa-lyon.fr> wrote: >> >>> Hi Howard, >>> >>> The bright ring artifact is typically caused by high-pass filtering (the >>> ramp filter used in FDK) of truncated projection data (when projections >>> have non-zero values on the sides, the edge of the projection makes a sharp >>> transition to zero). A classical answer to this problem is to pad the >>> projections, for example with values starting from the values on the side >>> and slowly decreasing to zero. >>> >>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >>> (or more than 0.1 if it isn't enough). >>> Also, I noticed that your reconstructed image seems quite noisy. You >>> might want to use a Hann windowing of the ramp filter to reduce the noise >>> amplification effect of high-pass filtering. You can do that by adding >>> "--hann 0.5" to your options. Note that the argument is a cut-off >>> frequency, so smaller values mean more smoothing. >>> >>> Best regards, >>> Cyril >>> >>> >>> On 09/18/2014 05:21 AM, Howard wrote: >>> >>> Hi, >>> >>> I use rtkfdk to reconstruct varian cbct images following the example on >>> rtk wiki page. The projections were obtained with half fan mode because it >>> is an abdominal region with the patient lateral x AP dimension of 550x550. >>> The reconstructed cbct images have a big bright circle around >>> the image. Please see the image: >>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >>> >>> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >>> used: >>> >>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >>> --regexp Proj_.*.hnd -o varianGeometry >>> and >>> >>> rtkfdk \ >>> --geometry varianGeometry \ >>> --regexp .*.hnd \ >>> --path ../Scan0 \ >>> --output rec.mha \ >>> --verbose \ >>> --spacing 2.0,2.0,2.0 \ >>> --dimension 256,100,256 \ >>> The projections are stored in the standard varian format: Scan0 and >>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >>> handled the half fan geometry properly. What did I do wrong then? Many >>> thanks! >>> >>> -howard >>> >>> >>> _______________________________________________ >>> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >>> -- >>> -- >>> Cyril Mory, Post-doc >>> CREATIS >>> Leon Berard cancer treatment center >>> 28 rue La?nnec >>> 69373 Lyon cedex 08 FRANCE >>> >>> Mobile: +33 6 69 46 73 79 >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Thu Sep 18 16:41:10 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Thu, 18 Sep 2014 22:41:10 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Howard, Assuming you're using the same dataset as the one you used for the rtkfdk test, you have decreased its size. For example, x was 2*256 mm with rtkfdk and it is now 128*2. On the slice you sent, we could see that a part of the phantom on the right was missing so you should keep the same size except for this side that should be larger, certainly not reduce the size. For the display, I would suggest to use the same window/level as for your FDK reconstruction. The two reconstruction algorithms reconstruct the same average intensities, only the texture is different. Good luck, Simon On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: > Hi Cyril, > > I am testing SART reconstruction according to what you described, specifying > dimension, spacing and origin: > > rtksart \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output sart_rec.mha \ > --verbose \ > --spacing 2.0\ > --dimension 128,100,128 \ > --origin -127.5,-99,-127.5 > > but the reconstruction gave a plain image with no object/contrast. I checked > the grayscale values on the reconstructed images and did see they ranged > from -1.78 to 3 (this may not be precise but give you some idea). I tried to > adjust window level but couldn't see any contrast. I must miss something > here. Please advise. Thanks! > > -howard > > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory > wrote: >> >> Howard, >> >> For SART reconstructions, you do not need padding, and you can't do Hann >> windowing because no ramp filtering is applied. SART usually outputs >> smoother images, so you probably will not need this denoising trick anyway. >> However, you should be careful about one thing : your object has to be >> fully contained in the reconstructed volume, or you will observe important >> border effects. Use the --dimension, --spacing and --origin options to >> ensure this. >> >> All the best, >> Cyril >> >> >> On 09/18/2014 04:47 PM, Howard wrote: >> >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working >> beautifully. Jus another quick question: for rtksart executable, are we >> still able to do padding and hanning window trick as well? >> >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit >> wrote: >>> >>> Hi, >>> I fully agree with Cyril. Something else : you might want to mask out >>> what is outside the field-of-view using the rtkfieldofview executable. Your >>> ring corresponds to that border. See an example here: >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >>> Simon >>> >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory >>> wrote: >>>> >>>> Hi Howard, >>>> >>>> The bright ring artifact is typically caused by high-pass filtering (the >>>> ramp filter used in FDK) of truncated projection data (when projections have >>>> non-zero values on the sides, the edge of the projection makes a sharp >>>> transition to zero). A classical answer to this problem is to pad the >>>> projections, for example with values starting from the values on the side >>>> and slowly decreasing to zero. >>>> >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >>>> (or more than 0.1 if it isn't enough). >>>> Also, I noticed that your reconstructed image seems quite noisy. You >>>> might want to use a Hann windowing of the ramp filter to reduce the noise >>>> amplification effect of high-pass filtering. You can do that by adding >>>> "--hann 0.5" to your options. Note that the argument is a cut-off frequency, >>>> so smaller values mean more smoothing. >>>> >>>> Best regards, >>>> Cyril >>>> >>>> >>>> On 09/18/2014 05:21 AM, Howard wrote: >>>> >>>> Hi, >>>> >>>> I use rtkfdk to reconstruct varian cbct images following the example on >>>> rtk wiki page. The projections were obtained with half fan mode because it >>>> is an abdominal region with the patient lateral x AP dimension of 550x550. >>>> The reconstructed cbct images have a big bright circle around >>>> the image. Please see the image: >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >>>> >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >>>> used: >>>> >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >>>> --regexp Proj_.*.hnd -o varianGeometry >>>> and >>>> >>>> rtkfdk \ >>>> --geometry varianGeometry \ >>>> --regexp .*.hnd \ >>>> --path ../Scan0 \ >>>> --output rec.mha \ >>>> --verbose \ >>>> --spacing 2.0,2.0,2.0 \ >>>> --dimension 256,100,256 \ >>>> The projections are stored in the standard varian format: Scan0 and >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk handled >>>> the half fan geometry properly. What did I do wrong then? Many thanks! >>>> >>>> -howard >>>> >>>> >>>> _______________________________________________ >>>> Rtk-users mailing list >>>> Rtk-users at public.kitware.com >>>> http://public.kitware.com/mailman/listinfo/rtk-users >>>> >>>> >>>> -- >>>> -- >>>> Cyril Mory, Post-doc >>>> CREATIS >>>> Leon Berard cancer treatment center >>>> 28 rue La?nnec >>>> 69373 Lyon cedex 08 FRANCE >>>> >>>> Mobile: +33 6 69 46 73 79 >>>> >>>> >>>> _______________________________________________ >>>> Rtk-users mailing list >>>> Rtk-users at public.kitware.com >>>> http://public.kitware.com/mailman/listinfo/rtk-users >>>> >>> >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 > > From lomahu at gmail.com Thu Sep 18 17:47:51 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 17:47:51 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Simon, I apologize for the confusion about the dataset. Actually I did not use the same dataset. The reason is that the set I used for rtkfdk test had 644 projections and with it rtksart crashed because of memory (I only allocated 3GB memory to Virtualbox from my window7). So for the SART test I changed to a small projection set (366 projections) where the object is a cube with dimension of 5cm x 5cm x 5cm. That's why I chose a smaller reconstruction size 128*2. With the same dataset when I ran rtkfdk I got very good reconstruction. -howard On Thu, Sep 18, 2014 at 4:41 PM, Simon Rit wrote: > Hi Howard, > Assuming you're using the same dataset as the one you used for the > rtkfdk test, you have decreased its size. For example, x was 2*256 mm > with rtkfdk and it is now 128*2. On the slice you sent, we could see > that a part of the phantom on the right was missing so you should keep > the same size except for this side that should be larger, certainly > not reduce the size. > For the display, I would suggest to use the same window/level as for > your FDK reconstruction. The two reconstruction algorithms reconstruct > the same average intensities, only the texture is different. > Good luck, > Simon > > On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: > > Hi Cyril, > > > > I am testing SART reconstruction according to what you described, > specifying > > dimension, spacing and origin: > > > > rtksart \ > > --geometry varianGeometry \ > > --regexp .*.hnd \ > > --path ../Scan0 \ > > --output sart_rec.mha \ > > --verbose \ > > --spacing 2.0\ > > --dimension 128,100,128 \ > > --origin -127.5,-99,-127.5 > > > > but the reconstruction gave a plain image with no object/contrast. I > checked > > the grayscale values on the reconstructed images and did see they ranged > > from -1.78 to 3 (this may not be precise but give you some idea). I > tried to > > adjust window level but couldn't see any contrast. I must miss something > > here. Please advise. Thanks! > > > > -howard > > > > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory > > wrote: > >> > >> Howard, > >> > >> For SART reconstructions, you do not need padding, and you can't do Hann > >> windowing because no ramp filtering is applied. SART usually outputs > >> smoother images, so you probably will not need this denoising trick > anyway. > >> However, you should be careful about one thing : your object has to be > >> fully contained in the reconstructed volume, or you will observe > important > >> border effects. Use the --dimension, --spacing and --origin options to > >> ensure this. > >> > >> All the best, > >> Cyril > >> > >> > >> On 09/18/2014 04:47 PM, Howard wrote: > >> > >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > >> beautifully. Jus another quick question: for rtksart executable, are we > >> still able to do padding and hanning window trick as well? > >> > >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > >> wrote: > >>> > >>> Hi, > >>> I fully agree with Cyril. Something else : you might want to mask out > >>> what is outside the field-of-view using the rtkfieldofview executable. > Your > >>> ring corresponds to that border. See an example here: > >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > >>> Simon > >>> > >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory > >>> wrote: > >>>> > >>>> Hi Howard, > >>>> > >>>> The bright ring artifact is typically caused by high-pass filtering > (the > >>>> ramp filter used in FDK) of truncated projection data (when > projections have > >>>> non-zero values on the sides, the edge of the projection makes a sharp > >>>> transition to zero). A classical answer to this problem is to pad the > >>>> projections, for example with values starting from the values on the > side > >>>> and slowly decreasing to zero. > >>>> > >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your > options > >>>> (or more than 0.1 if it isn't enough). > >>>> Also, I noticed that your reconstructed image seems quite noisy. You > >>>> might want to use a Hann windowing of the ramp filter to reduce the > noise > >>>> amplification effect of high-pass filtering. You can do that by adding > >>>> "--hann 0.5" to your options. Note that the argument is a cut-off > frequency, > >>>> so smaller values mean more smoothing. > >>>> > >>>> Best regards, > >>>> Cyril > >>>> > >>>> > >>>> On 09/18/2014 05:21 AM, Howard wrote: > >>>> > >>>> Hi, > >>>> > >>>> I use rtkfdk to reconstruct varian cbct images following the example > on > >>>> rtk wiki page. The projections were obtained with half fan mode > because it > >>>> is an abdominal region with the patient lateral x AP dimension of > 550x550. > >>>> The reconstructed cbct images have a big bright circle around > >>>> the image. Please see the image: > >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > >>>> > >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands > were > >>>> used: > >>>> > >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > >>>> --regexp Proj_.*.hnd -o varianGeometry > >>>> and > >>>> > >>>> rtkfdk \ > >>>> --geometry varianGeometry \ > >>>> --regexp .*.hnd \ > >>>> --path ../Scan0 \ > >>>> --output rec.mha \ > >>>> --verbose \ > >>>> --spacing 2.0,2.0,2.0 \ > >>>> --dimension 256,100,256 \ > >>>> The projections are stored in the standard varian format: Scan0 and > >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled > >>>> the half fan geometry properly. What did I do wrong then? Many > thanks! > >>>> > >>>> -howard > >>>> > >>>> > >>>> _______________________________________________ > >>>> Rtk-users mailing list > >>>> Rtk-users at public.kitware.com > >>>> http://public.kitware.com/mailman/listinfo/rtk-users > >>>> > >>>> > >>>> -- > >>>> -- > >>>> Cyril Mory, Post-doc > >>>> CREATIS > >>>> Leon Berard cancer treatment center > >>>> 28 rue La?nnec > >>>> 69373 Lyon cedex 08 FRANCE > >>>> > >>>> Mobile: +33 6 69 46 73 79 > >>>> > >>>> > >>>> _______________________________________________ > >>>> Rtk-users mailing list > >>>> Rtk-users at public.kitware.com > >>>> http://public.kitware.com/mailman/listinfo/rtk-users > >>>> > >>> > >> > >> > >> -- > >> -- > >> Cyril Mory, Post-doc > >> CREATIS > >> Leon Berard cancer treatment center > >> 28 rue La?nnec > >> 69373 Lyon cedex 08 FRANCE > >> > >> Mobile: +33 6 69 46 73 79 > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lomahu at gmail.com Thu Sep 18 22:53:45 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 22:53:45 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Simon, It appears I have to apologize again and take back the question about the SART reconstruction. I re-ran on the big data set (644 projections). This time no memory issue and SART worked well. For some reason it did not work on the small set initially. I should have run more tests before posting here. Sorry about the noise and thanks a lot for looking into the "issues". -howard On Thu, Sep 18, 2014 at 5:47 PM, Howard wrote: > Hi Simon, > > I apologize for the confusion about the dataset. Actually I did not use > the same dataset. > The reason is that the set I used for rtkfdk test had 644 projections and > with it rtksart > crashed because of memory (I only allocated 3GB memory to Virtualbox from > my window7). > So for the SART test I changed to a small projection set (366 projections) > where the object is > a cube with dimension of 5cm x 5cm x 5cm. That's why I chose a smaller > reconstruction > size 128*2. With the same dataset when I ran rtkfdk I got very good > reconstruction. > > -howard > > On Thu, Sep 18, 2014 at 4:41 PM, Simon Rit > wrote: > >> Hi Howard, >> Assuming you're using the same dataset as the one you used for the >> rtkfdk test, you have decreased its size. For example, x was 2*256 mm >> with rtkfdk and it is now 128*2. On the slice you sent, we could see >> that a part of the phantom on the right was missing so you should keep >> the same size except for this side that should be larger, certainly >> not reduce the size. >> For the display, I would suggest to use the same window/level as for >> your FDK reconstruction. The two reconstruction algorithms reconstruct >> the same average intensities, only the texture is different. >> Good luck, >> Simon >> >> On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: >> > Hi Cyril, >> > >> > I am testing SART reconstruction according to what you described, >> specifying >> > dimension, spacing and origin: >> > >> > rtksart \ >> > --geometry varianGeometry \ >> > --regexp .*.hnd \ >> > --path ../Scan0 \ >> > --output sart_rec.mha \ >> > --verbose \ >> > --spacing 2.0\ >> > --dimension 128,100,128 \ >> > --origin -127.5,-99,-127.5 >> > >> > but the reconstruction gave a plain image with no object/contrast. I >> checked >> > the grayscale values on the reconstructed images and did see they ranged >> > from -1.78 to 3 (this may not be precise but give you some idea). I >> tried to >> > adjust window level but couldn't see any contrast. I must miss something >> > here. Please advise. Thanks! >> > >> > -howard >> > >> > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory >> > wrote: >> >> >> >> Howard, >> >> >> >> For SART reconstructions, you do not need padding, and you can't do >> Hann >> >> windowing because no ramp filtering is applied. SART usually outputs >> >> smoother images, so you probably will not need this denoising trick >> anyway. >> >> However, you should be careful about one thing : your object has to be >> >> fully contained in the reconstructed volume, or you will observe >> important >> >> border effects. Use the --dimension, --spacing and --origin options to >> >> ensure this. >> >> >> >> All the best, >> >> Cyril >> >> >> >> >> >> On 09/18/2014 04:47 PM, Howard wrote: >> >> >> >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working >> >> beautifully. Jus another quick question: for rtksart executable, are we >> >> still able to do padding and hanning window trick as well? >> >> >> >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit >> >> wrote: >> >>> >> >>> Hi, >> >>> I fully agree with Cyril. Something else : you might want to mask out >> >>> what is outside the field-of-view using the rtkfieldofview >> executable. Your >> >>> ring corresponds to that border. See an example here: >> >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >> >>> Simon >> >>> >> >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory >> >>> wrote: >> >>>> >> >>>> Hi Howard, >> >>>> >> >>>> The bright ring artifact is typically caused by high-pass filtering >> (the >> >>>> ramp filter used in FDK) of truncated projection data (when >> projections have >> >>>> non-zero values on the sides, the edge of the projection makes a >> sharp >> >>>> transition to zero). A classical answer to this problem is to pad the >> >>>> projections, for example with values starting from the values on the >> side >> >>>> and slowly decreasing to zero. >> >>>> >> >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your >> options >> >>>> (or more than 0.1 if it isn't enough). >> >>>> Also, I noticed that your reconstructed image seems quite noisy. You >> >>>> might want to use a Hann windowing of the ramp filter to reduce the >> noise >> >>>> amplification effect of high-pass filtering. You can do that by >> adding >> >>>> "--hann 0.5" to your options. Note that the argument is a cut-off >> frequency, >> >>>> so smaller values mean more smoothing. >> >>>> >> >>>> Best regards, >> >>>> Cyril >> >>>> >> >>>> >> >>>> On 09/18/2014 05:21 AM, Howard wrote: >> >>>> >> >>>> Hi, >> >>>> >> >>>> I use rtkfdk to reconstruct varian cbct images following the example >> on >> >>>> rtk wiki page. The projections were obtained with half fan mode >> because it >> >>>> is an abdominal region with the patient lateral x AP dimension of >> 550x550. >> >>>> The reconstructed cbct images have a big bright circle around >> >>>> the image. Please see the image: >> >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> >>>> >> >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands >> were >> >>>> used: >> >>>> >> >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >> >>>> --regexp Proj_.*.hnd -o varianGeometry >> >>>> and >> >>>> >> >>>> rtkfdk \ >> >>>> --geometry varianGeometry \ >> >>>> --regexp .*.hnd \ >> >>>> --path ../Scan0 \ >> >>>> --output rec.mha \ >> >>>> --verbose \ >> >>>> --spacing 2.0,2.0,2.0 \ >> >>>> --dimension 256,100,256 \ >> >>>> The projections are stored in the standard varian format: Scan0 and >> >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >> handled >> >>>> the half fan geometry properly. What did I do wrong then? Many >> thanks! >> >>>> >> >>>> -howard >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> Rtk-users mailing list >> >>>> Rtk-users at public.kitware.com >> >>>> http://public.kitware.com/mailman/listinfo/rtk-users >> >>>> >> >>>> >> >>>> -- >> >>>> -- >> >>>> Cyril Mory, Post-doc >> >>>> CREATIS >> >>>> Leon Berard cancer treatment center >> >>>> 28 rue La?nnec >> >>>> 69373 Lyon cedex 08 FRANCE >> >>>> >> >>>> Mobile: +33 6 69 46 73 79 >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> Rtk-users mailing list >> >>>> Rtk-users at public.kitware.com >> >>>> http://public.kitware.com/mailman/listinfo/rtk-users >> >>>> >> >>> >> >> >> >> >> >> -- >> >> -- >> >> Cyril Mory, Post-doc >> >> CREATIS >> >> Leon Berard cancer treatment center >> >> 28 rue La?nnec >> >> 69373 Lyon cedex 08 FRANCE >> >> >> >> Mobile: +33 6 69 46 73 79 >> > >> > >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ucabba1 at ucl.ac.uk Fri Sep 19 07:04:49 2014 From: ucabba1 at ucl.ac.uk (Ben Champion) Date: Fri, 19 Sep 2014 12:04:49 +0100 Subject: [Rtk-users] Would you like RTK trainings ? In-Reply-To: <541AA5CA.9050306@creatis.insa-lyon.fr> References: <541AA5CA.9050306@creatis.insa-lyon.fr> Message-ID: <541C0DD1.4070203@ucl.ac.uk> Hi Cyril, Having used RTK (and ITK) for approximately 1 year now, I have learnt mainly by trial and error, and by reading the source code and wiki examples. (Aside: many thanks to the RTK community for these!) Nevertheless, I think I could benefit from some kind of RTK training for my future work. The kinds of topics that would be most interesting to me are: - theory/use of reconstruction methods other than FDK (e.g. SART, 4D ROOSTER, ...) - motion compensated reconstruction - compressed sensing in tomography - extending RTK (and contributing back to the community) That said, I would not be averse to at least some discussion of "basics of tomography", "starting to use RTK with your own data", and "practical issues in circular CBCT" and in fact it could help fill some gaps in my knowledge. Best wishes, Ben -- Doctoral Student (MRes/EngD) Centre for Medical Image Computing University College London Room 3.01 Engineering Front Building Torrington Place LONDON WC1E 7JE On 18/09/14 10:28, Cyril Mory wrote: > Hi RTK users, > > A recent question on the mailing list by Louie triggered a > conversation between us. Louie asked whether there exists some sort of > training or workshop on RTK. In a nutshell, the answer is "No, not > yet, but why not talk about it ?". > > So I'd like to start some sort of "poll" to gather the requests you > might have on this topic: > Do you need / want / would like a training on RTK ? > If so, can you be more specific on what you would like to learn ? > (basics of tomography, how to start using RTK on your data, practical > issues in circular cone beam CT, motion compensated reconstruction, > compressed sensing in tomography, ITK programming, ... this is not an > exhaustive list) > > I think this is enough questions for the time being. The rest will > depend on your answers. > > Looking forward to reading you, > From lomahu at gmail.com Fri Sep 19 09:47:58 2014 From: lomahu at gmail.com (Howard) Date: Fri, 19 Sep 2014 09:47:58 -0400 Subject: [Rtk-users] Would you like RTK trainings ? In-Reply-To: <541C0DD1.4070203@ucl.ac.uk> References: <541AA5CA.9050306@creatis.insa-lyon.fr> <541C0DD1.4070203@ucl.ac.uk> Message-ID: Hi Cyril, It would be extremely helpful to have an RTK training. As Ben listed, I have similar interests. The topics I am very interested in are the following: 1. Basic principles of reconstruction with FDK and SART 2. Coding framework in RTK 3. Practical examples using iterative reconstruction technique 4. Compressed sensing applications in reconstruction 5. Practical issues in reconstruction specially CBCT reconstruction. Thanks! -howard On Fri, Sep 19, 2014 at 7:04 AM, Ben Champion wrote: > Hi Cyril, > > Having used RTK (and ITK) for approximately 1 year now, I have learnt > mainly by trial and error, and by reading the source code and wiki > examples. (Aside: many thanks to the RTK community for these!) > > Nevertheless, I think I could benefit from some kind of RTK training for > my future work. The kinds of topics that would be most interesting to me > are: > > - theory/use of reconstruction methods other than FDK (e.g. SART, 4D > ROOSTER, ...) > - motion compensated reconstruction > - compressed sensing in tomography > - extending RTK (and contributing back to the community) > > That said, I would not be averse to at least some discussion of "basics of > tomography", "starting to use RTK with your own data", and "practical > issues in circular CBCT" and in fact it could help fill some gaps in my > knowledge. > > Best wishes, > > Ben > -- > Doctoral Student (MRes/EngD) > Centre for Medical Image Computing > University College London > Room 3.01 Engineering Front Building > Torrington Place > LONDON > WC1E 7JE > > > > On 18/09/14 10:28, Cyril Mory wrote: > >> Hi RTK users, >> >> A recent question on the mailing list by Louie triggered a conversation >> between us. Louie asked whether there exists some sort of training or >> workshop on RTK. In a nutshell, the answer is "No, not yet, but why not >> talk about it ?". >> >> So I'd like to start some sort of "poll" to gather the requests you might >> have on this topic: >> Do you need / want / would like a training on RTK ? >> If so, can you be more specific on what you would like to learn ? (basics >> of tomography, how to start using RTK on your data, practical issues in >> circular cone beam CT, motion compensated reconstruction, compressed >> sensing in tomography, ITK programming, ... this is not an exhaustive list) >> >> I think this is enough questions for the time being. The rest will depend >> on your answers. >> >> Looking forward to reading you, >> >> > _______________________________________________ > 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: From padraig.looney at gmail.com Mon Sep 8 08:43:27 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Mon, 8 Sep 2014 13:43:27 +0100 Subject: [Rtk-users] RTK helloworld Message-ID: Dear all, I am trying to get the HelloWorld example running but I get a large number of errors after the build. I am using ITK-4.6 and have followed the instructions as per http://wiki.openrtk.org/index.php/RTK_wiki_help#Tutorial_0_-_Building_an_HelloWorld_application_with_RTK My executable is built and is working but I have hundreds of errors. The first few are. CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::MemoryAllocationError::MemoryAllocationError(std::string const&, unsigned int, std::string const&, std::string const&)': main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x35): undefined reference to `itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, std::string const&, std::string const&)' main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x40): undefined reference to `vtable for itk::MemoryAllocationError' CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::Object::SetObjectName(std::string)': main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x25): undefined reference to `itk::Object::GetDebug() const' main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x2e): undefined reference to `itk::Object::GetGlobalWarningDisplay()' main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x12e): undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::DataObject::SetRealTimeStamp(itk::RealTimeStamp)': main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x25): undefined reference to `itk::Object::GetDebug() const' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x2e): undefined reference to `itk::Object::GetGlobalWarningDisplay()' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0xf1): undefined reference to `itk::operator<<(std::ostream&, itk::RealTimeStamp const&)' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x12e): undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x169): undefined reference to `itk::RealTimeStamp::operator!=(itk::RealTimeStamp const&) const' Thanks P?draig -------------- next part -------------- An HTML attachment was scrubbed... URL: From julien.jomier at kitware.com Mon Sep 8 09:11:50 2014 From: julien.jomier at kitware.com (Julien Jomier) Date: Mon, 08 Sep 2014 15:11:50 +0200 Subject: [Rtk-users] RTK helloworld In-Reply-To: References: Message-ID: <540DAB16.3050904@kitware.com> Dear Padraig, When you say "built and is working but I have hundreds of errors" do you mean that you have successfully compiled and linked the example? It seems that your example cannot find the ITK libraries. Are you building ITK and RTK using BUILD_SHARED_LIBS to ON in CMake? Julien On 08/09/2014 14:43, Padraig Looney wrote: > Dear all, > > I am trying to get the HelloWorld example running but I get a large > number of errors after the build. I am using ITK-4.6 and have followed > the instructions as per > > http://wiki.openrtk.org/index.php/RTK_wiki_help#Tutorial_0_-_Building_an_HelloWorld_application_with_RTK > > My executable is built and is working but I have hundreds of errors. The > first few are. > > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::MemoryAllocationError::MemoryAllocationError(std::string const&, > unsigned int, std::string const&, std::string const&)': > main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x35): > undefined reference to > `itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, > std::string const&, std::string const&)' > main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x40): > undefined reference to `vtable for itk::MemoryAllocationError' > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::Object::SetObjectName(std::string)': > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x2e): > undefined reference to `itk::Object::GetGlobalWarningDisplay()' > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x12e): > undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::DataObject::SetRealTimeStamp(itk::RealTimeStamp)': > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x2e): > undefined reference to `itk::Object::GetGlobalWarningDisplay()' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0xf1): > undefined reference to `itk::operator<<(std::ostream&, > itk::RealTimeStamp const&)' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x12e): > undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x169): > undefined reference to > `itk::RealTimeStamp::operator!=(itk::RealTimeStamp const&) const' > > > Thanks > P?draig > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > From julien.jomier at kitware.com Mon Sep 8 09:32:47 2014 From: julien.jomier at kitware.com (Julien Jomier) Date: Mon, 08 Sep 2014 15:32:47 +0200 Subject: [Rtk-users] RTK helloworld In-Reply-To: References: <540DAB16.3050904@kitware.com> Message-ID: <540DAFFF.4080103@kitware.com> I'm guessing the ITK shared libs cannot be found. Can you specify the path where the ITK libraries (.so) are located in the LD_LIBRARY_PATH before your run make? Julien On 08/09/2014 15:23, Padraig Looney wrote: > It has successfully compiled using ccmake and make. I presume that has > successfully linked it. The errors were produced with make. > > Both the SharedLibs variables are set to ON. > > I've tried building RTK two different ways. Once by allowing cmake to > find ITK. This way ITK_DIR is set to /usr/local/lib/cmake/ITK-4.6 > > The other way I built it was by setting ITK_DIR to be the location of > the build directory. Which is what I understand from the wiki > > "When CMake asks for the ITK_DIR, specify the binary directory where ITK > is built and choose CMAKE_BUILD_TYPE (default: Release)" > > It didn't make any difference though. > > On Mon, Sep 8, 2014 at 2:11 PM, Julien Jomier > wrote: > > Dear Padraig, > > When you say "built and is working but I have hundreds of errors" do > you mean that you have successfully compiled and linked the example? > It seems that your example cannot find the ITK libraries. Are you > building ITK and RTK using BUILD_SHARED_LIBS to ON in CMake? > > Julien > > > On 08/09/2014 14:43, Padraig Looney wrote: > > Dear all, > > I am trying to get the HelloWorld example running but I get a large > number of errors after the build. I am using ITK-4.6 and have > followed > the instructions as per > > http://wiki.openrtk.org/index.__php/RTK_wiki_help#Tutorial_0_-___Building_an_HelloWorld___application_with_RTK > > > My executable is built and is working but I have hundreds of > errors. The > first few are. > > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::MemoryAllocationError::__MemoryAllocationError(std::__string > const&, > unsigned int, std::string const&, std::string const&)': > main.cpp:(.text.___ZN3itk21MemoryAllocationErrorC__2ERKSsjS2_S2_[___ZN3itk21MemoryAllocationErrorC__5ERKSsjS2_S2_]+0x35): > undefined reference to > `itk::ExceptionObject::__ExceptionObject(std::string const&, > unsigned int, > std::string const&, std::string const&)' > main.cpp:(.text.___ZN3itk21MemoryAllocationErrorC__2ERKSsjS2_S2_[___ZN3itk21MemoryAllocationErrorC__5ERKSsjS2_S2_]+0x40): > undefined reference to `vtable for itk::MemoryAllocationError' > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::Object::SetObjectName(__std::string)': > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x2e): > undefined reference to `itk::Object::__GetGlobalWarningDisplay()' > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x12e): > undefined reference to > `itk::__OutputWindowDisplayDebugText(__char const*)' > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::DataObject::__SetRealTimeStamp(itk::__RealTimeStamp)': > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x2e): > undefined reference to `itk::Object::__GetGlobalWarningDisplay()' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0xf1): > undefined reference to `itk::operator<<(std::ostream&__, > itk::RealTimeStamp const&)' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x12e): > undefined reference to > `itk::__OutputWindowDisplayDebugText(__char const*)' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x169): > undefined reference to > `itk::RealTimeStamp::operator!__=(itk::RealTimeStamp const&) const' > > > Thanks > P?draig > > > _________________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/__mailman/listinfo/rtk-users > > > From theday79 at gmail.com Mon Sep 8 23:22:32 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Mon, 8 Sep 2014 23:22:32 -0400 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> Message-ID: <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> Hi all, I've been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven't had any problem with full scan images (360 degree scan), I found that rtkfdk doesn't work well with my short scan images obtained from our Elekta XVI system. I've used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn't change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: short_scan.PNG Type: image/png Size: 166828 bytes Desc: not available URL: From simon.rit at creatis.insa-lyon.fr Tue Sep 9 01:24:25 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Tue, 9 Sep 2014 07:24:25 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> Message-ID: Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > _______________________________________________ > 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: From padraig.looney at gmail.com Tue Sep 9 06:05:01 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 9 Sep 2014 11:05:01 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction Message-ID: When I try to run the "FirstReconstruction" example I am getting a segmentation fault. The following is the output from gdb Program received signal SIGSEGV, Segmentation fault. 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue Sep 9 06:32:29 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 09 Sep 2014 12:32:29 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: Message-ID: <540ED73D.3080003@creatis.insa-lyon.fr> Hi Padraig, With so little information, there isn't much we can do to help you. I usually track segfaults by compiling in Debug mode (by setting "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT Creator (any decent IDE will do just fine, and should stop when the segfault occurs, allowing you to trace it back) Good luck, Cyril On 09/09/2014 12:05 PM, Padraig Looney wrote: > When I try to run the "FirstReconstruction" example I am getting a > segmentation fault. > > The following is the output from gdb > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () > > > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Tue Sep 9 08:40:48 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Tue, 9 Sep 2014 14:40:48 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing wrote: > Hi all, > > > > We have experienced the same problem as YangKyun in our institution. Find > attached a screendump of a short scan, and the ElektaGeometry file. We are > reconstructing on CPU using RTK 1.0.0, and have encountered the strange > behavior a couple of times without being able to find any patterns. Our > images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree > scan with the S20 filter on an Elekta XVI machine. > > > > Hope this helps in tracking down the problem. > > > > > > Best regards, > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *P? vegne > af *Simon Rit > *Sendt:* 9. september 2014 07:24 > *Til:* Yang Kyun Park > *Cc:* rtk-users at public.kitware.com > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Hi, > > Everything looks correct in what you did. What version of RTK did you use? > It looks like a bug in the angular weighting of the projections coming > from the discretization of the integral on the gantry angle. Could you send > us a copy of ElektaGeometry.xml and tell us what was the dimension of the > projections? We will look into it. > Thanks for the report, > Simon > > > > On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > > _______________________________________________ > 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: From theday79 at gmail.com Tue Sep 9 11:43:32 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Tue, 9 Sep 2014 11:43:32 -0400 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: <002e01cfcc44$d01763f0$70462bd0$@gmail.com> Hi Simon, Thank your for the prompt update. Now it works perfectly! Best, YangKyun From: simon.rit at gmail.com [mailto:simon.rit at gmail.com] On Behalf Of Simon Rit Sent: Tuesday, September 09, 2014 8:41 AM To: Rune Slot Thing Cc: Yang Kyun Park; rtk-users at public.kitware.com Subject: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: Hi all, We have experienced the same problem as YangKyun in our institution. Find attached a screendump of a short scan, and the ElektaGeometry file. We are reconstructing on CPU using RTK 1.0.0, and have encountered the strange behavior a couple of times without being able to find any patterns. Our images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree scan with the S20 filter on an Elekta XVI machine. Hope this helps in tracking down the problem. Best regards, Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: Rtk-users [mailto:rtk-users-bounces at public.kitware.com ] P? vegne af Simon Rit Sendt: 9. september 2014 07:24 Til: Yang Kyun Park Cc: rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park > wrote: Hi all, I?ve been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven?t had any problem with full scan images (360 degree scan), I found that rtkfdk doesn?t work well with my short scan images obtained from our Elekta XVI system. I?ve used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn?t change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun _______________________________________________ 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: From Rune.Slot.Thing at rsyd.dk Wed Sep 10 04:39:05 2014 From: Rune.Slot.Thing at rsyd.dk (Rune Slot Thing) Date: Wed, 10 Sep 2014 08:39:05 +0000 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> Hi Simon, I asked our IT-guy to recompile the new commit, but unfortunately he was unsuccessful. Here is what he writes: I've downloaded the master from git today and compiled in the VS 2008 pro 64bit on Win7 with itk 4.3.0 and fftw. The new fix does not compile because of issues on line 92-99 in rtkParkerShortScanImageFilter.txx error C2678: binary '==' : no operator found which takes a left-hand operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no acceptable conversion) and on line 73 error C2923: 'itk::Vector' : 'rtk::DaubechiesWaveletsConvolutionImageFilter::Pass' is not a valid template type argument for parameter 'T' f:\programmering\cxx\lib\rtk\master-2014-09-10\code\rtkDaubechiesWaveletsConvolutionImageFilter.h 73 rtkadmmwavelets Is it a typo with to identical lines (LINE 93 = 94)? Thanks again for your prompt help. Best regards, Rune Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: simon.rit at gmail.com [mailto:simon.rit at gmail.com] P? vegne af Simon Rit Sendt: 9. september 2014 14:41 Til: Rune Slot Thing Cc: Yang Kyun Park; rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: Hi all, We have experienced the same problem as YangKyun in our institution. Find attached a screendump of a short scan, and the ElektaGeometry file. We are reconstructing on CPU using RTK 1.0.0, and have encountered the strange behavior a couple of times without being able to find any patterns. Our images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree scan with the S20 filter on an Elekta XVI machine. Hope this helps in tracking down the problem. Best regards, Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: Rtk-users [mailto:rtk-users-bounces at public.kitware.com] P? vegne af Simon Rit Sendt: 9. september 2014 07:24 Til: Yang Kyun Park Cc: rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park > wrote: Hi all, I?ve been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven?t had any problem with full scan images (360 degree scan), I found that rtkfdk doesn?t work well with my short scan images obtained from our Elekta XVI system. I?ve used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn?t change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun _______________________________________________ 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: From wuchao04 at gmail.com Wed Sep 10 07:35:27 2014 From: wuchao04 at gmail.com (Chao Wu) Date: Wed, 10 Sep 2014 13:35:27 +0200 Subject: [Rtk-users] coordinates of 3D volume Message-ID: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 08:38:43 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 14:38:43 +0200 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: Message-ID: Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu wrote: > Hi all, > > I see that rtk use certain industrial standard for the coordinates of 2D > projections and 3D volumes. However in medical imaging, the xy planes of a > volume are usually transaxial slices while the 3rd dimension is aligned > with the axis of rotation. I would like to switch to this coordinates in my > own code. Is there anyone who can give me some comments and suggestions > about where to start? Thanks. > > Regards, > Chao > > _______________________________________________ > 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: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 08:43:54 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 14:43:54 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> Message-ID: I wonder why it compiles on Linux... but anyway, sorry, it's been fixed. On Wed, Sep 10, 2014 at 10:39 AM, Rune Slot Thing wrote: > Hi Simon, > > > > I asked our IT-guy to recompile the new commit, but unfortunately he was > unsuccessful. Here is what he writes: > > > > I've downloaded the master from git today and compiled in the VS 2008 pro > 64bit on Win7 with itk 4.3.0 and fftw. > > > > The new fix does not compile because of issues on line 92-99 in > rtkParkerShortScanImageFilter.txx > > > > error C2678: binary '==' : no operator found which takes a left-hand > operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no > acceptable conversion) > > > > and on line 73 > > > > error C2923: 'itk::Vector' : > 'rtk::DaubechiesWaveletsConvolutionImageFilter::Pass' is not a > valid template type argument for parameter 'T' > f:\programmering\cxx\lib\rtk\master-2014-09-10\code\rtkDaubechiesWaveletsConvolutionImageFilter.h > 73 rtkadmmwavelets > > Is it a typo with to identical lines (LINE 93 = 94)? > > > > Thanks again for your prompt help. > > > > Best regards, > > Rune > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* simon.rit at gmail.com [mailto:simon.rit at gmail.com] *P? vegne af *Simon > Rit > *Sendt:* 9. september 2014 14:41 > *Til:* Rune Slot Thing > *Cc:* Yang Kyun Park; rtk-users at public.kitware.com > > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Thank you Rune, this was very helpful. The pattern is that several > projections have the same gantry angle on one side of the gantry angle gap. > Something that happens with Elekta Synergy... I think that the bug has been > fixed: > > https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f > > > > On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: > > Hi all, > > > > We have experienced the same problem as YangKyun in our institution. Find > attached a screendump of a short scan, and the ElektaGeometry file. We are > reconstructing on CPU using RTK 1.0.0, and have encountered the strange > behavior a couple of times without being able to find any patterns. Our > images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree > scan with the S20 filter on an Elekta XVI machine. > > > > Hope this helps in tracking down the problem. > > > > > > Best regards, > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *P? vegne > af *Simon Rit > *Sendt:* 9. september 2014 07:24 > *Til:* Yang Kyun Park > *Cc:* rtk-users at public.kitware.com > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Hi, > > Everything looks correct in what you did. What version of RTK did you use? > It looks like a bug in the angular weighting of the projections coming > from the discretization of the integral on the gantry angle. Could you send > us a copy of ElektaGeometry.xml and tell us what was the dimension of the > projections? We will look into it. > Thanks for the report, > Simon > > > > On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > > _______________________________________________ > 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: From theday79 at gmail.com Wed Sep 10 09:47:17 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Wed, 10 Sep 2014 09:47:17 -0400 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: Message-ID: <003801cfccfd$bd111800$37334800$@gmail.com> Hi Chao, I had the same issue on my work and I?ve managed to fix it by the following codes. I?m not sure this is the optimal way to do it but at least it worked in my case. (Or you can transform it in 3D Slicer. In transform menu, you need to apply the following matrix: 0 0 -1 0 1 0 0 0 0 1 0 0 0 0 0 1 to the target image, harden the transform then export the image.) Best, YangKyun // OutputImageType = // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction //Same image type from original image -3D & float OutputImageType::IndexType start_trans; start_trans[0] = 0; start_trans[1] = 0; start_trans[2] = 0; OutputImageType::SizeType size_trans; size_trans[0] = sizeOutput[0]; // X //410 size_trans[1] = sizeOutput[2]; //Y // 410 size_trans[2] = sizeOutput[1]; //Z // 120? OutputImageType::SpacingType spacing_trans; spacing_trans[0] = spacing[0]; spacing_trans[1] = spacing[2]; spacing_trans[2] = spacing[1]; OutputImageType::PointType Origin_trans; Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; OutputImageType::RegionType region_trans; region_trans.SetSize(size_trans); region_trans.SetIndex(start_trans); /* 2) Prepare Target image */ OutputImageType::Pointer targetImg = streamerBP->GetOutput(); /* 3) Configure transform */ typedef itk::Euler3DTransform< double > TransformType; TransformType::Pointer transform = TransformType::New(); TransformType::ParametersType param; param.SetSize(6); //MAXIMUM PARAM NUMBER: 6!!! param.put(0, 0.0); //rot X // 0.5 = PI/2 param.put(1, itk::Math::pi/2.0);//rot Y param.put(2, itk::Math::pi/-2.0);//rot Z param.put(3, 0.0); // Trans X mm param.put(4, 0.0); // Trans Y mm param.put(5, 0.0); // Trans Z mm TransformType::ParametersType fixedParam(3); //rotation center fixedParam.put(0,0); fixedParam.put(1,0); fixedParam.put(2,0); transform->SetParameters(param); transform->SetFixedParameters(fixedParam); //Center of the Transform cout << "Transform matrix:" << " " << endl; cout << transform->GetMatrix() << std::endl; typedef itk::ResampleImageFilter ResampleFilterType; ResampleFilterType::Pointer resampler = ResampleFilterType::New(); //OutputImageType::RegionType fixedImg_Region = fixedImg->GetLargestPossibleRegion().GetSize(); resampler->SetInput(targetImg); resampler->SetSize(size_trans); resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large Canvas resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 resampler->SetOutputDirection( targetImg->GetDirection() ); //image normal? resampler->SetTransform(transform); //LR flip cout << "LR flip filter is being applied" << endl; typedef itk::FlipImageFilter< OutputImageType > FilterType; FilterType::Pointer flipFilter = FilterType::New(); typedef FilterType::FlipAxesArrayType FlipAxesArrayType; FlipAxesArrayType arrFlipAxes; arrFlipAxes[0] = 1; arrFlipAxes[1] = 0; arrFlipAxes[2] = 0; flipFilter->SetFlipAxes(arrFlipAxes); flipFilter->SetInput(resampler->GetOutput()); flipFilter->Update(); //Use flipFilter->GetOutput() for further process From: Rtk-users [mailto:rtk-users-bounces at public.kitware.com] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 8:39 AM To: Chao Wu Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu > wrote: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao _______________________________________________ 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: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 10:50:00 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 16:50:00 +0200 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: <003801cfccfd$bd111800$37334800$@gmail.com> References: <003801cfccfd$bd111800$37334800$@gmail.com> Message-ID: This option works but there is a risk of an additional interpolation by the resampler and it costs some computing time. The other option I suggested requires to modify the transform parameter of the source (in this example, add constantImageSource->SetDirection(transform->GetMatrix()); where transform is that of Yang's example, then use itk::ChangeImageInformation to reset the transform to identity. On Wed, Sep 10, 2014 at 3:47 PM, Yang Kyun Park wrote: > Hi Chao, > > > > I had the same issue on my work and I?ve managed to fix it by the > following codes. > > I?m not sure this is the optimal way to do it but at least it worked in my > case. > > > > (Or you can transform it in 3D Slicer. > > In transform menu, you need to apply the following matrix: > > 0 0 -1 0 > > 1 0 0 0 > > 0 1 0 0 > > 0 0 0 1 > > to the target image, harden the transform then export the image.) > > > > Best, > > YangKyun > > > > > > // OutputImageType = > > // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction > > > > //Same image type from original image -3D & float > > OutputImageType::IndexType start_trans; > > start_trans[0] = 0; > > start_trans[1] = 0; > > start_trans[2] = 0; > > > > OutputImageType::SizeType size_trans; > > size_trans[0] = sizeOutput[0]; // X //410 > > size_trans[1] = sizeOutput[2]; //Y // 410 > > size_trans[2] = sizeOutput[1]; //Z // 120? > > > > OutputImageType::SpacingType spacing_trans; > > spacing_trans[0] = spacing[0]; > > spacing_trans[1] = spacing[2]; > > spacing_trans[2] = spacing[1]; > > > > OutputImageType::PointType Origin_trans; > > Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; > > Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; > > Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; > > > > OutputImageType::RegionType region_trans; > > region_trans.SetSize(size_trans); > > region_trans.SetIndex(start_trans); > > > > /* 2) Prepare Target image */ > > OutputImageType::Pointer targetImg = streamerBP->GetOutput(); > > > > /* 3) Configure transform */ > > typedef itk::Euler3DTransform< double > TransformType; > > TransformType::Pointer transform = TransformType::New(); > > > > TransformType::ParametersType param; > > param.SetSize(6); > > //MAXIMUM PARAM NUMBER: 6!!! > > param.put(0, 0.0); //rot X // 0.5 = PI/2 > > param.put(1, itk::Math::pi/2.0);//rot Y > > param.put(2, itk::Math::pi/-2.0);//rot Z > > param.put(3, 0.0); // Trans X mm > > param.put(4, 0.0); // Trans Y mm > > param.put(5, 0.0); // Trans Z mm > > > > TransformType::ParametersType fixedParam(3); //rotation center > > fixedParam.put(0,0); > > fixedParam.put(1,0); > > fixedParam.put(2,0); > > > > transform->SetParameters(param); > > transform->SetFixedParameters(fixedParam); //Center of the > Transform > > > > cout << "Transform matrix:" << " " << endl; > > cout << transform->GetMatrix() << std::endl; > > > > typedef itk::ResampleImageFilter > ResampleFilterType; > > ResampleFilterType::Pointer resampler = ResampleFilterType::New(); > > //OutputImageType::RegionType fixedImg_Region = > fixedImg->GetLargestPossibleRegion().GetSize(); > > > > resampler->SetInput(targetImg); > > resampler->SetSize(size_trans); > > resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large > Canvas > > resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 > > resampler->SetOutputDirection( targetImg->GetDirection() ); //image > normal? > > resampler->SetTransform(transform); > > > > //LR flip > > > > cout << "LR flip filter is being applied" << endl; > > > > typedef itk::FlipImageFilter< OutputImageType > FilterType; > > > > FilterType::Pointer flipFilter = FilterType::New(); > > typedef FilterType::FlipAxesArrayType FlipAxesArrayType; > > > > FlipAxesArrayType arrFlipAxes; > > arrFlipAxes[0] = 1; > > arrFlipAxes[1] = 0; > > arrFlipAxes[2] = 0; > > > > flipFilter->SetFlipAxes(arrFlipAxes); > > flipFilter->SetInput(resampler->GetOutput()); > > flipFilter->Update(); > > > > //Use flipFilter->GetOutput() for further process > > > > > > > > *From:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *On > Behalf Of *Simon Rit > *Sent:* Wednesday, September 10, 2014 8:39 AM > *To:* Chao Wu > *Cc:* rtk-users at openrtk.org > *Subject:* Re: [Rtk-users] coordinates of 3D volume > > > > Hi, > > I wish there was a single industrial standard... You have the DICOM > standard in mind and I used an IEC standard (see wiki). You can play with > the --direction option to orientate the voxel axes of your image (see > itk::Image documentation) and then reset the direction of your output image > to identity, I think that will do what you want. > > Simon > > > > On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu wrote: > > Hi all, > > > > I see that rtk use certain industrial standard for the coordinates of 2D > projections and 3D volumes. However in medical imaging, the xy planes of a > volume are usually transaxial slices while the 3rd dimension is aligned > with the axis of rotation. I would like to switch to this coordinates in my > own code. Is there anyone who can give me some comments and suggestions > about where to start? Thanks. > > > > Regards, > > Chao > > > _______________________________________________ > 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: From theday79 at gmail.com Wed Sep 10 10:56:28 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Wed, 10 Sep 2014 10:56:28 -0400 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: <003801cfccfd$bd111800$37334800$@gmail.com> Message-ID: <005e01cfcd07$6783cdb0$368b6910$@gmail.com> Hi Simon, Thanks for the good tip. Let me try out your approach too! YangKyun From: simon.rit at gmail.com [mailto:simon.rit at gmail.com] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 10:50 AM To: Yang Kyun Park Cc: Chao Wu; rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume This option works but there is a risk of an additional interpolation by the resampler and it costs some computing time. The other option I suggested requires to modify the transform parameter of the source (in this example, add constantImageSource->SetDirection(transform->GetMatrix()); where transform is that of Yang's example, then use itk::ChangeImageInformation to reset the transform to identity. On Wed, Sep 10, 2014 at 3:47 PM, Yang Kyun Park > wrote: Hi Chao, I had the same issue on my work and I?ve managed to fix it by the following codes. I?m not sure this is the optimal way to do it but at least it worked in my case. (Or you can transform it in 3D Slicer. In transform menu, you need to apply the following matrix: 0 0 -1 0 1 0 0 0 0 1 0 0 0 0 0 1 to the target image, harden the transform then export the image.) Best, YangKyun // OutputImageType = // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction //Same image type from original image -3D & float OutputImageType::IndexType start_trans; start_trans[0] = 0; start_trans[1] = 0; start_trans[2] = 0; OutputImageType::SizeType size_trans; size_trans[0] = sizeOutput[0]; // X //410 size_trans[1] = sizeOutput[2]; //Y // 410 size_trans[2] = sizeOutput[1]; //Z // 120? OutputImageType::SpacingType spacing_trans; spacing_trans[0] = spacing[0]; spacing_trans[1] = spacing[2]; spacing_trans[2] = spacing[1]; OutputImageType::PointType Origin_trans; Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; OutputImageType::RegionType region_trans; region_trans.SetSize(size_trans); region_trans.SetIndex(start_trans); /* 2) Prepare Target image */ OutputImageType::Pointer targetImg = streamerBP->GetOutput(); /* 3) Configure transform */ typedef itk::Euler3DTransform< double > TransformType; TransformType::Pointer transform = TransformType::New(); TransformType::ParametersType param; param.SetSize(6); //MAXIMUM PARAM NUMBER: 6!!! param.put(0, 0.0); //rot X // 0.5 = PI/2 param.put(1, itk::Math::pi/2.0);//rot Y param.put(2, itk::Math::pi/-2.0);//rot Z param.put(3, 0.0); // Trans X mm param.put(4, 0.0); // Trans Y mm param.put(5, 0.0); // Trans Z mm TransformType::ParametersType fixedParam(3); //rotation center fixedParam.put(0,0); fixedParam.put(1,0); fixedParam.put(2,0); transform->SetParameters(param); transform->SetFixedParameters(fixedParam); //Center of the Transform cout << "Transform matrix:" << " " << endl; cout << transform->GetMatrix() << std::endl; typedef itk::ResampleImageFilter ResampleFilterType; ResampleFilterType::Pointer resampler = ResampleFilterType::New(); //OutputImageType::RegionType fixedImg_Region = fixedImg->GetLargestPossibleRegion().GetSize(); resampler->SetInput(targetImg); resampler->SetSize(size_trans); resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large Canvas resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 resampler->SetOutputDirection( targetImg->GetDirection() ); //image normal? resampler->SetTransform(transform); //LR flip cout << "LR flip filter is being applied" << endl; typedef itk::FlipImageFilter< OutputImageType > FilterType; FilterType::Pointer flipFilter = FilterType::New(); typedef FilterType::FlipAxesArrayType FlipAxesArrayType; FlipAxesArrayType arrFlipAxes; arrFlipAxes[0] = 1; arrFlipAxes[1] = 0; arrFlipAxes[2] = 0; flipFilter->SetFlipAxes(arrFlipAxes); flipFilter->SetInput(resampler->GetOutput()); flipFilter->Update(); //Use flipFilter->GetOutput() for further process From: Rtk-users [mailto:rtk-users-bounces at public.kitware.com ] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 8:39 AM To: Chao Wu Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu > wrote: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao _______________________________________________ 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: From ghostcz at hotmail.com Mon Sep 15 08:09:46 2014 From: ghostcz at hotmail.com (ghostcz) Date: Mon, 15 Sep 2014 14:09:46 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? Message-ID: Dear Rtk users, How can I select one (or maybe more?) specific GPU to run my reconstruction? It seems if I start a second instance of the reconstruction program, it will run on the same GPU. Best regards, Louie -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Mon Sep 15 08:45:24 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Mon, 15 Sep 2014 14:45:24 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: Message-ID: Hi, Good question, I did not hear anybody working on multiple GPUs so far. It currently uses the first Cuda compatible device. I think you'll have to look up in the Cuda manual to see how to switch to another one but there is nothing available in the RTK lib yet. Don't hesitate to suggest some code changes to add this feature. Simon On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: > Dear Rtk users, > > How can I select one (or maybe more?) specific GPU to run my reconstruction? > It seems if I start a second instance of the reconstruction program, it will > run on the same GPU. > > Best regards, > Louie > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > From padraig.looney at gmail.com Tue Sep 16 10:07:05 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 16 Sep 2014 15:07:05 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: <540ED73D.3080003@creatis.insa-lyon.fr> References: <540ED73D.3080003@creatis.insa-lyon.fr> Message-ID: Thanks Cyril, Following your advice I have tracked the seg fault down to line 36 in FirstReconstruction geometry->AddProjection(sid, sdd, angle, isox, isoy); } I realised that I managed to build the examples with RTK fine and the same example runs without a seg fault in the build directory. On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory wrote: > Hi Padraig, > > With so little information, there isn't much we can do to help you. > I usually track segfaults by compiling in Debug mode (by setting > "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT > Creator (any decent IDE will do just fine, and should stop when the > segfault occurs, allowing you to trace it back) > > Good luck, > Cyril > > > On 09/09/2014 12:05 PM, Padraig Looney wrote: > > When I try to run the "FirstReconstruction" example I am getting a > segmentation fault. > > The following is the output from gdb > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () > > > > > _______________________________________________ > Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users > > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue Sep 16 10:23:07 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 16 Sep 2014 16:23:07 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: <540ED73D.3080003@creatis.insa-lyon.fr> Message-ID: <541847CB.8020807@creatis.insa-lyon.fr> Hi Padraig, Does the segfault happen at the first call of geometry->AddProjection(...) or later ? My guess is that, for some reason, geometry is not initialized. Can you make sure it is by setting a breakpoint just before ? You should also make sure that all variables involved in this call, ie "sid", "sdd", "angle", "isox" and "isoy" have reasonable values before the call. It is probably not a good question, yet I have to ask : did you modify something in the file examples/FirstReconstruction/FirstReconstruction.cxx ? Regards, Cyril On 09/16/2014 04:07 PM, Padraig Looney wrote: > Thanks Cyril, > > Following your advice I have tracked the seg fault down to line 36 in > FirstReconstruction > > geometry->AddProjection(sid, > sdd, > angle, > isox, > isoy); > } > > I realised that I managed to build the examples with RTK fine and the > same example runs without a seg fault in the build directory. > > On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory > > wrote: > > Hi Padraig, > > With so little information, there isn't much we can do to help you. > I usually track segfaults by compiling in Debug mode (by setting > "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug > in QT Creator (any decent IDE will do just fine, and should stop > when the segfault occurs, allowing you to trace it back) > > Good luck, > Cyril > > > On 09/09/2014 12:05 PM, Padraig Looney wrote: >> When I try to run the "FirstReconstruction" example I am getting >> a segmentation fault. >> >> The following is the output from gdb >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () >> >> >> >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://public.kitware.com/mailman/listinfo/rtk-users > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From padraig.looney at gmail.com Tue Sep 16 10:38:05 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 16 Sep 2014 15:38:05 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: <541847CB.8020807@creatis.insa-lyon.fr> References: <540ED73D.3080003@creatis.insa-lyon.fr> <541847CB.8020807@creatis.insa-lyon.fr> Message-ID: It happens with the first call. I set a breakpoint just before and it is not empty. I have tried to attach a screen capture of my space. Yes I thought I may have changed something but I have copied the directory twice from the original download in which it builds correctly. I cloned this with git and there are no changes. On Tue, Sep 16, 2014 at 3:23 PM, Cyril Mory wrote: > Hi Padraig, > > Does the segfault happen at the first call of geometry->AddProjection(...) > or later ? > > My guess is that, for some reason, geometry is not initialized. Can you > make sure it is by setting a breakpoint just before ? > You should also make sure that all variables involved in this call, ie > "sid", "sdd", "angle", "isox" and "isoy" have reasonable values before the > call. > > It is probably not a good question, yet I have to ask : did you modify > something in the file examples/FirstReconstruction/FirstReconstruction.cxx > ? > > Regards, > Cyril > > > On 09/16/2014 04:07 PM, Padraig Looney wrote: > > Thanks Cyril, > > Following your advice I have tracked the seg fault down to line 36 in > FirstReconstruction > > geometry->AddProjection(sid, > sdd, > angle, > isox, > isoy); > } > > I realised that I managed to build the examples with RTK fine and the > same example runs without a seg fault in the build directory. > > On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory < > cyril.mory at creatis.insa-lyon.fr> wrote: > >> Hi Padraig, >> >> With so little information, there isn't much we can do to help you. >> I usually track segfaults by compiling in Debug mode (by setting >> "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT >> Creator (any decent IDE will do just fine, and should stop when the >> segfault occurs, allowing you to trace it back) >> >> Good luck, >> Cyril >> >> >> On 09/09/2014 12:05 PM, Padraig Looney wrote: >> >> When I try to run the "FirstReconstruction" example I am getting a >> segmentation fault. >> >> The following is the output from gdb >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () >> >> >> >> >> _______________________________________________ >> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 >> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: rtkSegFaultFirstRecon.png Type: image/png Size: 273538 bytes Desc: not available URL: From cyril.mory at creatis.insa-lyon.fr Wed Sep 17 05:59:58 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Wed, 17 Sep 2014 11:59:58 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: Message-ID: <54195B9E.10000@creatis.insa-lyon.fr> Hi Louie, We have been investigating your question bit. A first possible solution, which may be sufficient for your needs, could be to set the CUDA_VISIBLE_DEVICES environment variable. You'll find details here : http://www.acceleware.com/blog/cudavisibledevices-masking-gpus Here are two scripts I used to run tests on our two-GPUs server: ######### First script ######### echo "Running two instances of rtkfdk without specifying a GPU" CUDA_VISIBLE_DEVICES="0,1" time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g geom.xml --dimension 512 & time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g geom.xml --dimension 512 & ######### Second script ######### echo "Running two instances of rtkfdk, specifying which GPU to use for each" echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash ######### End ############# On our server, which has two identical GPUs, these two scripts took the same time. It seems that, in the first script, rtkfdk somehow managed to detect that the first GPU was in use and ran on the second one. But I can't guarantee under which conditions this happens, and surely it's safer to use the second script. This is the cheapest solution. If you need more than that, and you are ready to dive into the cuda filters' code as well as into the automatic transfers between CPU and GPU memory, do not hesitate to propose modifications of the RTK code. Regards, Cyril On 09/15/2014 02:45 PM, Simon Rit wrote: > Hi, > Good question, I did not hear anybody working on multiple GPUs so far. > It currently uses the first Cuda compatible device. I think you'll > have to look up in the Cuda manual to see how to switch to another one > but there is nothing available in the RTK lib yet. Don't hesitate to > suggest some code changes to add this feature. > Simon > > On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >> Dear Rtk users, >> >> How can I select one (or maybe more?) specific GPU to run my reconstruction? >> It seems if I start a second instance of the reconstruction program, it will >> run on the same GPU. >> >> Best regards, >> Louie >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://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 > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From ghostcz at hotmail.com Wed Sep 17 11:58:47 2014 From: ghostcz at hotmail.com (ghostcz) Date: Wed, 17 Sep 2014 17:58:47 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: <54195B9E.10000@creatis.insa-lyon.fr> References: <54195B9E.10000@creatis.insa-lyon.fr> Message-ID: Dear Cyril, Thank you for the follow-up. That is indeed a faster way to realize this function. I wrote a launcher instead, where I call cuda_set_device to select the device. No, I don?t think I know CUDA good enough to manage the memory transfer between the devices. Best regards, Louie P.S. is there any training or workshop focusing on rtk application and development available? -----Original Message----- From: Cyril Mory Sent: Wednesday, September 17, 2014 11:59 AM To: Simon Rit ; ghostcz Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] How to run the reconstruction on a specific GPU? Hi Louie, We have been investigating your question bit. A first possible solution, which may be sufficient for your needs, could be to set the CUDA_VISIBLE_DEVICES environment variable. You'll find details here : http://www.acceleware.com/blog/cudavisibledevices-masking-gpus Here are two scripts I used to run tests on our two-GPUs server: ######### First script ######### echo "Running two instances of rtkfdk without specifying a GPU" CUDA_VISIBLE_DEVICES="0,1" time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g geom.xml --dimension 512 & time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g geom.xml --dimension 512 & ######### Second script ######### echo "Running two instances of rtkfdk, specifying which GPU to use for each" echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash ######### End ############# On our server, which has two identical GPUs, these two scripts took the same time. It seems that, in the first script, rtkfdk somehow managed to detect that the first GPU was in use and ran on the second one. But I can't guarantee under which conditions this happens, and surely it's safer to use the second script. This is the cheapest solution. If you need more than that, and you are ready to dive into the cuda filters' code as well as into the automatic transfers between CPU and GPU memory, do not hesitate to propose modifications of the RTK code. Regards, Cyril On 09/15/2014 02:45 PM, Simon Rit wrote: > Hi, > Good question, I did not hear anybody working on multiple GPUs so far. > It currently uses the first Cuda compatible device. I think you'll > have to look up in the Cuda manual to see how to switch to another one > but there is nothing available in the RTK lib yet. Don't hesitate to > suggest some code changes to add this feature. > Simon > > On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >> Dear Rtk users, >> >> How can I select one (or maybe more?) specific GPU to run my >> reconstruction? >> It seems if I start a second instance of the reconstruction program, it >> will >> run on the same GPU. >> >> Best regards, >> Louie >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://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 > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From lomahu at gmail.com Wed Sep 17 23:21:34 2014 From: lomahu at gmail.com (Howard) Date: Wed, 17 Sep 2014 23:21:34 -0400 Subject: [Rtk-users] bright circle on the reconstructed image Message-ID: Hi, I use rtkfdk to reconstruct varian cbct images following the example on rtk wiki page. The projections were obtained with half fan mode because it is an abdominal region with the patient lateral x AP dimension of 550x550. The reconstructed cbct images have a big bright circle around the image. Please see the image: http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html I am using Ubuntu Linux box to reconstruct. Two sequential commands were used: ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ --regexp Proj_.*.hnd -o varianGeometry and rtkfdk \ --geometry varianGeometry \ --regexp .*.hnd \ --path ../Scan0 \ --output rec.mha \ --verbose \ --spacing 2.0,2.0,2.0 \ --dimension 256,100,256 \ The projections are stored in the standard varian format: Scan0 and ProjectionInfo.xml with 644 projection images. I assume that rtkfdk handled the half fan geometry properly. What did I do wrong then? Many thanks! -howard -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 04:12:23 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 10:12:23 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: Message-ID: <541A93E7.7010301@creatis.insa-lyon.fr> Hi Howard, The bright ring artifact is typically caused by high-pass filtering (the ramp filter used in FDK) of truncated projection data (when projections have non-zero values on the sides, the edge of the projection makes a sharp transition to zero). A classical answer to this problem is to pad the projections, for example with values starting from the values on the side and slowly decreasing to zero. rtkfdk can do this padding for you. Just add "--pad 0.1" to your options (or more than 0.1 if it isn't enough). Also, I noticed that your reconstructed image seems quite noisy. You might want to use a Hann windowing of the ramp filter to reduce the noise amplification effect of high-pass filtering. You can do that by adding "--hann 0.5" to your options. Note that the argument is a cut-off frequency, so smaller values mean more smoothing. Best regards, Cyril On 09/18/2014 05:21 AM, Howard wrote: > Hi, > I use rtkfdk to reconstruct varian cbct images following the example > on rtk wiki page. The projections were obtained with half fan mode > because it is an abdominal region with the patient lateral x AP > dimension of 550x550. The reconstructed cbct images have a big > bright circle around > the image. Please see the image: > http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > I am using Ubuntu Linux box to reconstruct. Two sequential commands > were used: > ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > --regexp Proj_.*.hnd -o varianGeometry > and > rtkfdk \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output rec.mha \ > --verbose \ > --spacing 2.0,2.0,2.0 \ > --dimension 256,100,256 \ > The projections are stored in the standard varian format: Scan0 and > ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled the half fan geometry properly. What did I do wrong then? > Many thanks! > -howard > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 04:53:34 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 10:53:34 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: <54195B9E.10000@creatis.insa-lyon.fr> Message-ID: <541A9D8E.5040403@creatis.insa-lyon.fr> Hi Louie, Good that you managed to solve your problem. Your question on training made us think a bit. Here are a few answers: - At the moment, there is only a wiki, the documentation and this mailing list - We're only a handful of developers working on RTK, so it seems too early, and too much logistics, to organize real workshops or training sessions in the near future - That being said, we would like to leave the door open. Surely it is important, if we want more people to use RTK and contribute to it, that new developers can learn easily and efficiently. I'll start a specific thread on the mailing list to gather the possible requests similar to yours - RTK uses ITK to do most of the work, therefore programming in RTK essentially requires knowing ITK and knowing some tomography. ITK training sessions are organized often and in many countries I hope it helps, Cyril On 09/17/2014 05:58 PM, ghostcz wrote: > Dear Cyril, > > Thank you for the follow-up. > That is indeed a faster way to realize this function. I wrote a > launcher instead, where I call cuda_set_device to select the device. > No, I don?t think I know CUDA good enough to manage the memory > transfer between the devices. > > Best regards, > Louie > > P.S. is there any training or workshop focusing on rtk application and > development available? > > > > > -----Original Message----- From: Cyril Mory > Sent: Wednesday, September 17, 2014 11:59 AM > To: Simon Rit ; ghostcz > Cc: rtk-users at openrtk.org > Subject: Re: [Rtk-users] How to run the reconstruction on a specific GPU? > > Hi Louie, > > We have been investigating your question bit. A first possible solution, > which may be sufficient for your needs, could be to set the > CUDA_VISIBLE_DEVICES environment variable. You'll find details here : > http://www.acceleware.com/blog/cudavisibledevices-masking-gpus > > Here are two scripts I used to run tests on our two-GPUs server: > > ######### First script ######### > echo "Running two instances of rtkfdk without specifying a GPU" > CUDA_VISIBLE_DEVICES="0,1" > time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g > geom.xml --dimension 512 & > time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g > geom.xml --dimension 512 & > > ######### Second script ######### > echo "Running two instances of rtkfdk, specifying which GPU to use for > each" > echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o > fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash > echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o > fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash > > ######### End ############# > > On our server, which has two identical GPUs, these two scripts took the > same time. It seems that, in the first script, rtkfdk somehow managed to > detect that the first GPU was in use and ran on the second one. But I > can't guarantee under which conditions this happens, and surely it's > safer to use the second script. > > This is the cheapest solution. If you need more than that, and you are > ready to dive into the cuda filters' code as well as into the automatic > transfers between CPU and GPU memory, do not hesitate to propose > modifications of the RTK code. > > Regards, > Cyril > > On 09/15/2014 02:45 PM, Simon Rit wrote: >> Hi, >> Good question, I did not hear anybody working on multiple GPUs so far. >> It currently uses the first Cuda compatible device. I think you'll >> have to look up in the Cuda manual to see how to switch to another one >> but there is nothing available in the RTK lib yet. Don't hesitate to >> suggest some code changes to add this feature. >> Simon >> >> On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >>> Dear Rtk users, >>> >>> How can I select one (or maybe more?) specific GPU to run my >>> reconstruction? >>> It seems if I start a second instance of the reconstruction program, >>> it will >>> run on the same GPU. >>> >>> Best regards, >>> Louie >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://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 >> > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 05:28:42 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 11:28:42 +0200 Subject: [Rtk-users] Would you like RTK trainings ? Message-ID: <541AA5CA.9050306@creatis.insa-lyon.fr> Hi RTK users, A recent question on the mailing list by Louie triggered a conversation between us. Louie asked whether there exists some sort of training or workshop on RTK. In a nutshell, the answer is "No, not yet, but why not talk about it ?". So I'd like to start some sort of "poll" to gather the requests you might have on this topic: Do you need / want / would like a training on RTK ? If so, can you be more specific on what you would like to learn ? (basics of tomography, how to start using RTK on your data, practical issues in circular cone beam CT, motion compensated reconstruction, compressed sensing in tomography, ITK programming, ... this is not an exhaustive list) I think this is enough questions for the time being. The rest will depend on your answers. Looking forward to reading you, -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 06:08:21 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 12:08:21 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: <540ED73D.3080003@creatis.insa-lyon.fr> <541847CB.8020807@creatis.insa-lyon.fr> Message-ID: <541AAF15.9080707@creatis.insa-lyon.fr> Hi Padraig, It is puzzling, as the code is simple and we have many machines on which it works without problem. So let's explore the weirder options : - In one of your previous emails, you mentioned that "the same example runs without a seg fault in the build directory". What does that mean ? - Can you go into your build directory, run "make test", and post the result of the tests ? - Have you tried installing RTK on another machine ? Regards, Cyril On 09/16/2014 04:38 PM, Padraig Looney wrote: > It happens with the first call. > > I set a breakpoint just before and it is not empty. I have tried to > attach a screen capture of my space. > > Yes I thought I may have changed something but I have copied the > directory twice from the original download in which it builds > correctly. I cloned this with git and there are no changes. > > > On Tue, Sep 16, 2014 at 3:23 PM, Cyril Mory > > wrote: > > Hi Padraig, > > Does the segfault happen at the first call of > geometry->AddProjection(...) or later ? > > My guess is that, for some reason, geometry is not initialized. > Can you make sure it is by setting a breakpoint just before ? > You should also make sure that all variables involved in this > call, ie "sid", "sdd", "angle", "isox" and "isoy" have reasonable > values before the call. > > It is probably not a good question, yet I have to ask : did you > modify something in the file > examples/FirstReconstruction/FirstReconstruction.cxx ? > > Regards, > Cyril > > > On 09/16/2014 04:07 PM, Padraig Looney wrote: >> Thanks Cyril, >> >> Following your advice I have tracked the seg fault down to line >> 36 in FirstReconstruction >> >> geometry->AddProjection(sid, >> sdd, >> angle, >> isox, >> isoy); >> } >> >> I realised that I managed to build the examples with RTK fine and >> the same example runs without a seg fault in the build directory. >> >> On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory >> > > wrote: >> >> Hi Padraig, >> >> With so little information, there isn't much we can do to >> help you. >> I usually track segfaults by compiling in Debug mode (by >> setting "CMAKE_BUILD_TYPE" to "Debug"), then running the >> program in debug in QT Creator (any decent IDE will do just >> fine, and should stop when the segfault occurs, allowing you >> to trace it back) >> >> Good luck, >> Cyril >> >> >> On 09/09/2014 12:05 PM, Padraig Looney wrote: >>> When I try to run the "FirstReconstruction" example I am >>> getting a segmentation fault. >>> >>> The following is the output from gdb >>> >>> Program received signal SIGSEGV, Segmentation fault. >>> 0x00000000004952d7 in typeinfo for >>> rtk::ProjectionGeometry<3u> () >>> >>> >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://public.kitware.com/mailman/listinfo/rtk-users >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile:+33 6 69 46 73 79 >> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Thu Sep 18 09:47:40 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Thu, 18 Sep 2014 15:47:40 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: <541A93E7.7010301@creatis.insa-lyon.fr> References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: Hi, I fully agree with Cyril. Something else : you might want to mask out what is outside the field-of-view using the rtkfieldofview executable. Your ring corresponds to that border. See an example here: http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction Simon On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < cyril.mory at creatis.insa-lyon.fr> wrote: > Hi Howard, > > The bright ring artifact is typically caused by high-pass filtering (the > ramp filter used in FDK) of truncated projection data (when projections > have non-zero values on the sides, the edge of the projection makes a sharp > transition to zero). A classical answer to this problem is to pad the > projections, for example with values starting from the values on the side > and slowly decreasing to zero. > > rtkfdk can do this padding for you. Just add "--pad 0.1" to your options > (or more than 0.1 if it isn't enough). > Also, I noticed that your reconstructed image seems quite noisy. You might > want to use a Hann windowing of the ramp filter to reduce the noise > amplification effect of high-pass filtering. You can do that by adding > "--hann 0.5" to your options. Note that the argument is a cut-off > frequency, so smaller values mean more smoothing. > > Best regards, > Cyril > > > On 09/18/2014 05:21 AM, Howard wrote: > > Hi, > > I use rtkfdk to reconstruct varian cbct images following the example on > rtk wiki page. The projections were obtained with half fan mode because it > is an abdominal region with the patient lateral x AP dimension of 550x550. > The reconstructed cbct images have a big bright circle around > the image. Please see the image: > http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > > I am using Ubuntu Linux box to reconstruct. Two sequential commands were > used: > > ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > --regexp Proj_.*.hnd -o varianGeometry > and > > rtkfdk \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output rec.mha \ > --verbose \ > --spacing 2.0,2.0,2.0 \ > --dimension 256,100,256 \ > The projections are stored in the standard varian format: Scan0 and > ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled the half fan geometry properly. What did I do wrong then? Many > thanks! > > -howard > > > _______________________________________________ > Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users > > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > > _______________________________________________ > 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: From lomahu at gmail.com Thu Sep 18 10:47:17 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 10:47:17 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: Thanks very much, Cyril & Simon. Now the fdk reconstruction is working beautifully. Jus another quick question: for rtksart executable, are we still able to do padding and hanning window trick as well? On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit wrote: > Hi, > I fully agree with Cyril. Something else : you might want to mask out what > is outside the field-of-view using the rtkfieldofview executable. Your ring > corresponds to that border. See an example here: > http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > Simon > > On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < > cyril.mory at creatis.insa-lyon.fr> wrote: > >> Hi Howard, >> >> The bright ring artifact is typically caused by high-pass filtering (the >> ramp filter used in FDK) of truncated projection data (when projections >> have non-zero values on the sides, the edge of the projection makes a sharp >> transition to zero). A classical answer to this problem is to pad the >> projections, for example with values starting from the values on the side >> and slowly decreasing to zero. >> >> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >> (or more than 0.1 if it isn't enough). >> Also, I noticed that your reconstructed image seems quite noisy. You >> might want to use a Hann windowing of the ramp filter to reduce the noise >> amplification effect of high-pass filtering. You can do that by adding >> "--hann 0.5" to your options. Note that the argument is a cut-off >> frequency, so smaller values mean more smoothing. >> >> Best regards, >> Cyril >> >> >> On 09/18/2014 05:21 AM, Howard wrote: >> >> Hi, >> >> I use rtkfdk to reconstruct varian cbct images following the example on >> rtk wiki page. The projections were obtained with half fan mode because it >> is an abdominal region with the patient lateral x AP dimension of 550x550. >> The reconstructed cbct images have a big bright circle around >> the image. Please see the image: >> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> >> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >> used: >> >> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >> --regexp Proj_.*.hnd -o varianGeometry >> and >> >> rtkfdk \ >> --geometry varianGeometry \ >> --regexp .*.hnd \ >> --path ../Scan0 \ >> --output rec.mha \ >> --verbose \ >> --spacing 2.0,2.0,2.0 \ >> --dimension 256,100,256 \ >> The projections are stored in the standard varian format: Scan0 and >> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >> handled the half fan geometry properly. What did I do wrong then? Many >> thanks! >> >> -howard >> >> >> _______________________________________________ >> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 >> >> >> _______________________________________________ >> 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: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 10:59:53 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 16:59:53 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: <541AF369.9090403@creatis.insa-lyon.fr> Howard, For SART reconstructions, you do not need padding, and you can't do Hann windowing because no ramp filtering is applied. SART usually outputs smoother images, so you probably will not need this denoising trick anyway. However, you should be careful about one thing : your object has to be fully contained in the reconstructed volume, or you will observe important border effects. Use the --dimension, --spacing and --origin options to ensure this. All the best, Cyril On 09/18/2014 04:47 PM, Howard wrote: > Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > beautifully. Jus another quick question: for rtksart executable, are > we still able to do padding and hanning window trick as well? > > On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > > wrote: > > Hi, > I fully agree with Cyril. Something else : you might want to mask > out what is outside the field-of-view using the rtkfieldofview > executable. Your ring corresponds to that border. See an example here: > http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > Simon > > On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory > > wrote: > > Hi Howard, > > The bright ring artifact is typically caused by high-pass > filtering (the ramp filter used in FDK) of truncated > projection data (when projections have non-zero values on the > sides, the edge of the projection makes a sharp transition to > zero). A classical answer to this problem is to pad the > projections, for example with values starting from the values > on the side and slowly decreasing to zero. > > rtkfdk can do this padding for you. Just add "--pad 0.1" to > your options (or more than 0.1 if it isn't enough). > Also, I noticed that your reconstructed image seems quite > noisy. You might want to use a Hann windowing of the ramp > filter to reduce the noise amplification effect of high-pass > filtering. You can do that by adding "--hann 0.5" to your > options. Note that the argument is a cut-off frequency, so > smaller values mean more smoothing. > > Best regards, > Cyril > > > On 09/18/2014 05:21 AM, Howard wrote: >> Hi, >> I use rtkfdk to reconstruct varian cbct images following the >> example on rtk wiki page. The projections were obtained with >> half fan mode because it is an abdominal region with the >> patient lateral x AP dimension of 550x550. The reconstructed >> cbct images have a big bright circle around >> the image. Please see the image: >> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> I am using Ubuntu Linux box to reconstruct. Two sequential >> commands were used: >> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path >> Scan0/ --regexp Proj_.*.hnd -o varianGeometry >> and >> rtkfdk \ >> --geometry varianGeometry \ >> --regexp .*.hnd \ >> --path ../Scan0 \ >> --output rec.mha \ >> --verbose \ >> --spacing 2.0,2.0,2.0 \ >> --dimension 256,100,256 \ >> The projections are stored in the standard varian format: >> Scan0 and ProjectionInfo.xml with 644 projection images. I >> assume that rtkfdk handled the half fan geometry properly. >> What did I do wrong then? Many thanks! >> -howard >> >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://public.kitware.com/mailman/listinfo/rtk-users > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From lomahu at gmail.com Thu Sep 18 13:03:52 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 13:03:52 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: <541AF369.9090403@creatis.insa-lyon.fr> References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Cyril, I am testing SART reconstruction according to what you described, specifying dimension, spacing and origin: rtksart \ --geometry varianGeometry \ --regexp .*.hnd \ --path ../Scan0 \ --output sart_rec.mha \ --verbose \ --spacing 2.0\ --dimension 128,100,128 \ --origin -127.5,-99,-127.5 but the reconstruction gave a plain image with no object/contrast. I checked the grayscale values on the reconstructed images and did see they ranged from -1.78 to 3 (this may not be precise but give you some idea). I tried to adjust window level but couldn't see any contrast. I must miss something here. Please advise. Thanks! -howard On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory < cyril.mory at creatis.insa-lyon.fr> wrote: > Howard, > > For SART reconstructions, you do not need padding, and you can't do Hann > windowing because no ramp filtering is applied. SART usually outputs > smoother images, so you probably will not need this denoising trick anyway. > However, you should be careful about one thing : your object has to be > fully contained in the reconstructed volume, or you will observe important > border effects. Use the --dimension, --spacing and --origin options to > ensure this. > > All the best, > Cyril > > > On 09/18/2014 04:47 PM, Howard wrote: > > Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > beautifully. Jus another quick question: for rtksart executable, are we > still able to do padding and hanning window trick as well? > > On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > wrote: > >> Hi, >> I fully agree with Cyril. Something else : you might want to mask out >> what is outside the field-of-view using the rtkfieldofview executable. Your >> ring corresponds to that border. See an example here: >> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >> Simon >> >> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < >> cyril.mory at creatis.insa-lyon.fr> wrote: >> >>> Hi Howard, >>> >>> The bright ring artifact is typically caused by high-pass filtering (the >>> ramp filter used in FDK) of truncated projection data (when projections >>> have non-zero values on the sides, the edge of the projection makes a sharp >>> transition to zero). A classical answer to this problem is to pad the >>> projections, for example with values starting from the values on the side >>> and slowly decreasing to zero. >>> >>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >>> (or more than 0.1 if it isn't enough). >>> Also, I noticed that your reconstructed image seems quite noisy. You >>> might want to use a Hann windowing of the ramp filter to reduce the noise >>> amplification effect of high-pass filtering. You can do that by adding >>> "--hann 0.5" to your options. Note that the argument is a cut-off >>> frequency, so smaller values mean more smoothing. >>> >>> Best regards, >>> Cyril >>> >>> >>> On 09/18/2014 05:21 AM, Howard wrote: >>> >>> Hi, >>> >>> I use rtkfdk to reconstruct varian cbct images following the example on >>> rtk wiki page. The projections were obtained with half fan mode because it >>> is an abdominal region with the patient lateral x AP dimension of 550x550. >>> The reconstructed cbct images have a big bright circle around >>> the image. Please see the image: >>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >>> >>> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >>> used: >>> >>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >>> --regexp Proj_.*.hnd -o varianGeometry >>> and >>> >>> rtkfdk \ >>> --geometry varianGeometry \ >>> --regexp .*.hnd \ >>> --path ../Scan0 \ >>> --output rec.mha \ >>> --verbose \ >>> --spacing 2.0,2.0,2.0 \ >>> --dimension 256,100,256 \ >>> The projections are stored in the standard varian format: Scan0 and >>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >>> handled the half fan geometry properly. What did I do wrong then? Many >>> thanks! >>> >>> -howard >>> >>> >>> _______________________________________________ >>> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >>> -- >>> -- >>> Cyril Mory, Post-doc >>> CREATIS >>> Leon Berard cancer treatment center >>> 28 rue La?nnec >>> 69373 Lyon cedex 08 FRANCE >>> >>> Mobile: +33 6 69 46 73 79 >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Thu Sep 18 16:41:10 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Thu, 18 Sep 2014 22:41:10 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Howard, Assuming you're using the same dataset as the one you used for the rtkfdk test, you have decreased its size. For example, x was 2*256 mm with rtkfdk and it is now 128*2. On the slice you sent, we could see that a part of the phantom on the right was missing so you should keep the same size except for this side that should be larger, certainly not reduce the size. For the display, I would suggest to use the same window/level as for your FDK reconstruction. The two reconstruction algorithms reconstruct the same average intensities, only the texture is different. Good luck, Simon On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: > Hi Cyril, > > I am testing SART reconstruction according to what you described, specifying > dimension, spacing and origin: > > rtksart \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output sart_rec.mha \ > --verbose \ > --spacing 2.0\ > --dimension 128,100,128 \ > --origin -127.5,-99,-127.5 > > but the reconstruction gave a plain image with no object/contrast. I checked > the grayscale values on the reconstructed images and did see they ranged > from -1.78 to 3 (this may not be precise but give you some idea). I tried to > adjust window level but couldn't see any contrast. I must miss something > here. Please advise. Thanks! > > -howard > > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory > wrote: >> >> Howard, >> >> For SART reconstructions, you do not need padding, and you can't do Hann >> windowing because no ramp filtering is applied. SART usually outputs >> smoother images, so you probably will not need this denoising trick anyway. >> However, you should be careful about one thing : your object has to be >> fully contained in the reconstructed volume, or you will observe important >> border effects. Use the --dimension, --spacing and --origin options to >> ensure this. >> >> All the best, >> Cyril >> >> >> On 09/18/2014 04:47 PM, Howard wrote: >> >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working >> beautifully. Jus another quick question: for rtksart executable, are we >> still able to do padding and hanning window trick as well? >> >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit >> wrote: >>> >>> Hi, >>> I fully agree with Cyril. Something else : you might want to mask out >>> what is outside the field-of-view using the rtkfieldofview executable. Your >>> ring corresponds to that border. See an example here: >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >>> Simon >>> >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory >>> wrote: >>>> >>>> Hi Howard, >>>> >>>> The bright ring artifact is typically caused by high-pass filtering (the >>>> ramp filter used in FDK) of truncated projection data (when projections have >>>> non-zero values on the sides, the edge of the projection makes a sharp >>>> transition to zero). A classical answer to this problem is to pad the >>>> projections, for example with values starting from the values on the side >>>> and slowly decreasing to zero. >>>> >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >>>> (or more than 0.1 if it isn't enough). >>>> Also, I noticed that your reconstructed image seems quite noisy. You >>>> might want to use a Hann windowing of the ramp filter to reduce the noise >>>> amplification effect of high-pass filtering. You can do that by adding >>>> "--hann 0.5" to your options. Note that the argument is a cut-off frequency, >>>> so smaller values mean more smoothing. >>>> >>>> Best regards, >>>> Cyril >>>> >>>> >>>> On 09/18/2014 05:21 AM, Howard wrote: >>>> >>>> Hi, >>>> >>>> I use rtkfdk to reconstruct varian cbct images following the example on >>>> rtk wiki page. The projections were obtained with half fan mode because it >>>> is an abdominal region with the patient lateral x AP dimension of 550x550. >>>> The reconstructed cbct images have a big bright circle around >>>> the image. Please see the image: >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >>>> >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >>>> used: >>>> >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >>>> --regexp Proj_.*.hnd -o varianGeometry >>>> and >>>> >>>> rtkfdk \ >>>> --geometry varianGeometry \ >>>> --regexp .*.hnd \ >>>> --path ../Scan0 \ >>>> --output rec.mha \ >>>> --verbose \ >>>> --spacing 2.0,2.0,2.0 \ >>>> --dimension 256,100,256 \ >>>> The projections are stored in the standard varian format: Scan0 and >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk handled >>>> the half fan geometry properly. What did I do wrong then? Many thanks! >>>> >>>> -howard >>>> >>>> >>>> _______________________________________________ >>>> Rtk-users mailing list >>>> Rtk-users at public.kitware.com >>>> http://public.kitware.com/mailman/listinfo/rtk-users >>>> >>>> >>>> -- >>>> -- >>>> Cyril Mory, Post-doc >>>> CREATIS >>>> Leon Berard cancer treatment center >>>> 28 rue La?nnec >>>> 69373 Lyon cedex 08 FRANCE >>>> >>>> Mobile: +33 6 69 46 73 79 >>>> >>>> >>>> _______________________________________________ >>>> Rtk-users mailing list >>>> Rtk-users at public.kitware.com >>>> http://public.kitware.com/mailman/listinfo/rtk-users >>>> >>> >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 > > From lomahu at gmail.com Thu Sep 18 17:47:51 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 17:47:51 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Simon, I apologize for the confusion about the dataset. Actually I did not use the same dataset. The reason is that the set I used for rtkfdk test had 644 projections and with it rtksart crashed because of memory (I only allocated 3GB memory to Virtualbox from my window7). So for the SART test I changed to a small projection set (366 projections) where the object is a cube with dimension of 5cm x 5cm x 5cm. That's why I chose a smaller reconstruction size 128*2. With the same dataset when I ran rtkfdk I got very good reconstruction. -howard On Thu, Sep 18, 2014 at 4:41 PM, Simon Rit wrote: > Hi Howard, > Assuming you're using the same dataset as the one you used for the > rtkfdk test, you have decreased its size. For example, x was 2*256 mm > with rtkfdk and it is now 128*2. On the slice you sent, we could see > that a part of the phantom on the right was missing so you should keep > the same size except for this side that should be larger, certainly > not reduce the size. > For the display, I would suggest to use the same window/level as for > your FDK reconstruction. The two reconstruction algorithms reconstruct > the same average intensities, only the texture is different. > Good luck, > Simon > > On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: > > Hi Cyril, > > > > I am testing SART reconstruction according to what you described, > specifying > > dimension, spacing and origin: > > > > rtksart \ > > --geometry varianGeometry \ > > --regexp .*.hnd \ > > --path ../Scan0 \ > > --output sart_rec.mha \ > > --verbose \ > > --spacing 2.0\ > > --dimension 128,100,128 \ > > --origin -127.5,-99,-127.5 > > > > but the reconstruction gave a plain image with no object/contrast. I > checked > > the grayscale values on the reconstructed images and did see they ranged > > from -1.78 to 3 (this may not be precise but give you some idea). I > tried to > > adjust window level but couldn't see any contrast. I must miss something > > here. Please advise. Thanks! > > > > -howard > > > > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory > > wrote: > >> > >> Howard, > >> > >> For SART reconstructions, you do not need padding, and you can't do Hann > >> windowing because no ramp filtering is applied. SART usually outputs > >> smoother images, so you probably will not need this denoising trick > anyway. > >> However, you should be careful about one thing : your object has to be > >> fully contained in the reconstructed volume, or you will observe > important > >> border effects. Use the --dimension, --spacing and --origin options to > >> ensure this. > >> > >> All the best, > >> Cyril > >> > >> > >> On 09/18/2014 04:47 PM, Howard wrote: > >> > >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > >> beautifully. Jus another quick question: for rtksart executable, are we > >> still able to do padding and hanning window trick as well? > >> > >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > >> wrote: > >>> > >>> Hi, > >>> I fully agree with Cyril. Something else : you might want to mask out > >>> what is outside the field-of-view using the rtkfieldofview executable. > Your > >>> ring corresponds to that border. See an example here: > >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > >>> Simon > >>> > >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory > >>> wrote: > >>>> > >>>> Hi Howard, > >>>> > >>>> The bright ring artifact is typically caused by high-pass filtering > (the > >>>> ramp filter used in FDK) of truncated projection data (when > projections have > >>>> non-zero values on the sides, the edge of the projection makes a sharp > >>>> transition to zero). A classical answer to this problem is to pad the > >>>> projections, for example with values starting from the values on the > side > >>>> and slowly decreasing to zero. > >>>> > >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your > options > >>>> (or more than 0.1 if it isn't enough). > >>>> Also, I noticed that your reconstructed image seems quite noisy. You > >>>> might want to use a Hann windowing of the ramp filter to reduce the > noise > >>>> amplification effect of high-pass filtering. You can do that by adding > >>>> "--hann 0.5" to your options. Note that the argument is a cut-off > frequency, > >>>> so smaller values mean more smoothing. > >>>> > >>>> Best regards, > >>>> Cyril > >>>> > >>>> > >>>> On 09/18/2014 05:21 AM, Howard wrote: > >>>> > >>>> Hi, > >>>> > >>>> I use rtkfdk to reconstruct varian cbct images following the example > on > >>>> rtk wiki page. The projections were obtained with half fan mode > because it > >>>> is an abdominal region with the patient lateral x AP dimension of > 550x550. > >>>> The reconstructed cbct images have a big bright circle around > >>>> the image. Please see the image: > >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > >>>> > >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands > were > >>>> used: > >>>> > >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > >>>> --regexp Proj_.*.hnd -o varianGeometry > >>>> and > >>>> > >>>> rtkfdk \ > >>>> --geometry varianGeometry \ > >>>> --regexp .*.hnd \ > >>>> --path ../Scan0 \ > >>>> --output rec.mha \ > >>>> --verbose \ > >>>> --spacing 2.0,2.0,2.0 \ > >>>> --dimension 256,100,256 \ > >>>> The projections are stored in the standard varian format: Scan0 and > >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled > >>>> the half fan geometry properly. What did I do wrong then? Many > thanks! > >>>> > >>>> -howard > >>>> > >>>> > >>>> _______________________________________________ > >>>> Rtk-users mailing list > >>>> Rtk-users at public.kitware.com > >>>> http://public.kitware.com/mailman/listinfo/rtk-users > >>>> > >>>> > >>>> -- > >>>> -- > >>>> Cyril Mory, Post-doc > >>>> CREATIS > >>>> Leon Berard cancer treatment center > >>>> 28 rue La?nnec > >>>> 69373 Lyon cedex 08 FRANCE > >>>> > >>>> Mobile: +33 6 69 46 73 79 > >>>> > >>>> > >>>> _______________________________________________ > >>>> Rtk-users mailing list > >>>> Rtk-users at public.kitware.com > >>>> http://public.kitware.com/mailman/listinfo/rtk-users > >>>> > >>> > >> > >> > >> -- > >> -- > >> Cyril Mory, Post-doc > >> CREATIS > >> Leon Berard cancer treatment center > >> 28 rue La?nnec > >> 69373 Lyon cedex 08 FRANCE > >> > >> Mobile: +33 6 69 46 73 79 > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lomahu at gmail.com Thu Sep 18 22:53:45 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 22:53:45 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Simon, It appears I have to apologize again and take back the question about the SART reconstruction. I re-ran on the big data set (644 projections). This time no memory issue and SART worked well. For some reason it did not work on the small set initially. I should have run more tests before posting here. Sorry about the noise and thanks a lot for looking into the "issues". -howard On Thu, Sep 18, 2014 at 5:47 PM, Howard wrote: > Hi Simon, > > I apologize for the confusion about the dataset. Actually I did not use > the same dataset. > The reason is that the set I used for rtkfdk test had 644 projections and > with it rtksart > crashed because of memory (I only allocated 3GB memory to Virtualbox from > my window7). > So for the SART test I changed to a small projection set (366 projections) > where the object is > a cube with dimension of 5cm x 5cm x 5cm. That's why I chose a smaller > reconstruction > size 128*2. With the same dataset when I ran rtkfdk I got very good > reconstruction. > > -howard > > On Thu, Sep 18, 2014 at 4:41 PM, Simon Rit > wrote: > >> Hi Howard, >> Assuming you're using the same dataset as the one you used for the >> rtkfdk test, you have decreased its size. For example, x was 2*256 mm >> with rtkfdk and it is now 128*2. On the slice you sent, we could see >> that a part of the phantom on the right was missing so you should keep >> the same size except for this side that should be larger, certainly >> not reduce the size. >> For the display, I would suggest to use the same window/level as for >> your FDK reconstruction. The two reconstruction algorithms reconstruct >> the same average intensities, only the texture is different. >> Good luck, >> Simon >> >> On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: >> > Hi Cyril, >> > >> > I am testing SART reconstruction according to what you described, >> specifying >> > dimension, spacing and origin: >> > >> > rtksart \ >> > --geometry varianGeometry \ >> > --regexp .*.hnd \ >> > --path ../Scan0 \ >> > --output sart_rec.mha \ >> > --verbose \ >> > --spacing 2.0\ >> > --dimension 128,100,128 \ >> > --origin -127.5,-99,-127.5 >> > >> > but the reconstruction gave a plain image with no object/contrast. I >> checked >> > the grayscale values on the reconstructed images and did see they ranged >> > from -1.78 to 3 (this may not be precise but give you some idea). I >> tried to >> > adjust window level but couldn't see any contrast. I must miss something >> > here. Please advise. Thanks! >> > >> > -howard >> > >> > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory >> > wrote: >> >> >> >> Howard, >> >> >> >> For SART reconstructions, you do not need padding, and you can't do >> Hann >> >> windowing because no ramp filtering is applied. SART usually outputs >> >> smoother images, so you probably will not need this denoising trick >> anyway. >> >> However, you should be careful about one thing : your object has to be >> >> fully contained in the reconstructed volume, or you will observe >> important >> >> border effects. Use the --dimension, --spacing and --origin options to >> >> ensure this. >> >> >> >> All the best, >> >> Cyril >> >> >> >> >> >> On 09/18/2014 04:47 PM, Howard wrote: >> >> >> >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working >> >> beautifully. Jus another quick question: for rtksart executable, are we >> >> still able to do padding and hanning window trick as well? >> >> >> >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit >> >> wrote: >> >>> >> >>> Hi, >> >>> I fully agree with Cyril. Something else : you might want to mask out >> >>> what is outside the field-of-view using the rtkfieldofview >> executable. Your >> >>> ring corresponds to that border. See an example here: >> >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >> >>> Simon >> >>> >> >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory >> >>> wrote: >> >>>> >> >>>> Hi Howard, >> >>>> >> >>>> The bright ring artifact is typically caused by high-pass filtering >> (the >> >>>> ramp filter used in FDK) of truncated projection data (when >> projections have >> >>>> non-zero values on the sides, the edge of the projection makes a >> sharp >> >>>> transition to zero). A classical answer to this problem is to pad the >> >>>> projections, for example with values starting from the values on the >> side >> >>>> and slowly decreasing to zero. >> >>>> >> >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your >> options >> >>>> (or more than 0.1 if it isn't enough). >> >>>> Also, I noticed that your reconstructed image seems quite noisy. You >> >>>> might want to use a Hann windowing of the ramp filter to reduce the >> noise >> >>>> amplification effect of high-pass filtering. You can do that by >> adding >> >>>> "--hann 0.5" to your options. Note that the argument is a cut-off >> frequency, >> >>>> so smaller values mean more smoothing. >> >>>> >> >>>> Best regards, >> >>>> Cyril >> >>>> >> >>>> >> >>>> On 09/18/2014 05:21 AM, Howard wrote: >> >>>> >> >>>> Hi, >> >>>> >> >>>> I use rtkfdk to reconstruct varian cbct images following the example >> on >> >>>> rtk wiki page. The projections were obtained with half fan mode >> because it >> >>>> is an abdominal region with the patient lateral x AP dimension of >> 550x550. >> >>>> The reconstructed cbct images have a big bright circle around >> >>>> the image. Please see the image: >> >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> >>>> >> >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands >> were >> >>>> used: >> >>>> >> >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >> >>>> --regexp Proj_.*.hnd -o varianGeometry >> >>>> and >> >>>> >> >>>> rtkfdk \ >> >>>> --geometry varianGeometry \ >> >>>> --regexp .*.hnd \ >> >>>> --path ../Scan0 \ >> >>>> --output rec.mha \ >> >>>> --verbose \ >> >>>> --spacing 2.0,2.0,2.0 \ >> >>>> --dimension 256,100,256 \ >> >>>> The projections are stored in the standard varian format: Scan0 and >> >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >> handled >> >>>> the half fan geometry properly. What did I do wrong then? Many >> thanks! >> >>>> >> >>>> -howard >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> Rtk-users mailing list >> >>>> Rtk-users at public.kitware.com >> >>>> http://public.kitware.com/mailman/listinfo/rtk-users >> >>>> >> >>>> >> >>>> -- >> >>>> -- >> >>>> Cyril Mory, Post-doc >> >>>> CREATIS >> >>>> Leon Berard cancer treatment center >> >>>> 28 rue La?nnec >> >>>> 69373 Lyon cedex 08 FRANCE >> >>>> >> >>>> Mobile: +33 6 69 46 73 79 >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> Rtk-users mailing list >> >>>> Rtk-users at public.kitware.com >> >>>> http://public.kitware.com/mailman/listinfo/rtk-users >> >>>> >> >>> >> >> >> >> >> >> -- >> >> -- >> >> Cyril Mory, Post-doc >> >> CREATIS >> >> Leon Berard cancer treatment center >> >> 28 rue La?nnec >> >> 69373 Lyon cedex 08 FRANCE >> >> >> >> Mobile: +33 6 69 46 73 79 >> > >> > >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ucabba1 at ucl.ac.uk Fri Sep 19 07:04:49 2014 From: ucabba1 at ucl.ac.uk (Ben Champion) Date: Fri, 19 Sep 2014 12:04:49 +0100 Subject: [Rtk-users] Would you like RTK trainings ? In-Reply-To: <541AA5CA.9050306@creatis.insa-lyon.fr> References: <541AA5CA.9050306@creatis.insa-lyon.fr> Message-ID: <541C0DD1.4070203@ucl.ac.uk> Hi Cyril, Having used RTK (and ITK) for approximately 1 year now, I have learnt mainly by trial and error, and by reading the source code and wiki examples. (Aside: many thanks to the RTK community for these!) Nevertheless, I think I could benefit from some kind of RTK training for my future work. The kinds of topics that would be most interesting to me are: - theory/use of reconstruction methods other than FDK (e.g. SART, 4D ROOSTER, ...) - motion compensated reconstruction - compressed sensing in tomography - extending RTK (and contributing back to the community) That said, I would not be averse to at least some discussion of "basics of tomography", "starting to use RTK with your own data", and "practical issues in circular CBCT" and in fact it could help fill some gaps in my knowledge. Best wishes, Ben -- Doctoral Student (MRes/EngD) Centre for Medical Image Computing University College London Room 3.01 Engineering Front Building Torrington Place LONDON WC1E 7JE On 18/09/14 10:28, Cyril Mory wrote: > Hi RTK users, > > A recent question on the mailing list by Louie triggered a > conversation between us. Louie asked whether there exists some sort of > training or workshop on RTK. In a nutshell, the answer is "No, not > yet, but why not talk about it ?". > > So I'd like to start some sort of "poll" to gather the requests you > might have on this topic: > Do you need / want / would like a training on RTK ? > If so, can you be more specific on what you would like to learn ? > (basics of tomography, how to start using RTK on your data, practical > issues in circular cone beam CT, motion compensated reconstruction, > compressed sensing in tomography, ITK programming, ... this is not an > exhaustive list) > > I think this is enough questions for the time being. The rest will > depend on your answers. > > Looking forward to reading you, > From lomahu at gmail.com Fri Sep 19 09:47:58 2014 From: lomahu at gmail.com (Howard) Date: Fri, 19 Sep 2014 09:47:58 -0400 Subject: [Rtk-users] Would you like RTK trainings ? In-Reply-To: <541C0DD1.4070203@ucl.ac.uk> References: <541AA5CA.9050306@creatis.insa-lyon.fr> <541C0DD1.4070203@ucl.ac.uk> Message-ID: Hi Cyril, It would be extremely helpful to have an RTK training. As Ben listed, I have similar interests. The topics I am very interested in are the following: 1. Basic principles of reconstruction with FDK and SART 2. Coding framework in RTK 3. Practical examples using iterative reconstruction technique 4. Compressed sensing applications in reconstruction 5. Practical issues in reconstruction specially CBCT reconstruction. Thanks! -howard On Fri, Sep 19, 2014 at 7:04 AM, Ben Champion wrote: > Hi Cyril, > > Having used RTK (and ITK) for approximately 1 year now, I have learnt > mainly by trial and error, and by reading the source code and wiki > examples. (Aside: many thanks to the RTK community for these!) > > Nevertheless, I think I could benefit from some kind of RTK training for > my future work. The kinds of topics that would be most interesting to me > are: > > - theory/use of reconstruction methods other than FDK (e.g. SART, 4D > ROOSTER, ...) > - motion compensated reconstruction > - compressed sensing in tomography > - extending RTK (and contributing back to the community) > > That said, I would not be averse to at least some discussion of "basics of > tomography", "starting to use RTK with your own data", and "practical > issues in circular CBCT" and in fact it could help fill some gaps in my > knowledge. > > Best wishes, > > Ben > -- > Doctoral Student (MRes/EngD) > Centre for Medical Image Computing > University College London > Room 3.01 Engineering Front Building > Torrington Place > LONDON > WC1E 7JE > > > > On 18/09/14 10:28, Cyril Mory wrote: > >> Hi RTK users, >> >> A recent question on the mailing list by Louie triggered a conversation >> between us. Louie asked whether there exists some sort of training or >> workshop on RTK. In a nutshell, the answer is "No, not yet, but why not >> talk about it ?". >> >> So I'd like to start some sort of "poll" to gather the requests you might >> have on this topic: >> Do you need / want / would like a training on RTK ? >> If so, can you be more specific on what you would like to learn ? (basics >> of tomography, how to start using RTK on your data, practical issues in >> circular cone beam CT, motion compensated reconstruction, compressed >> sensing in tomography, ITK programming, ... this is not an exhaustive list) >> >> I think this is enough questions for the time being. The rest will depend >> on your answers. >> >> Looking forward to reading you, >> >> > _______________________________________________ > 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: From padraig.looney at gmail.com Mon Sep 8 08:43:27 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Mon, 8 Sep 2014 13:43:27 +0100 Subject: [Rtk-users] RTK helloworld Message-ID: Dear all, I am trying to get the HelloWorld example running but I get a large number of errors after the build. I am using ITK-4.6 and have followed the instructions as per http://wiki.openrtk.org/index.php/RTK_wiki_help#Tutorial_0_-_Building_an_HelloWorld_application_with_RTK My executable is built and is working but I have hundreds of errors. The first few are. CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::MemoryAllocationError::MemoryAllocationError(std::string const&, unsigned int, std::string const&, std::string const&)': main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x35): undefined reference to `itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, std::string const&, std::string const&)' main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x40): undefined reference to `vtable for itk::MemoryAllocationError' CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::Object::SetObjectName(std::string)': main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x25): undefined reference to `itk::Object::GetDebug() const' main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x2e): undefined reference to `itk::Object::GetGlobalWarningDisplay()' main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x12e): undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::DataObject::SetRealTimeStamp(itk::RealTimeStamp)': main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x25): undefined reference to `itk::Object::GetDebug() const' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x2e): undefined reference to `itk::Object::GetGlobalWarningDisplay()' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0xf1): undefined reference to `itk::operator<<(std::ostream&, itk::RealTimeStamp const&)' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x12e): undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x169): undefined reference to `itk::RealTimeStamp::operator!=(itk::RealTimeStamp const&) const' Thanks P?draig -------------- next part -------------- An HTML attachment was scrubbed... URL: From julien.jomier at kitware.com Mon Sep 8 09:11:50 2014 From: julien.jomier at kitware.com (Julien Jomier) Date: Mon, 08 Sep 2014 15:11:50 +0200 Subject: [Rtk-users] RTK helloworld In-Reply-To: References: Message-ID: <540DAB16.3050904@kitware.com> Dear Padraig, When you say "built and is working but I have hundreds of errors" do you mean that you have successfully compiled and linked the example? It seems that your example cannot find the ITK libraries. Are you building ITK and RTK using BUILD_SHARED_LIBS to ON in CMake? Julien On 08/09/2014 14:43, Padraig Looney wrote: > Dear all, > > I am trying to get the HelloWorld example running but I get a large > number of errors after the build. I am using ITK-4.6 and have followed > the instructions as per > > http://wiki.openrtk.org/index.php/RTK_wiki_help#Tutorial_0_-_Building_an_HelloWorld_application_with_RTK > > My executable is built and is working but I have hundreds of errors. The > first few are. > > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::MemoryAllocationError::MemoryAllocationError(std::string const&, > unsigned int, std::string const&, std::string const&)': > main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x35): > undefined reference to > `itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, > std::string const&, std::string const&)' > main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x40): > undefined reference to `vtable for itk::MemoryAllocationError' > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::Object::SetObjectName(std::string)': > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x2e): > undefined reference to `itk::Object::GetGlobalWarningDisplay()' > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x12e): > undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::DataObject::SetRealTimeStamp(itk::RealTimeStamp)': > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x2e): > undefined reference to `itk::Object::GetGlobalWarningDisplay()' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0xf1): > undefined reference to `itk::operator<<(std::ostream&, > itk::RealTimeStamp const&)' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x12e): > undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x169): > undefined reference to > `itk::RealTimeStamp::operator!=(itk::RealTimeStamp const&) const' > > > Thanks > P?draig > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > From julien.jomier at kitware.com Mon Sep 8 09:32:47 2014 From: julien.jomier at kitware.com (Julien Jomier) Date: Mon, 08 Sep 2014 15:32:47 +0200 Subject: [Rtk-users] RTK helloworld In-Reply-To: References: <540DAB16.3050904@kitware.com> Message-ID: <540DAFFF.4080103@kitware.com> I'm guessing the ITK shared libs cannot be found. Can you specify the path where the ITK libraries (.so) are located in the LD_LIBRARY_PATH before your run make? Julien On 08/09/2014 15:23, Padraig Looney wrote: > It has successfully compiled using ccmake and make. I presume that has > successfully linked it. The errors were produced with make. > > Both the SharedLibs variables are set to ON. > > I've tried building RTK two different ways. Once by allowing cmake to > find ITK. This way ITK_DIR is set to /usr/local/lib/cmake/ITK-4.6 > > The other way I built it was by setting ITK_DIR to be the location of > the build directory. Which is what I understand from the wiki > > "When CMake asks for the ITK_DIR, specify the binary directory where ITK > is built and choose CMAKE_BUILD_TYPE (default: Release)" > > It didn't make any difference though. > > On Mon, Sep 8, 2014 at 2:11 PM, Julien Jomier > wrote: > > Dear Padraig, > > When you say "built and is working but I have hundreds of errors" do > you mean that you have successfully compiled and linked the example? > It seems that your example cannot find the ITK libraries. Are you > building ITK and RTK using BUILD_SHARED_LIBS to ON in CMake? > > Julien > > > On 08/09/2014 14:43, Padraig Looney wrote: > > Dear all, > > I am trying to get the HelloWorld example running but I get a large > number of errors after the build. I am using ITK-4.6 and have > followed > the instructions as per > > http://wiki.openrtk.org/index.__php/RTK_wiki_help#Tutorial_0_-___Building_an_HelloWorld___application_with_RTK > > > My executable is built and is working but I have hundreds of > errors. The > first few are. > > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::MemoryAllocationError::__MemoryAllocationError(std::__string > const&, > unsigned int, std::string const&, std::string const&)': > main.cpp:(.text.___ZN3itk21MemoryAllocationErrorC__2ERKSsjS2_S2_[___ZN3itk21MemoryAllocationErrorC__5ERKSsjS2_S2_]+0x35): > undefined reference to > `itk::ExceptionObject::__ExceptionObject(std::string const&, > unsigned int, > std::string const&, std::string const&)' > main.cpp:(.text.___ZN3itk21MemoryAllocationErrorC__2ERKSsjS2_S2_[___ZN3itk21MemoryAllocationErrorC__5ERKSsjS2_S2_]+0x40): > undefined reference to `vtable for itk::MemoryAllocationError' > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::Object::SetObjectName(__std::string)': > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x2e): > undefined reference to `itk::Object::__GetGlobalWarningDisplay()' > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x12e): > undefined reference to > `itk::__OutputWindowDisplayDebugText(__char const*)' > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::DataObject::__SetRealTimeStamp(itk::__RealTimeStamp)': > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x2e): > undefined reference to `itk::Object::__GetGlobalWarningDisplay()' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0xf1): > undefined reference to `itk::operator<<(std::ostream&__, > itk::RealTimeStamp const&)' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x12e): > undefined reference to > `itk::__OutputWindowDisplayDebugText(__char const*)' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x169): > undefined reference to > `itk::RealTimeStamp::operator!__=(itk::RealTimeStamp const&) const' > > > Thanks > P?draig > > > _________________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/__mailman/listinfo/rtk-users > > > From theday79 at gmail.com Mon Sep 8 23:22:32 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Mon, 8 Sep 2014 23:22:32 -0400 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> Message-ID: <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> Hi all, I've been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven't had any problem with full scan images (360 degree scan), I found that rtkfdk doesn't work well with my short scan images obtained from our Elekta XVI system. I've used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn't change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: short_scan.PNG Type: image/png Size: 166828 bytes Desc: not available URL: From simon.rit at creatis.insa-lyon.fr Tue Sep 9 01:24:25 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Tue, 9 Sep 2014 07:24:25 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> Message-ID: Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > _______________________________________________ > 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: From padraig.looney at gmail.com Tue Sep 9 06:05:01 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 9 Sep 2014 11:05:01 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction Message-ID: When I try to run the "FirstReconstruction" example I am getting a segmentation fault. The following is the output from gdb Program received signal SIGSEGV, Segmentation fault. 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue Sep 9 06:32:29 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 09 Sep 2014 12:32:29 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: Message-ID: <540ED73D.3080003@creatis.insa-lyon.fr> Hi Padraig, With so little information, there isn't much we can do to help you. I usually track segfaults by compiling in Debug mode (by setting "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT Creator (any decent IDE will do just fine, and should stop when the segfault occurs, allowing you to trace it back) Good luck, Cyril On 09/09/2014 12:05 PM, Padraig Looney wrote: > When I try to run the "FirstReconstruction" example I am getting a > segmentation fault. > > The following is the output from gdb > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () > > > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Tue Sep 9 08:40:48 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Tue, 9 Sep 2014 14:40:48 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing wrote: > Hi all, > > > > We have experienced the same problem as YangKyun in our institution. Find > attached a screendump of a short scan, and the ElektaGeometry file. We are > reconstructing on CPU using RTK 1.0.0, and have encountered the strange > behavior a couple of times without being able to find any patterns. Our > images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree > scan with the S20 filter on an Elekta XVI machine. > > > > Hope this helps in tracking down the problem. > > > > > > Best regards, > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *P? vegne > af *Simon Rit > *Sendt:* 9. september 2014 07:24 > *Til:* Yang Kyun Park > *Cc:* rtk-users at public.kitware.com > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Hi, > > Everything looks correct in what you did. What version of RTK did you use? > It looks like a bug in the angular weighting of the projections coming > from the discretization of the integral on the gantry angle. Could you send > us a copy of ElektaGeometry.xml and tell us what was the dimension of the > projections? We will look into it. > Thanks for the report, > Simon > > > > On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > > _______________________________________________ > 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: From theday79 at gmail.com Tue Sep 9 11:43:32 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Tue, 9 Sep 2014 11:43:32 -0400 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: <002e01cfcc44$d01763f0$70462bd0$@gmail.com> Hi Simon, Thank your for the prompt update. Now it works perfectly! Best, YangKyun From: simon.rit at gmail.com [mailto:simon.rit at gmail.com] On Behalf Of Simon Rit Sent: Tuesday, September 09, 2014 8:41 AM To: Rune Slot Thing Cc: Yang Kyun Park; rtk-users at public.kitware.com Subject: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: Hi all, We have experienced the same problem as YangKyun in our institution. Find attached a screendump of a short scan, and the ElektaGeometry file. We are reconstructing on CPU using RTK 1.0.0, and have encountered the strange behavior a couple of times without being able to find any patterns. Our images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree scan with the S20 filter on an Elekta XVI machine. Hope this helps in tracking down the problem. Best regards, Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: Rtk-users [mailto:rtk-users-bounces at public.kitware.com ] P? vegne af Simon Rit Sendt: 9. september 2014 07:24 Til: Yang Kyun Park Cc: rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park > wrote: Hi all, I?ve been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven?t had any problem with full scan images (360 degree scan), I found that rtkfdk doesn?t work well with my short scan images obtained from our Elekta XVI system. I?ve used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn?t change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun _______________________________________________ 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: From Rune.Slot.Thing at rsyd.dk Wed Sep 10 04:39:05 2014 From: Rune.Slot.Thing at rsyd.dk (Rune Slot Thing) Date: Wed, 10 Sep 2014 08:39:05 +0000 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> Hi Simon, I asked our IT-guy to recompile the new commit, but unfortunately he was unsuccessful. Here is what he writes: I've downloaded the master from git today and compiled in the VS 2008 pro 64bit on Win7 with itk 4.3.0 and fftw. The new fix does not compile because of issues on line 92-99 in rtkParkerShortScanImageFilter.txx error C2678: binary '==' : no operator found which takes a left-hand operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no acceptable conversion) and on line 73 error C2923: 'itk::Vector' : 'rtk::DaubechiesWaveletsConvolutionImageFilter::Pass' is not a valid template type argument for parameter 'T' f:\programmering\cxx\lib\rtk\master-2014-09-10\code\rtkDaubechiesWaveletsConvolutionImageFilter.h 73 rtkadmmwavelets Is it a typo with to identical lines (LINE 93 = 94)? Thanks again for your prompt help. Best regards, Rune Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: simon.rit at gmail.com [mailto:simon.rit at gmail.com] P? vegne af Simon Rit Sendt: 9. september 2014 14:41 Til: Rune Slot Thing Cc: Yang Kyun Park; rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: Hi all, We have experienced the same problem as YangKyun in our institution. Find attached a screendump of a short scan, and the ElektaGeometry file. We are reconstructing on CPU using RTK 1.0.0, and have encountered the strange behavior a couple of times without being able to find any patterns. Our images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree scan with the S20 filter on an Elekta XVI machine. Hope this helps in tracking down the problem. Best regards, Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: Rtk-users [mailto:rtk-users-bounces at public.kitware.com] P? vegne af Simon Rit Sendt: 9. september 2014 07:24 Til: Yang Kyun Park Cc: rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park > wrote: Hi all, I?ve been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven?t had any problem with full scan images (360 degree scan), I found that rtkfdk doesn?t work well with my short scan images obtained from our Elekta XVI system. I?ve used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn?t change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun _______________________________________________ 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: From wuchao04 at gmail.com Wed Sep 10 07:35:27 2014 From: wuchao04 at gmail.com (Chao Wu) Date: Wed, 10 Sep 2014 13:35:27 +0200 Subject: [Rtk-users] coordinates of 3D volume Message-ID: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 08:38:43 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 14:38:43 +0200 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: Message-ID: Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu wrote: > Hi all, > > I see that rtk use certain industrial standard for the coordinates of 2D > projections and 3D volumes. However in medical imaging, the xy planes of a > volume are usually transaxial slices while the 3rd dimension is aligned > with the axis of rotation. I would like to switch to this coordinates in my > own code. Is there anyone who can give me some comments and suggestions > about where to start? Thanks. > > Regards, > Chao > > _______________________________________________ > 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: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 08:43:54 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 14:43:54 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> Message-ID: I wonder why it compiles on Linux... but anyway, sorry, it's been fixed. On Wed, Sep 10, 2014 at 10:39 AM, Rune Slot Thing wrote: > Hi Simon, > > > > I asked our IT-guy to recompile the new commit, but unfortunately he was > unsuccessful. Here is what he writes: > > > > I've downloaded the master from git today and compiled in the VS 2008 pro > 64bit on Win7 with itk 4.3.0 and fftw. > > > > The new fix does not compile because of issues on line 92-99 in > rtkParkerShortScanImageFilter.txx > > > > error C2678: binary '==' : no operator found which takes a left-hand > operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no > acceptable conversion) > > > > and on line 73 > > > > error C2923: 'itk::Vector' : > 'rtk::DaubechiesWaveletsConvolutionImageFilter::Pass' is not a > valid template type argument for parameter 'T' > f:\programmering\cxx\lib\rtk\master-2014-09-10\code\rtkDaubechiesWaveletsConvolutionImageFilter.h > 73 rtkadmmwavelets > > Is it a typo with to identical lines (LINE 93 = 94)? > > > > Thanks again for your prompt help. > > > > Best regards, > > Rune > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* simon.rit at gmail.com [mailto:simon.rit at gmail.com] *P? vegne af *Simon > Rit > *Sendt:* 9. september 2014 14:41 > *Til:* Rune Slot Thing > *Cc:* Yang Kyun Park; rtk-users at public.kitware.com > > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Thank you Rune, this was very helpful. The pattern is that several > projections have the same gantry angle on one side of the gantry angle gap. > Something that happens with Elekta Synergy... I think that the bug has been > fixed: > > https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f > > > > On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: > > Hi all, > > > > We have experienced the same problem as YangKyun in our institution. Find > attached a screendump of a short scan, and the ElektaGeometry file. We are > reconstructing on CPU using RTK 1.0.0, and have encountered the strange > behavior a couple of times without being able to find any patterns. Our > images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree > scan with the S20 filter on an Elekta XVI machine. > > > > Hope this helps in tracking down the problem. > > > > > > Best regards, > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *P? vegne > af *Simon Rit > *Sendt:* 9. september 2014 07:24 > *Til:* Yang Kyun Park > *Cc:* rtk-users at public.kitware.com > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Hi, > > Everything looks correct in what you did. What version of RTK did you use? > It looks like a bug in the angular weighting of the projections coming > from the discretization of the integral on the gantry angle. Could you send > us a copy of ElektaGeometry.xml and tell us what was the dimension of the > projections? We will look into it. > Thanks for the report, > Simon > > > > On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > > _______________________________________________ > 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: From theday79 at gmail.com Wed Sep 10 09:47:17 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Wed, 10 Sep 2014 09:47:17 -0400 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: Message-ID: <003801cfccfd$bd111800$37334800$@gmail.com> Hi Chao, I had the same issue on my work and I?ve managed to fix it by the following codes. I?m not sure this is the optimal way to do it but at least it worked in my case. (Or you can transform it in 3D Slicer. In transform menu, you need to apply the following matrix: 0 0 -1 0 1 0 0 0 0 1 0 0 0 0 0 1 to the target image, harden the transform then export the image.) Best, YangKyun // OutputImageType = // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction //Same image type from original image -3D & float OutputImageType::IndexType start_trans; start_trans[0] = 0; start_trans[1] = 0; start_trans[2] = 0; OutputImageType::SizeType size_trans; size_trans[0] = sizeOutput[0]; // X //410 size_trans[1] = sizeOutput[2]; //Y // 410 size_trans[2] = sizeOutput[1]; //Z // 120? OutputImageType::SpacingType spacing_trans; spacing_trans[0] = spacing[0]; spacing_trans[1] = spacing[2]; spacing_trans[2] = spacing[1]; OutputImageType::PointType Origin_trans; Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; OutputImageType::RegionType region_trans; region_trans.SetSize(size_trans); region_trans.SetIndex(start_trans); /* 2) Prepare Target image */ OutputImageType::Pointer targetImg = streamerBP->GetOutput(); /* 3) Configure transform */ typedef itk::Euler3DTransform< double > TransformType; TransformType::Pointer transform = TransformType::New(); TransformType::ParametersType param; param.SetSize(6); //MAXIMUM PARAM NUMBER: 6!!! param.put(0, 0.0); //rot X // 0.5 = PI/2 param.put(1, itk::Math::pi/2.0);//rot Y param.put(2, itk::Math::pi/-2.0);//rot Z param.put(3, 0.0); // Trans X mm param.put(4, 0.0); // Trans Y mm param.put(5, 0.0); // Trans Z mm TransformType::ParametersType fixedParam(3); //rotation center fixedParam.put(0,0); fixedParam.put(1,0); fixedParam.put(2,0); transform->SetParameters(param); transform->SetFixedParameters(fixedParam); //Center of the Transform cout << "Transform matrix:" << " " << endl; cout << transform->GetMatrix() << std::endl; typedef itk::ResampleImageFilter ResampleFilterType; ResampleFilterType::Pointer resampler = ResampleFilterType::New(); //OutputImageType::RegionType fixedImg_Region = fixedImg->GetLargestPossibleRegion().GetSize(); resampler->SetInput(targetImg); resampler->SetSize(size_trans); resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large Canvas resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 resampler->SetOutputDirection( targetImg->GetDirection() ); //image normal? resampler->SetTransform(transform); //LR flip cout << "LR flip filter is being applied" << endl; typedef itk::FlipImageFilter< OutputImageType > FilterType; FilterType::Pointer flipFilter = FilterType::New(); typedef FilterType::FlipAxesArrayType FlipAxesArrayType; FlipAxesArrayType arrFlipAxes; arrFlipAxes[0] = 1; arrFlipAxes[1] = 0; arrFlipAxes[2] = 0; flipFilter->SetFlipAxes(arrFlipAxes); flipFilter->SetInput(resampler->GetOutput()); flipFilter->Update(); //Use flipFilter->GetOutput() for further process From: Rtk-users [mailto:rtk-users-bounces at public.kitware.com] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 8:39 AM To: Chao Wu Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu > wrote: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao _______________________________________________ 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: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 10:50:00 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 16:50:00 +0200 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: <003801cfccfd$bd111800$37334800$@gmail.com> References: <003801cfccfd$bd111800$37334800$@gmail.com> Message-ID: This option works but there is a risk of an additional interpolation by the resampler and it costs some computing time. The other option I suggested requires to modify the transform parameter of the source (in this example, add constantImageSource->SetDirection(transform->GetMatrix()); where transform is that of Yang's example, then use itk::ChangeImageInformation to reset the transform to identity. On Wed, Sep 10, 2014 at 3:47 PM, Yang Kyun Park wrote: > Hi Chao, > > > > I had the same issue on my work and I?ve managed to fix it by the > following codes. > > I?m not sure this is the optimal way to do it but at least it worked in my > case. > > > > (Or you can transform it in 3D Slicer. > > In transform menu, you need to apply the following matrix: > > 0 0 -1 0 > > 1 0 0 0 > > 0 1 0 0 > > 0 0 0 1 > > to the target image, harden the transform then export the image.) > > > > Best, > > YangKyun > > > > > > // OutputImageType = > > // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction > > > > //Same image type from original image -3D & float > > OutputImageType::IndexType start_trans; > > start_trans[0] = 0; > > start_trans[1] = 0; > > start_trans[2] = 0; > > > > OutputImageType::SizeType size_trans; > > size_trans[0] = sizeOutput[0]; // X //410 > > size_trans[1] = sizeOutput[2]; //Y // 410 > > size_trans[2] = sizeOutput[1]; //Z // 120? > > > > OutputImageType::SpacingType spacing_trans; > > spacing_trans[0] = spacing[0]; > > spacing_trans[1] = spacing[2]; > > spacing_trans[2] = spacing[1]; > > > > OutputImageType::PointType Origin_trans; > > Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; > > Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; > > Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; > > > > OutputImageType::RegionType region_trans; > > region_trans.SetSize(size_trans); > > region_trans.SetIndex(start_trans); > > > > /* 2) Prepare Target image */ > > OutputImageType::Pointer targetImg = streamerBP->GetOutput(); > > > > /* 3) Configure transform */ > > typedef itk::Euler3DTransform< double > TransformType; > > TransformType::Pointer transform = TransformType::New(); > > > > TransformType::ParametersType param; > > param.SetSize(6); > > //MAXIMUM PARAM NUMBER: 6!!! > > param.put(0, 0.0); //rot X // 0.5 = PI/2 > > param.put(1, itk::Math::pi/2.0);//rot Y > > param.put(2, itk::Math::pi/-2.0);//rot Z > > param.put(3, 0.0); // Trans X mm > > param.put(4, 0.0); // Trans Y mm > > param.put(5, 0.0); // Trans Z mm > > > > TransformType::ParametersType fixedParam(3); //rotation center > > fixedParam.put(0,0); > > fixedParam.put(1,0); > > fixedParam.put(2,0); > > > > transform->SetParameters(param); > > transform->SetFixedParameters(fixedParam); //Center of the > Transform > > > > cout << "Transform matrix:" << " " << endl; > > cout << transform->GetMatrix() << std::endl; > > > > typedef itk::ResampleImageFilter > ResampleFilterType; > > ResampleFilterType::Pointer resampler = ResampleFilterType::New(); > > //OutputImageType::RegionType fixedImg_Region = > fixedImg->GetLargestPossibleRegion().GetSize(); > > > > resampler->SetInput(targetImg); > > resampler->SetSize(size_trans); > > resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large > Canvas > > resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 > > resampler->SetOutputDirection( targetImg->GetDirection() ); //image > normal? > > resampler->SetTransform(transform); > > > > //LR flip > > > > cout << "LR flip filter is being applied" << endl; > > > > typedef itk::FlipImageFilter< OutputImageType > FilterType; > > > > FilterType::Pointer flipFilter = FilterType::New(); > > typedef FilterType::FlipAxesArrayType FlipAxesArrayType; > > > > FlipAxesArrayType arrFlipAxes; > > arrFlipAxes[0] = 1; > > arrFlipAxes[1] = 0; > > arrFlipAxes[2] = 0; > > > > flipFilter->SetFlipAxes(arrFlipAxes); > > flipFilter->SetInput(resampler->GetOutput()); > > flipFilter->Update(); > > > > //Use flipFilter->GetOutput() for further process > > > > > > > > *From:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *On > Behalf Of *Simon Rit > *Sent:* Wednesday, September 10, 2014 8:39 AM > *To:* Chao Wu > *Cc:* rtk-users at openrtk.org > *Subject:* Re: [Rtk-users] coordinates of 3D volume > > > > Hi, > > I wish there was a single industrial standard... You have the DICOM > standard in mind and I used an IEC standard (see wiki). You can play with > the --direction option to orientate the voxel axes of your image (see > itk::Image documentation) and then reset the direction of your output image > to identity, I think that will do what you want. > > Simon > > > > On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu wrote: > > Hi all, > > > > I see that rtk use certain industrial standard for the coordinates of 2D > projections and 3D volumes. However in medical imaging, the xy planes of a > volume are usually transaxial slices while the 3rd dimension is aligned > with the axis of rotation. I would like to switch to this coordinates in my > own code. Is there anyone who can give me some comments and suggestions > about where to start? Thanks. > > > > Regards, > > Chao > > > _______________________________________________ > 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: From theday79 at gmail.com Wed Sep 10 10:56:28 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Wed, 10 Sep 2014 10:56:28 -0400 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: <003801cfccfd$bd111800$37334800$@gmail.com> Message-ID: <005e01cfcd07$6783cdb0$368b6910$@gmail.com> Hi Simon, Thanks for the good tip. Let me try out your approach too! YangKyun From: simon.rit at gmail.com [mailto:simon.rit at gmail.com] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 10:50 AM To: Yang Kyun Park Cc: Chao Wu; rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume This option works but there is a risk of an additional interpolation by the resampler and it costs some computing time. The other option I suggested requires to modify the transform parameter of the source (in this example, add constantImageSource->SetDirection(transform->GetMatrix()); where transform is that of Yang's example, then use itk::ChangeImageInformation to reset the transform to identity. On Wed, Sep 10, 2014 at 3:47 PM, Yang Kyun Park > wrote: Hi Chao, I had the same issue on my work and I?ve managed to fix it by the following codes. I?m not sure this is the optimal way to do it but at least it worked in my case. (Or you can transform it in 3D Slicer. In transform menu, you need to apply the following matrix: 0 0 -1 0 1 0 0 0 0 1 0 0 0 0 0 1 to the target image, harden the transform then export the image.) Best, YangKyun // OutputImageType = // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction //Same image type from original image -3D & float OutputImageType::IndexType start_trans; start_trans[0] = 0; start_trans[1] = 0; start_trans[2] = 0; OutputImageType::SizeType size_trans; size_trans[0] = sizeOutput[0]; // X //410 size_trans[1] = sizeOutput[2]; //Y // 410 size_trans[2] = sizeOutput[1]; //Z // 120? OutputImageType::SpacingType spacing_trans; spacing_trans[0] = spacing[0]; spacing_trans[1] = spacing[2]; spacing_trans[2] = spacing[1]; OutputImageType::PointType Origin_trans; Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; OutputImageType::RegionType region_trans; region_trans.SetSize(size_trans); region_trans.SetIndex(start_trans); /* 2) Prepare Target image */ OutputImageType::Pointer targetImg = streamerBP->GetOutput(); /* 3) Configure transform */ typedef itk::Euler3DTransform< double > TransformType; TransformType::Pointer transform = TransformType::New(); TransformType::ParametersType param; param.SetSize(6); //MAXIMUM PARAM NUMBER: 6!!! param.put(0, 0.0); //rot X // 0.5 = PI/2 param.put(1, itk::Math::pi/2.0);//rot Y param.put(2, itk::Math::pi/-2.0);//rot Z param.put(3, 0.0); // Trans X mm param.put(4, 0.0); // Trans Y mm param.put(5, 0.0); // Trans Z mm TransformType::ParametersType fixedParam(3); //rotation center fixedParam.put(0,0); fixedParam.put(1,0); fixedParam.put(2,0); transform->SetParameters(param); transform->SetFixedParameters(fixedParam); //Center of the Transform cout << "Transform matrix:" << " " << endl; cout << transform->GetMatrix() << std::endl; typedef itk::ResampleImageFilter ResampleFilterType; ResampleFilterType::Pointer resampler = ResampleFilterType::New(); //OutputImageType::RegionType fixedImg_Region = fixedImg->GetLargestPossibleRegion().GetSize(); resampler->SetInput(targetImg); resampler->SetSize(size_trans); resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large Canvas resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 resampler->SetOutputDirection( targetImg->GetDirection() ); //image normal? resampler->SetTransform(transform); //LR flip cout << "LR flip filter is being applied" << endl; typedef itk::FlipImageFilter< OutputImageType > FilterType; FilterType::Pointer flipFilter = FilterType::New(); typedef FilterType::FlipAxesArrayType FlipAxesArrayType; FlipAxesArrayType arrFlipAxes; arrFlipAxes[0] = 1; arrFlipAxes[1] = 0; arrFlipAxes[2] = 0; flipFilter->SetFlipAxes(arrFlipAxes); flipFilter->SetInput(resampler->GetOutput()); flipFilter->Update(); //Use flipFilter->GetOutput() for further process From: Rtk-users [mailto:rtk-users-bounces at public.kitware.com ] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 8:39 AM To: Chao Wu Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu > wrote: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao _______________________________________________ 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: From ghostcz at hotmail.com Mon Sep 15 08:09:46 2014 From: ghostcz at hotmail.com (ghostcz) Date: Mon, 15 Sep 2014 14:09:46 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? Message-ID: Dear Rtk users, How can I select one (or maybe more?) specific GPU to run my reconstruction? It seems if I start a second instance of the reconstruction program, it will run on the same GPU. Best regards, Louie -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Mon Sep 15 08:45:24 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Mon, 15 Sep 2014 14:45:24 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: Message-ID: Hi, Good question, I did not hear anybody working on multiple GPUs so far. It currently uses the first Cuda compatible device. I think you'll have to look up in the Cuda manual to see how to switch to another one but there is nothing available in the RTK lib yet. Don't hesitate to suggest some code changes to add this feature. Simon On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: > Dear Rtk users, > > How can I select one (or maybe more?) specific GPU to run my reconstruction? > It seems if I start a second instance of the reconstruction program, it will > run on the same GPU. > > Best regards, > Louie > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > From padraig.looney at gmail.com Tue Sep 16 10:07:05 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 16 Sep 2014 15:07:05 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: <540ED73D.3080003@creatis.insa-lyon.fr> References: <540ED73D.3080003@creatis.insa-lyon.fr> Message-ID: Thanks Cyril, Following your advice I have tracked the seg fault down to line 36 in FirstReconstruction geometry->AddProjection(sid, sdd, angle, isox, isoy); } I realised that I managed to build the examples with RTK fine and the same example runs without a seg fault in the build directory. On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory wrote: > Hi Padraig, > > With so little information, there isn't much we can do to help you. > I usually track segfaults by compiling in Debug mode (by setting > "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT > Creator (any decent IDE will do just fine, and should stop when the > segfault occurs, allowing you to trace it back) > > Good luck, > Cyril > > > On 09/09/2014 12:05 PM, Padraig Looney wrote: > > When I try to run the "FirstReconstruction" example I am getting a > segmentation fault. > > The following is the output from gdb > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () > > > > > _______________________________________________ > Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users > > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue Sep 16 10:23:07 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 16 Sep 2014 16:23:07 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: <540ED73D.3080003@creatis.insa-lyon.fr> Message-ID: <541847CB.8020807@creatis.insa-lyon.fr> Hi Padraig, Does the segfault happen at the first call of geometry->AddProjection(...) or later ? My guess is that, for some reason, geometry is not initialized. Can you make sure it is by setting a breakpoint just before ? You should also make sure that all variables involved in this call, ie "sid", "sdd", "angle", "isox" and "isoy" have reasonable values before the call. It is probably not a good question, yet I have to ask : did you modify something in the file examples/FirstReconstruction/FirstReconstruction.cxx ? Regards, Cyril On 09/16/2014 04:07 PM, Padraig Looney wrote: > Thanks Cyril, > > Following your advice I have tracked the seg fault down to line 36 in > FirstReconstruction > > geometry->AddProjection(sid, > sdd, > angle, > isox, > isoy); > } > > I realised that I managed to build the examples with RTK fine and the > same example runs without a seg fault in the build directory. > > On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory > > wrote: > > Hi Padraig, > > With so little information, there isn't much we can do to help you. > I usually track segfaults by compiling in Debug mode (by setting > "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug > in QT Creator (any decent IDE will do just fine, and should stop > when the segfault occurs, allowing you to trace it back) > > Good luck, > Cyril > > > On 09/09/2014 12:05 PM, Padraig Looney wrote: >> When I try to run the "FirstReconstruction" example I am getting >> a segmentation fault. >> >> The following is the output from gdb >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () >> >> >> >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://public.kitware.com/mailman/listinfo/rtk-users > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From padraig.looney at gmail.com Tue Sep 16 10:38:05 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 16 Sep 2014 15:38:05 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: <541847CB.8020807@creatis.insa-lyon.fr> References: <540ED73D.3080003@creatis.insa-lyon.fr> <541847CB.8020807@creatis.insa-lyon.fr> Message-ID: It happens with the first call. I set a breakpoint just before and it is not empty. I have tried to attach a screen capture of my space. Yes I thought I may have changed something but I have copied the directory twice from the original download in which it builds correctly. I cloned this with git and there are no changes. On Tue, Sep 16, 2014 at 3:23 PM, Cyril Mory wrote: > Hi Padraig, > > Does the segfault happen at the first call of geometry->AddProjection(...) > or later ? > > My guess is that, for some reason, geometry is not initialized. Can you > make sure it is by setting a breakpoint just before ? > You should also make sure that all variables involved in this call, ie > "sid", "sdd", "angle", "isox" and "isoy" have reasonable values before the > call. > > It is probably not a good question, yet I have to ask : did you modify > something in the file examples/FirstReconstruction/FirstReconstruction.cxx > ? > > Regards, > Cyril > > > On 09/16/2014 04:07 PM, Padraig Looney wrote: > > Thanks Cyril, > > Following your advice I have tracked the seg fault down to line 36 in > FirstReconstruction > > geometry->AddProjection(sid, > sdd, > angle, > isox, > isoy); > } > > I realised that I managed to build the examples with RTK fine and the > same example runs without a seg fault in the build directory. > > On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory < > cyril.mory at creatis.insa-lyon.fr> wrote: > >> Hi Padraig, >> >> With so little information, there isn't much we can do to help you. >> I usually track segfaults by compiling in Debug mode (by setting >> "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT >> Creator (any decent IDE will do just fine, and should stop when the >> segfault occurs, allowing you to trace it back) >> >> Good luck, >> Cyril >> >> >> On 09/09/2014 12:05 PM, Padraig Looney wrote: >> >> When I try to run the "FirstReconstruction" example I am getting a >> segmentation fault. >> >> The following is the output from gdb >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () >> >> >> >> >> _______________________________________________ >> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 >> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: rtkSegFaultFirstRecon.png Type: image/png Size: 273538 bytes Desc: not available URL: From cyril.mory at creatis.insa-lyon.fr Wed Sep 17 05:59:58 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Wed, 17 Sep 2014 11:59:58 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: Message-ID: <54195B9E.10000@creatis.insa-lyon.fr> Hi Louie, We have been investigating your question bit. A first possible solution, which may be sufficient for your needs, could be to set the CUDA_VISIBLE_DEVICES environment variable. You'll find details here : http://www.acceleware.com/blog/cudavisibledevices-masking-gpus Here are two scripts I used to run tests on our two-GPUs server: ######### First script ######### echo "Running two instances of rtkfdk without specifying a GPU" CUDA_VISIBLE_DEVICES="0,1" time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g geom.xml --dimension 512 & time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g geom.xml --dimension 512 & ######### Second script ######### echo "Running two instances of rtkfdk, specifying which GPU to use for each" echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash ######### End ############# On our server, which has two identical GPUs, these two scripts took the same time. It seems that, in the first script, rtkfdk somehow managed to detect that the first GPU was in use and ran on the second one. But I can't guarantee under which conditions this happens, and surely it's safer to use the second script. This is the cheapest solution. If you need more than that, and you are ready to dive into the cuda filters' code as well as into the automatic transfers between CPU and GPU memory, do not hesitate to propose modifications of the RTK code. Regards, Cyril On 09/15/2014 02:45 PM, Simon Rit wrote: > Hi, > Good question, I did not hear anybody working on multiple GPUs so far. > It currently uses the first Cuda compatible device. I think you'll > have to look up in the Cuda manual to see how to switch to another one > but there is nothing available in the RTK lib yet. Don't hesitate to > suggest some code changes to add this feature. > Simon > > On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >> Dear Rtk users, >> >> How can I select one (or maybe more?) specific GPU to run my reconstruction? >> It seems if I start a second instance of the reconstruction program, it will >> run on the same GPU. >> >> Best regards, >> Louie >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://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 > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From ghostcz at hotmail.com Wed Sep 17 11:58:47 2014 From: ghostcz at hotmail.com (ghostcz) Date: Wed, 17 Sep 2014 17:58:47 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: <54195B9E.10000@creatis.insa-lyon.fr> References: <54195B9E.10000@creatis.insa-lyon.fr> Message-ID: Dear Cyril, Thank you for the follow-up. That is indeed a faster way to realize this function. I wrote a launcher instead, where I call cuda_set_device to select the device. No, I don?t think I know CUDA good enough to manage the memory transfer between the devices. Best regards, Louie P.S. is there any training or workshop focusing on rtk application and development available? -----Original Message----- From: Cyril Mory Sent: Wednesday, September 17, 2014 11:59 AM To: Simon Rit ; ghostcz Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] How to run the reconstruction on a specific GPU? Hi Louie, We have been investigating your question bit. A first possible solution, which may be sufficient for your needs, could be to set the CUDA_VISIBLE_DEVICES environment variable. You'll find details here : http://www.acceleware.com/blog/cudavisibledevices-masking-gpus Here are two scripts I used to run tests on our two-GPUs server: ######### First script ######### echo "Running two instances of rtkfdk without specifying a GPU" CUDA_VISIBLE_DEVICES="0,1" time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g geom.xml --dimension 512 & time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g geom.xml --dimension 512 & ######### Second script ######### echo "Running two instances of rtkfdk, specifying which GPU to use for each" echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash ######### End ############# On our server, which has two identical GPUs, these two scripts took the same time. It seems that, in the first script, rtkfdk somehow managed to detect that the first GPU was in use and ran on the second one. But I can't guarantee under which conditions this happens, and surely it's safer to use the second script. This is the cheapest solution. If you need more than that, and you are ready to dive into the cuda filters' code as well as into the automatic transfers between CPU and GPU memory, do not hesitate to propose modifications of the RTK code. Regards, Cyril On 09/15/2014 02:45 PM, Simon Rit wrote: > Hi, > Good question, I did not hear anybody working on multiple GPUs so far. > It currently uses the first Cuda compatible device. I think you'll > have to look up in the Cuda manual to see how to switch to another one > but there is nothing available in the RTK lib yet. Don't hesitate to > suggest some code changes to add this feature. > Simon > > On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >> Dear Rtk users, >> >> How can I select one (or maybe more?) specific GPU to run my >> reconstruction? >> It seems if I start a second instance of the reconstruction program, it >> will >> run on the same GPU. >> >> Best regards, >> Louie >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://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 > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From lomahu at gmail.com Wed Sep 17 23:21:34 2014 From: lomahu at gmail.com (Howard) Date: Wed, 17 Sep 2014 23:21:34 -0400 Subject: [Rtk-users] bright circle on the reconstructed image Message-ID: Hi, I use rtkfdk to reconstruct varian cbct images following the example on rtk wiki page. The projections were obtained with half fan mode because it is an abdominal region with the patient lateral x AP dimension of 550x550. The reconstructed cbct images have a big bright circle around the image. Please see the image: http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html I am using Ubuntu Linux box to reconstruct. Two sequential commands were used: ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ --regexp Proj_.*.hnd -o varianGeometry and rtkfdk \ --geometry varianGeometry \ --regexp .*.hnd \ --path ../Scan0 \ --output rec.mha \ --verbose \ --spacing 2.0,2.0,2.0 \ --dimension 256,100,256 \ The projections are stored in the standard varian format: Scan0 and ProjectionInfo.xml with 644 projection images. I assume that rtkfdk handled the half fan geometry properly. What did I do wrong then? Many thanks! -howard -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 04:12:23 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 10:12:23 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: Message-ID: <541A93E7.7010301@creatis.insa-lyon.fr> Hi Howard, The bright ring artifact is typically caused by high-pass filtering (the ramp filter used in FDK) of truncated projection data (when projections have non-zero values on the sides, the edge of the projection makes a sharp transition to zero). A classical answer to this problem is to pad the projections, for example with values starting from the values on the side and slowly decreasing to zero. rtkfdk can do this padding for you. Just add "--pad 0.1" to your options (or more than 0.1 if it isn't enough). Also, I noticed that your reconstructed image seems quite noisy. You might want to use a Hann windowing of the ramp filter to reduce the noise amplification effect of high-pass filtering. You can do that by adding "--hann 0.5" to your options. Note that the argument is a cut-off frequency, so smaller values mean more smoothing. Best regards, Cyril On 09/18/2014 05:21 AM, Howard wrote: > Hi, > I use rtkfdk to reconstruct varian cbct images following the example > on rtk wiki page. The projections were obtained with half fan mode > because it is an abdominal region with the patient lateral x AP > dimension of 550x550. The reconstructed cbct images have a big > bright circle around > the image. Please see the image: > http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > I am using Ubuntu Linux box to reconstruct. Two sequential commands > were used: > ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > --regexp Proj_.*.hnd -o varianGeometry > and > rtkfdk \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output rec.mha \ > --verbose \ > --spacing 2.0,2.0,2.0 \ > --dimension 256,100,256 \ > The projections are stored in the standard varian format: Scan0 and > ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled the half fan geometry properly. What did I do wrong then? > Many thanks! > -howard > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 04:53:34 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 10:53:34 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: <54195B9E.10000@creatis.insa-lyon.fr> Message-ID: <541A9D8E.5040403@creatis.insa-lyon.fr> Hi Louie, Good that you managed to solve your problem. Your question on training made us think a bit. Here are a few answers: - At the moment, there is only a wiki, the documentation and this mailing list - We're only a handful of developers working on RTK, so it seems too early, and too much logistics, to organize real workshops or training sessions in the near future - That being said, we would like to leave the door open. Surely it is important, if we want more people to use RTK and contribute to it, that new developers can learn easily and efficiently. I'll start a specific thread on the mailing list to gather the possible requests similar to yours - RTK uses ITK to do most of the work, therefore programming in RTK essentially requires knowing ITK and knowing some tomography. ITK training sessions are organized often and in many countries I hope it helps, Cyril On 09/17/2014 05:58 PM, ghostcz wrote: > Dear Cyril, > > Thank you for the follow-up. > That is indeed a faster way to realize this function. I wrote a > launcher instead, where I call cuda_set_device to select the device. > No, I don?t think I know CUDA good enough to manage the memory > transfer between the devices. > > Best regards, > Louie > > P.S. is there any training or workshop focusing on rtk application and > development available? > > > > > -----Original Message----- From: Cyril Mory > Sent: Wednesday, September 17, 2014 11:59 AM > To: Simon Rit ; ghostcz > Cc: rtk-users at openrtk.org > Subject: Re: [Rtk-users] How to run the reconstruction on a specific GPU? > > Hi Louie, > > We have been investigating your question bit. A first possible solution, > which may be sufficient for your needs, could be to set the > CUDA_VISIBLE_DEVICES environment variable. You'll find details here : > http://www.acceleware.com/blog/cudavisibledevices-masking-gpus > > Here are two scripts I used to run tests on our two-GPUs server: > > ######### First script ######### > echo "Running two instances of rtkfdk without specifying a GPU" > CUDA_VISIBLE_DEVICES="0,1" > time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g > geom.xml --dimension 512 & > time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g > geom.xml --dimension 512 & > > ######### Second script ######### > echo "Running two instances of rtkfdk, specifying which GPU to use for > each" > echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o > fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash > echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o > fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash > > ######### End ############# > > On our server, which has two identical GPUs, these two scripts took the > same time. It seems that, in the first script, rtkfdk somehow managed to > detect that the first GPU was in use and ran on the second one. But I > can't guarantee under which conditions this happens, and surely it's > safer to use the second script. > > This is the cheapest solution. If you need more than that, and you are > ready to dive into the cuda filters' code as well as into the automatic > transfers between CPU and GPU memory, do not hesitate to propose > modifications of the RTK code. > > Regards, > Cyril > > On 09/15/2014 02:45 PM, Simon Rit wrote: >> Hi, >> Good question, I did not hear anybody working on multiple GPUs so far. >> It currently uses the first Cuda compatible device. I think you'll >> have to look up in the Cuda manual to see how to switch to another one >> but there is nothing available in the RTK lib yet. Don't hesitate to >> suggest some code changes to add this feature. >> Simon >> >> On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >>> Dear Rtk users, >>> >>> How can I select one (or maybe more?) specific GPU to run my >>> reconstruction? >>> It seems if I start a second instance of the reconstruction program, >>> it will >>> run on the same GPU. >>> >>> Best regards, >>> Louie >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://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 >> > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 05:28:42 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 11:28:42 +0200 Subject: [Rtk-users] Would you like RTK trainings ? Message-ID: <541AA5CA.9050306@creatis.insa-lyon.fr> Hi RTK users, A recent question on the mailing list by Louie triggered a conversation between us. Louie asked whether there exists some sort of training or workshop on RTK. In a nutshell, the answer is "No, not yet, but why not talk about it ?". So I'd like to start some sort of "poll" to gather the requests you might have on this topic: Do you need / want / would like a training on RTK ? If so, can you be more specific on what you would like to learn ? (basics of tomography, how to start using RTK on your data, practical issues in circular cone beam CT, motion compensated reconstruction, compressed sensing in tomography, ITK programming, ... this is not an exhaustive list) I think this is enough questions for the time being. The rest will depend on your answers. Looking forward to reading you, -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 06:08:21 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 12:08:21 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: <540ED73D.3080003@creatis.insa-lyon.fr> <541847CB.8020807@creatis.insa-lyon.fr> Message-ID: <541AAF15.9080707@creatis.insa-lyon.fr> Hi Padraig, It is puzzling, as the code is simple and we have many machines on which it works without problem. So let's explore the weirder options : - In one of your previous emails, you mentioned that "the same example runs without a seg fault in the build directory". What does that mean ? - Can you go into your build directory, run "make test", and post the result of the tests ? - Have you tried installing RTK on another machine ? Regards, Cyril On 09/16/2014 04:38 PM, Padraig Looney wrote: > It happens with the first call. > > I set a breakpoint just before and it is not empty. I have tried to > attach a screen capture of my space. > > Yes I thought I may have changed something but I have copied the > directory twice from the original download in which it builds > correctly. I cloned this with git and there are no changes. > > > On Tue, Sep 16, 2014 at 3:23 PM, Cyril Mory > > wrote: > > Hi Padraig, > > Does the segfault happen at the first call of > geometry->AddProjection(...) or later ? > > My guess is that, for some reason, geometry is not initialized. > Can you make sure it is by setting a breakpoint just before ? > You should also make sure that all variables involved in this > call, ie "sid", "sdd", "angle", "isox" and "isoy" have reasonable > values before the call. > > It is probably not a good question, yet I have to ask : did you > modify something in the file > examples/FirstReconstruction/FirstReconstruction.cxx ? > > Regards, > Cyril > > > On 09/16/2014 04:07 PM, Padraig Looney wrote: >> Thanks Cyril, >> >> Following your advice I have tracked the seg fault down to line >> 36 in FirstReconstruction >> >> geometry->AddProjection(sid, >> sdd, >> angle, >> isox, >> isoy); >> } >> >> I realised that I managed to build the examples with RTK fine and >> the same example runs without a seg fault in the build directory. >> >> On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory >> > > wrote: >> >> Hi Padraig, >> >> With so little information, there isn't much we can do to >> help you. >> I usually track segfaults by compiling in Debug mode (by >> setting "CMAKE_BUILD_TYPE" to "Debug"), then running the >> program in debug in QT Creator (any decent IDE will do just >> fine, and should stop when the segfault occurs, allowing you >> to trace it back) >> >> Good luck, >> Cyril >> >> >> On 09/09/2014 12:05 PM, Padraig Looney wrote: >>> When I try to run the "FirstReconstruction" example I am >>> getting a segmentation fault. >>> >>> The following is the output from gdb >>> >>> Program received signal SIGSEGV, Segmentation fault. >>> 0x00000000004952d7 in typeinfo for >>> rtk::ProjectionGeometry<3u> () >>> >>> >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://public.kitware.com/mailman/listinfo/rtk-users >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile:+33 6 69 46 73 79 >> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Thu Sep 18 09:47:40 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Thu, 18 Sep 2014 15:47:40 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: <541A93E7.7010301@creatis.insa-lyon.fr> References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: Hi, I fully agree with Cyril. Something else : you might want to mask out what is outside the field-of-view using the rtkfieldofview executable. Your ring corresponds to that border. See an example here: http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction Simon On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < cyril.mory at creatis.insa-lyon.fr> wrote: > Hi Howard, > > The bright ring artifact is typically caused by high-pass filtering (the > ramp filter used in FDK) of truncated projection data (when projections > have non-zero values on the sides, the edge of the projection makes a sharp > transition to zero). A classical answer to this problem is to pad the > projections, for example with values starting from the values on the side > and slowly decreasing to zero. > > rtkfdk can do this padding for you. Just add "--pad 0.1" to your options > (or more than 0.1 if it isn't enough). > Also, I noticed that your reconstructed image seems quite noisy. You might > want to use a Hann windowing of the ramp filter to reduce the noise > amplification effect of high-pass filtering. You can do that by adding > "--hann 0.5" to your options. Note that the argument is a cut-off > frequency, so smaller values mean more smoothing. > > Best regards, > Cyril > > > On 09/18/2014 05:21 AM, Howard wrote: > > Hi, > > I use rtkfdk to reconstruct varian cbct images following the example on > rtk wiki page. The projections were obtained with half fan mode because it > is an abdominal region with the patient lateral x AP dimension of 550x550. > The reconstructed cbct images have a big bright circle around > the image. Please see the image: > http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > > I am using Ubuntu Linux box to reconstruct. Two sequential commands were > used: > > ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > --regexp Proj_.*.hnd -o varianGeometry > and > > rtkfdk \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output rec.mha \ > --verbose \ > --spacing 2.0,2.0,2.0 \ > --dimension 256,100,256 \ > The projections are stored in the standard varian format: Scan0 and > ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled the half fan geometry properly. What did I do wrong then? Many > thanks! > > -howard > > > _______________________________________________ > Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users > > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > > _______________________________________________ > 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: From lomahu at gmail.com Thu Sep 18 10:47:17 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 10:47:17 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: Thanks very much, Cyril & Simon. Now the fdk reconstruction is working beautifully. Jus another quick question: for rtksart executable, are we still able to do padding and hanning window trick as well? On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit wrote: > Hi, > I fully agree with Cyril. Something else : you might want to mask out what > is outside the field-of-view using the rtkfieldofview executable. Your ring > corresponds to that border. See an example here: > http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > Simon > > On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < > cyril.mory at creatis.insa-lyon.fr> wrote: > >> Hi Howard, >> >> The bright ring artifact is typically caused by high-pass filtering (the >> ramp filter used in FDK) of truncated projection data (when projections >> have non-zero values on the sides, the edge of the projection makes a sharp >> transition to zero). A classical answer to this problem is to pad the >> projections, for example with values starting from the values on the side >> and slowly decreasing to zero. >> >> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >> (or more than 0.1 if it isn't enough). >> Also, I noticed that your reconstructed image seems quite noisy. You >> might want to use a Hann windowing of the ramp filter to reduce the noise >> amplification effect of high-pass filtering. You can do that by adding >> "--hann 0.5" to your options. Note that the argument is a cut-off >> frequency, so smaller values mean more smoothing. >> >> Best regards, >> Cyril >> >> >> On 09/18/2014 05:21 AM, Howard wrote: >> >> Hi, >> >> I use rtkfdk to reconstruct varian cbct images following the example on >> rtk wiki page. The projections were obtained with half fan mode because it >> is an abdominal region with the patient lateral x AP dimension of 550x550. >> The reconstructed cbct images have a big bright circle around >> the image. Please see the image: >> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> >> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >> used: >> >> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >> --regexp Proj_.*.hnd -o varianGeometry >> and >> >> rtkfdk \ >> --geometry varianGeometry \ >> --regexp .*.hnd \ >> --path ../Scan0 \ >> --output rec.mha \ >> --verbose \ >> --spacing 2.0,2.0,2.0 \ >> --dimension 256,100,256 \ >> The projections are stored in the standard varian format: Scan0 and >> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >> handled the half fan geometry properly. What did I do wrong then? Many >> thanks! >> >> -howard >> >> >> _______________________________________________ >> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 >> >> >> _______________________________________________ >> 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: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 10:59:53 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 16:59:53 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: <541AF369.9090403@creatis.insa-lyon.fr> Howard, For SART reconstructions, you do not need padding, and you can't do Hann windowing because no ramp filtering is applied. SART usually outputs smoother images, so you probably will not need this denoising trick anyway. However, you should be careful about one thing : your object has to be fully contained in the reconstructed volume, or you will observe important border effects. Use the --dimension, --spacing and --origin options to ensure this. All the best, Cyril On 09/18/2014 04:47 PM, Howard wrote: > Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > beautifully. Jus another quick question: for rtksart executable, are > we still able to do padding and hanning window trick as well? > > On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > > wrote: > > Hi, > I fully agree with Cyril. Something else : you might want to mask > out what is outside the field-of-view using the rtkfieldofview > executable. Your ring corresponds to that border. See an example here: > http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > Simon > > On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory > > wrote: > > Hi Howard, > > The bright ring artifact is typically caused by high-pass > filtering (the ramp filter used in FDK) of truncated > projection data (when projections have non-zero values on the > sides, the edge of the projection makes a sharp transition to > zero). A classical answer to this problem is to pad the > projections, for example with values starting from the values > on the side and slowly decreasing to zero. > > rtkfdk can do this padding for you. Just add "--pad 0.1" to > your options (or more than 0.1 if it isn't enough). > Also, I noticed that your reconstructed image seems quite > noisy. You might want to use a Hann windowing of the ramp > filter to reduce the noise amplification effect of high-pass > filtering. You can do that by adding "--hann 0.5" to your > options. Note that the argument is a cut-off frequency, so > smaller values mean more smoothing. > > Best regards, > Cyril > > > On 09/18/2014 05:21 AM, Howard wrote: >> Hi, >> I use rtkfdk to reconstruct varian cbct images following the >> example on rtk wiki page. The projections were obtained with >> half fan mode because it is an abdominal region with the >> patient lateral x AP dimension of 550x550. The reconstructed >> cbct images have a big bright circle around >> the image. Please see the image: >> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> I am using Ubuntu Linux box to reconstruct. Two sequential >> commands were used: >> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path >> Scan0/ --regexp Proj_.*.hnd -o varianGeometry >> and >> rtkfdk \ >> --geometry varianGeometry \ >> --regexp .*.hnd \ >> --path ../Scan0 \ >> --output rec.mha \ >> --verbose \ >> --spacing 2.0,2.0,2.0 \ >> --dimension 256,100,256 \ >> The projections are stored in the standard varian format: >> Scan0 and ProjectionInfo.xml with 644 projection images. I >> assume that rtkfdk handled the half fan geometry properly. >> What did I do wrong then? Many thanks! >> -howard >> >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://public.kitware.com/mailman/listinfo/rtk-users > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From lomahu at gmail.com Thu Sep 18 13:03:52 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 13:03:52 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: <541AF369.9090403@creatis.insa-lyon.fr> References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Cyril, I am testing SART reconstruction according to what you described, specifying dimension, spacing and origin: rtksart \ --geometry varianGeometry \ --regexp .*.hnd \ --path ../Scan0 \ --output sart_rec.mha \ --verbose \ --spacing 2.0\ --dimension 128,100,128 \ --origin -127.5,-99,-127.5 but the reconstruction gave a plain image with no object/contrast. I checked the grayscale values on the reconstructed images and did see they ranged from -1.78 to 3 (this may not be precise but give you some idea). I tried to adjust window level but couldn't see any contrast. I must miss something here. Please advise. Thanks! -howard On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory < cyril.mory at creatis.insa-lyon.fr> wrote: > Howard, > > For SART reconstructions, you do not need padding, and you can't do Hann > windowing because no ramp filtering is applied. SART usually outputs > smoother images, so you probably will not need this denoising trick anyway. > However, you should be careful about one thing : your object has to be > fully contained in the reconstructed volume, or you will observe important > border effects. Use the --dimension, --spacing and --origin options to > ensure this. > > All the best, > Cyril > > > On 09/18/2014 04:47 PM, Howard wrote: > > Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > beautifully. Jus another quick question: for rtksart executable, are we > still able to do padding and hanning window trick as well? > > On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > wrote: > >> Hi, >> I fully agree with Cyril. Something else : you might want to mask out >> what is outside the field-of-view using the rtkfieldofview executable. Your >> ring corresponds to that border. See an example here: >> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >> Simon >> >> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < >> cyril.mory at creatis.insa-lyon.fr> wrote: >> >>> Hi Howard, >>> >>> The bright ring artifact is typically caused by high-pass filtering (the >>> ramp filter used in FDK) of truncated projection data (when projections >>> have non-zero values on the sides, the edge of the projection makes a sharp >>> transition to zero). A classical answer to this problem is to pad the >>> projections, for example with values starting from the values on the side >>> and slowly decreasing to zero. >>> >>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >>> (or more than 0.1 if it isn't enough). >>> Also, I noticed that your reconstructed image seems quite noisy. You >>> might want to use a Hann windowing of the ramp filter to reduce the noise >>> amplification effect of high-pass filtering. You can do that by adding >>> "--hann 0.5" to your options. Note that the argument is a cut-off >>> frequency, so smaller values mean more smoothing. >>> >>> Best regards, >>> Cyril >>> >>> >>> On 09/18/2014 05:21 AM, Howard wrote: >>> >>> Hi, >>> >>> I use rtkfdk to reconstruct varian cbct images following the example on >>> rtk wiki page. The projections were obtained with half fan mode because it >>> is an abdominal region with the patient lateral x AP dimension of 550x550. >>> The reconstructed cbct images have a big bright circle around >>> the image. Please see the image: >>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >>> >>> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >>> used: >>> >>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >>> --regexp Proj_.*.hnd -o varianGeometry >>> and >>> >>> rtkfdk \ >>> --geometry varianGeometry \ >>> --regexp .*.hnd \ >>> --path ../Scan0 \ >>> --output rec.mha \ >>> --verbose \ >>> --spacing 2.0,2.0,2.0 \ >>> --dimension 256,100,256 \ >>> The projections are stored in the standard varian format: Scan0 and >>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >>> handled the half fan geometry properly. What did I do wrong then? Many >>> thanks! >>> >>> -howard >>> >>> >>> _______________________________________________ >>> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >>> -- >>> -- >>> Cyril Mory, Post-doc >>> CREATIS >>> Leon Berard cancer treatment center >>> 28 rue La?nnec >>> 69373 Lyon cedex 08 FRANCE >>> >>> Mobile: +33 6 69 46 73 79 >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Thu Sep 18 16:41:10 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Thu, 18 Sep 2014 22:41:10 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Howard, Assuming you're using the same dataset as the one you used for the rtkfdk test, you have decreased its size. For example, x was 2*256 mm with rtkfdk and it is now 128*2. On the slice you sent, we could see that a part of the phantom on the right was missing so you should keep the same size except for this side that should be larger, certainly not reduce the size. For the display, I would suggest to use the same window/level as for your FDK reconstruction. The two reconstruction algorithms reconstruct the same average intensities, only the texture is different. Good luck, Simon On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: > Hi Cyril, > > I am testing SART reconstruction according to what you described, specifying > dimension, spacing and origin: > > rtksart \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output sart_rec.mha \ > --verbose \ > --spacing 2.0\ > --dimension 128,100,128 \ > --origin -127.5,-99,-127.5 > > but the reconstruction gave a plain image with no object/contrast. I checked > the grayscale values on the reconstructed images and did see they ranged > from -1.78 to 3 (this may not be precise but give you some idea). I tried to > adjust window level but couldn't see any contrast. I must miss something > here. Please advise. Thanks! > > -howard > > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory > wrote: >> >> Howard, >> >> For SART reconstructions, you do not need padding, and you can't do Hann >> windowing because no ramp filtering is applied. SART usually outputs >> smoother images, so you probably will not need this denoising trick anyway. >> However, you should be careful about one thing : your object has to be >> fully contained in the reconstructed volume, or you will observe important >> border effects. Use the --dimension, --spacing and --origin options to >> ensure this. >> >> All the best, >> Cyril >> >> >> On 09/18/2014 04:47 PM, Howard wrote: >> >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working >> beautifully. Jus another quick question: for rtksart executable, are we >> still able to do padding and hanning window trick as well? >> >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit >> wrote: >>> >>> Hi, >>> I fully agree with Cyril. Something else : you might want to mask out >>> what is outside the field-of-view using the rtkfieldofview executable. Your >>> ring corresponds to that border. See an example here: >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >>> Simon >>> >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory >>> wrote: >>>> >>>> Hi Howard, >>>> >>>> The bright ring artifact is typically caused by high-pass filtering (the >>>> ramp filter used in FDK) of truncated projection data (when projections have >>>> non-zero values on the sides, the edge of the projection makes a sharp >>>> transition to zero). A classical answer to this problem is to pad the >>>> projections, for example with values starting from the values on the side >>>> and slowly decreasing to zero. >>>> >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >>>> (or more than 0.1 if it isn't enough). >>>> Also, I noticed that your reconstructed image seems quite noisy. You >>>> might want to use a Hann windowing of the ramp filter to reduce the noise >>>> amplification effect of high-pass filtering. You can do that by adding >>>> "--hann 0.5" to your options. Note that the argument is a cut-off frequency, >>>> so smaller values mean more smoothing. >>>> >>>> Best regards, >>>> Cyril >>>> >>>> >>>> On 09/18/2014 05:21 AM, Howard wrote: >>>> >>>> Hi, >>>> >>>> I use rtkfdk to reconstruct varian cbct images following the example on >>>> rtk wiki page. The projections were obtained with half fan mode because it >>>> is an abdominal region with the patient lateral x AP dimension of 550x550. >>>> The reconstructed cbct images have a big bright circle around >>>> the image. Please see the image: >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >>>> >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >>>> used: >>>> >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >>>> --regexp Proj_.*.hnd -o varianGeometry >>>> and >>>> >>>> rtkfdk \ >>>> --geometry varianGeometry \ >>>> --regexp .*.hnd \ >>>> --path ../Scan0 \ >>>> --output rec.mha \ >>>> --verbose \ >>>> --spacing 2.0,2.0,2.0 \ >>>> --dimension 256,100,256 \ >>>> The projections are stored in the standard varian format: Scan0 and >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk handled >>>> the half fan geometry properly. What did I do wrong then? Many thanks! >>>> >>>> -howard >>>> >>>> >>>> _______________________________________________ >>>> Rtk-users mailing list >>>> Rtk-users at public.kitware.com >>>> http://public.kitware.com/mailman/listinfo/rtk-users >>>> >>>> >>>> -- >>>> -- >>>> Cyril Mory, Post-doc >>>> CREATIS >>>> Leon Berard cancer treatment center >>>> 28 rue La?nnec >>>> 69373 Lyon cedex 08 FRANCE >>>> >>>> Mobile: +33 6 69 46 73 79 >>>> >>>> >>>> _______________________________________________ >>>> Rtk-users mailing list >>>> Rtk-users at public.kitware.com >>>> http://public.kitware.com/mailman/listinfo/rtk-users >>>> >>> >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 > > From lomahu at gmail.com Thu Sep 18 17:47:51 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 17:47:51 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Simon, I apologize for the confusion about the dataset. Actually I did not use the same dataset. The reason is that the set I used for rtkfdk test had 644 projections and with it rtksart crashed because of memory (I only allocated 3GB memory to Virtualbox from my window7). So for the SART test I changed to a small projection set (366 projections) where the object is a cube with dimension of 5cm x 5cm x 5cm. That's why I chose a smaller reconstruction size 128*2. With the same dataset when I ran rtkfdk I got very good reconstruction. -howard On Thu, Sep 18, 2014 at 4:41 PM, Simon Rit wrote: > Hi Howard, > Assuming you're using the same dataset as the one you used for the > rtkfdk test, you have decreased its size. For example, x was 2*256 mm > with rtkfdk and it is now 128*2. On the slice you sent, we could see > that a part of the phantom on the right was missing so you should keep > the same size except for this side that should be larger, certainly > not reduce the size. > For the display, I would suggest to use the same window/level as for > your FDK reconstruction. The two reconstruction algorithms reconstruct > the same average intensities, only the texture is different. > Good luck, > Simon > > On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: > > Hi Cyril, > > > > I am testing SART reconstruction according to what you described, > specifying > > dimension, spacing and origin: > > > > rtksart \ > > --geometry varianGeometry \ > > --regexp .*.hnd \ > > --path ../Scan0 \ > > --output sart_rec.mha \ > > --verbose \ > > --spacing 2.0\ > > --dimension 128,100,128 \ > > --origin -127.5,-99,-127.5 > > > > but the reconstruction gave a plain image with no object/contrast. I > checked > > the grayscale values on the reconstructed images and did see they ranged > > from -1.78 to 3 (this may not be precise but give you some idea). I > tried to > > adjust window level but couldn't see any contrast. I must miss something > > here. Please advise. Thanks! > > > > -howard > > > > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory > > wrote: > >> > >> Howard, > >> > >> For SART reconstructions, you do not need padding, and you can't do Hann > >> windowing because no ramp filtering is applied. SART usually outputs > >> smoother images, so you probably will not need this denoising trick > anyway. > >> However, you should be careful about one thing : your object has to be > >> fully contained in the reconstructed volume, or you will observe > important > >> border effects. Use the --dimension, --spacing and --origin options to > >> ensure this. > >> > >> All the best, > >> Cyril > >> > >> > >> On 09/18/2014 04:47 PM, Howard wrote: > >> > >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > >> beautifully. Jus another quick question: for rtksart executable, are we > >> still able to do padding and hanning window trick as well? > >> > >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > >> wrote: > >>> > >>> Hi, > >>> I fully agree with Cyril. Something else : you might want to mask out > >>> what is outside the field-of-view using the rtkfieldofview executable. > Your > >>> ring corresponds to that border. See an example here: > >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > >>> Simon > >>> > >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory > >>> wrote: > >>>> > >>>> Hi Howard, > >>>> > >>>> The bright ring artifact is typically caused by high-pass filtering > (the > >>>> ramp filter used in FDK) of truncated projection data (when > projections have > >>>> non-zero values on the sides, the edge of the projection makes a sharp > >>>> transition to zero). A classical answer to this problem is to pad the > >>>> projections, for example with values starting from the values on the > side > >>>> and slowly decreasing to zero. > >>>> > >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your > options > >>>> (or more than 0.1 if it isn't enough). > >>>> Also, I noticed that your reconstructed image seems quite noisy. You > >>>> might want to use a Hann windowing of the ramp filter to reduce the > noise > >>>> amplification effect of high-pass filtering. You can do that by adding > >>>> "--hann 0.5" to your options. Note that the argument is a cut-off > frequency, > >>>> so smaller values mean more smoothing. > >>>> > >>>> Best regards, > >>>> Cyril > >>>> > >>>> > >>>> On 09/18/2014 05:21 AM, Howard wrote: > >>>> > >>>> Hi, > >>>> > >>>> I use rtkfdk to reconstruct varian cbct images following the example > on > >>>> rtk wiki page. The projections were obtained with half fan mode > because it > >>>> is an abdominal region with the patient lateral x AP dimension of > 550x550. > >>>> The reconstructed cbct images have a big bright circle around > >>>> the image. Please see the image: > >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > >>>> > >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands > were > >>>> used: > >>>> > >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > >>>> --regexp Proj_.*.hnd -o varianGeometry > >>>> and > >>>> > >>>> rtkfdk \ > >>>> --geometry varianGeometry \ > >>>> --regexp .*.hnd \ > >>>> --path ../Scan0 \ > >>>> --output rec.mha \ > >>>> --verbose \ > >>>> --spacing 2.0,2.0,2.0 \ > >>>> --dimension 256,100,256 \ > >>>> The projections are stored in the standard varian format: Scan0 and > >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled > >>>> the half fan geometry properly. What did I do wrong then? Many > thanks! > >>>> > >>>> -howard > >>>> > >>>> > >>>> _______________________________________________ > >>>> Rtk-users mailing list > >>>> Rtk-users at public.kitware.com > >>>> http://public.kitware.com/mailman/listinfo/rtk-users > >>>> > >>>> > >>>> -- > >>>> -- > >>>> Cyril Mory, Post-doc > >>>> CREATIS > >>>> Leon Berard cancer treatment center > >>>> 28 rue La?nnec > >>>> 69373 Lyon cedex 08 FRANCE > >>>> > >>>> Mobile: +33 6 69 46 73 79 > >>>> > >>>> > >>>> _______________________________________________ > >>>> Rtk-users mailing list > >>>> Rtk-users at public.kitware.com > >>>> http://public.kitware.com/mailman/listinfo/rtk-users > >>>> > >>> > >> > >> > >> -- > >> -- > >> Cyril Mory, Post-doc > >> CREATIS > >> Leon Berard cancer treatment center > >> 28 rue La?nnec > >> 69373 Lyon cedex 08 FRANCE > >> > >> Mobile: +33 6 69 46 73 79 > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lomahu at gmail.com Thu Sep 18 22:53:45 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 22:53:45 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Simon, It appears I have to apologize again and take back the question about the SART reconstruction. I re-ran on the big data set (644 projections). This time no memory issue and SART worked well. For some reason it did not work on the small set initially. I should have run more tests before posting here. Sorry about the noise and thanks a lot for looking into the "issues". -howard On Thu, Sep 18, 2014 at 5:47 PM, Howard wrote: > Hi Simon, > > I apologize for the confusion about the dataset. Actually I did not use > the same dataset. > The reason is that the set I used for rtkfdk test had 644 projections and > with it rtksart > crashed because of memory (I only allocated 3GB memory to Virtualbox from > my window7). > So for the SART test I changed to a small projection set (366 projections) > where the object is > a cube with dimension of 5cm x 5cm x 5cm. That's why I chose a smaller > reconstruction > size 128*2. With the same dataset when I ran rtkfdk I got very good > reconstruction. > > -howard > > On Thu, Sep 18, 2014 at 4:41 PM, Simon Rit > wrote: > >> Hi Howard, >> Assuming you're using the same dataset as the one you used for the >> rtkfdk test, you have decreased its size. For example, x was 2*256 mm >> with rtkfdk and it is now 128*2. On the slice you sent, we could see >> that a part of the phantom on the right was missing so you should keep >> the same size except for this side that should be larger, certainly >> not reduce the size. >> For the display, I would suggest to use the same window/level as for >> your FDK reconstruction. The two reconstruction algorithms reconstruct >> the same average intensities, only the texture is different. >> Good luck, >> Simon >> >> On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: >> > Hi Cyril, >> > >> > I am testing SART reconstruction according to what you described, >> specifying >> > dimension, spacing and origin: >> > >> > rtksart \ >> > --geometry varianGeometry \ >> > --regexp .*.hnd \ >> > --path ../Scan0 \ >> > --output sart_rec.mha \ >> > --verbose \ >> > --spacing 2.0\ >> > --dimension 128,100,128 \ >> > --origin -127.5,-99,-127.5 >> > >> > but the reconstruction gave a plain image with no object/contrast. I >> checked >> > the grayscale values on the reconstructed images and did see they ranged >> > from -1.78 to 3 (this may not be precise but give you some idea). I >> tried to >> > adjust window level but couldn't see any contrast. I must miss something >> > here. Please advise. Thanks! >> > >> > -howard >> > >> > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory >> > wrote: >> >> >> >> Howard, >> >> >> >> For SART reconstructions, you do not need padding, and you can't do >> Hann >> >> windowing because no ramp filtering is applied. SART usually outputs >> >> smoother images, so you probably will not need this denoising trick >> anyway. >> >> However, you should be careful about one thing : your object has to be >> >> fully contained in the reconstructed volume, or you will observe >> important >> >> border effects. Use the --dimension, --spacing and --origin options to >> >> ensure this. >> >> >> >> All the best, >> >> Cyril >> >> >> >> >> >> On 09/18/2014 04:47 PM, Howard wrote: >> >> >> >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working >> >> beautifully. Jus another quick question: for rtksart executable, are we >> >> still able to do padding and hanning window trick as well? >> >> >> >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit >> >> wrote: >> >>> >> >>> Hi, >> >>> I fully agree with Cyril. Something else : you might want to mask out >> >>> what is outside the field-of-view using the rtkfieldofview >> executable. Your >> >>> ring corresponds to that border. See an example here: >> >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >> >>> Simon >> >>> >> >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory >> >>> wrote: >> >>>> >> >>>> Hi Howard, >> >>>> >> >>>> The bright ring artifact is typically caused by high-pass filtering >> (the >> >>>> ramp filter used in FDK) of truncated projection data (when >> projections have >> >>>> non-zero values on the sides, the edge of the projection makes a >> sharp >> >>>> transition to zero). A classical answer to this problem is to pad the >> >>>> projections, for example with values starting from the values on the >> side >> >>>> and slowly decreasing to zero. >> >>>> >> >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your >> options >> >>>> (or more than 0.1 if it isn't enough). >> >>>> Also, I noticed that your reconstructed image seems quite noisy. You >> >>>> might want to use a Hann windowing of the ramp filter to reduce the >> noise >> >>>> amplification effect of high-pass filtering. You can do that by >> adding >> >>>> "--hann 0.5" to your options. Note that the argument is a cut-off >> frequency, >> >>>> so smaller values mean more smoothing. >> >>>> >> >>>> Best regards, >> >>>> Cyril >> >>>> >> >>>> >> >>>> On 09/18/2014 05:21 AM, Howard wrote: >> >>>> >> >>>> Hi, >> >>>> >> >>>> I use rtkfdk to reconstruct varian cbct images following the example >> on >> >>>> rtk wiki page. The projections were obtained with half fan mode >> because it >> >>>> is an abdominal region with the patient lateral x AP dimension of >> 550x550. >> >>>> The reconstructed cbct images have a big bright circle around >> >>>> the image. Please see the image: >> >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> >>>> >> >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands >> were >> >>>> used: >> >>>> >> >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >> >>>> --regexp Proj_.*.hnd -o varianGeometry >> >>>> and >> >>>> >> >>>> rtkfdk \ >> >>>> --geometry varianGeometry \ >> >>>> --regexp .*.hnd \ >> >>>> --path ../Scan0 \ >> >>>> --output rec.mha \ >> >>>> --verbose \ >> >>>> --spacing 2.0,2.0,2.0 \ >> >>>> --dimension 256,100,256 \ >> >>>> The projections are stored in the standard varian format: Scan0 and >> >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >> handled >> >>>> the half fan geometry properly. What did I do wrong then? Many >> thanks! >> >>>> >> >>>> -howard >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> Rtk-users mailing list >> >>>> Rtk-users at public.kitware.com >> >>>> http://public.kitware.com/mailman/listinfo/rtk-users >> >>>> >> >>>> >> >>>> -- >> >>>> -- >> >>>> Cyril Mory, Post-doc >> >>>> CREATIS >> >>>> Leon Berard cancer treatment center >> >>>> 28 rue La?nnec >> >>>> 69373 Lyon cedex 08 FRANCE >> >>>> >> >>>> Mobile: +33 6 69 46 73 79 >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> Rtk-users mailing list >> >>>> Rtk-users at public.kitware.com >> >>>> http://public.kitware.com/mailman/listinfo/rtk-users >> >>>> >> >>> >> >> >> >> >> >> -- >> >> -- >> >> Cyril Mory, Post-doc >> >> CREATIS >> >> Leon Berard cancer treatment center >> >> 28 rue La?nnec >> >> 69373 Lyon cedex 08 FRANCE >> >> >> >> Mobile: +33 6 69 46 73 79 >> > >> > >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ucabba1 at ucl.ac.uk Fri Sep 19 07:04:49 2014 From: ucabba1 at ucl.ac.uk (Ben Champion) Date: Fri, 19 Sep 2014 12:04:49 +0100 Subject: [Rtk-users] Would you like RTK trainings ? In-Reply-To: <541AA5CA.9050306@creatis.insa-lyon.fr> References: <541AA5CA.9050306@creatis.insa-lyon.fr> Message-ID: <541C0DD1.4070203@ucl.ac.uk> Hi Cyril, Having used RTK (and ITK) for approximately 1 year now, I have learnt mainly by trial and error, and by reading the source code and wiki examples. (Aside: many thanks to the RTK community for these!) Nevertheless, I think I could benefit from some kind of RTK training for my future work. The kinds of topics that would be most interesting to me are: - theory/use of reconstruction methods other than FDK (e.g. SART, 4D ROOSTER, ...) - motion compensated reconstruction - compressed sensing in tomography - extending RTK (and contributing back to the community) That said, I would not be averse to at least some discussion of "basics of tomography", "starting to use RTK with your own data", and "practical issues in circular CBCT" and in fact it could help fill some gaps in my knowledge. Best wishes, Ben -- Doctoral Student (MRes/EngD) Centre for Medical Image Computing University College London Room 3.01 Engineering Front Building Torrington Place LONDON WC1E 7JE On 18/09/14 10:28, Cyril Mory wrote: > Hi RTK users, > > A recent question on the mailing list by Louie triggered a > conversation between us. Louie asked whether there exists some sort of > training or workshop on RTK. In a nutshell, the answer is "No, not > yet, but why not talk about it ?". > > So I'd like to start some sort of "poll" to gather the requests you > might have on this topic: > Do you need / want / would like a training on RTK ? > If so, can you be more specific on what you would like to learn ? > (basics of tomography, how to start using RTK on your data, practical > issues in circular cone beam CT, motion compensated reconstruction, > compressed sensing in tomography, ITK programming, ... this is not an > exhaustive list) > > I think this is enough questions for the time being. The rest will > depend on your answers. > > Looking forward to reading you, > From lomahu at gmail.com Fri Sep 19 09:47:58 2014 From: lomahu at gmail.com (Howard) Date: Fri, 19 Sep 2014 09:47:58 -0400 Subject: [Rtk-users] Would you like RTK trainings ? In-Reply-To: <541C0DD1.4070203@ucl.ac.uk> References: <541AA5CA.9050306@creatis.insa-lyon.fr> <541C0DD1.4070203@ucl.ac.uk> Message-ID: Hi Cyril, It would be extremely helpful to have an RTK training. As Ben listed, I have similar interests. The topics I am very interested in are the following: 1. Basic principles of reconstruction with FDK and SART 2. Coding framework in RTK 3. Practical examples using iterative reconstruction technique 4. Compressed sensing applications in reconstruction 5. Practical issues in reconstruction specially CBCT reconstruction. Thanks! -howard On Fri, Sep 19, 2014 at 7:04 AM, Ben Champion wrote: > Hi Cyril, > > Having used RTK (and ITK) for approximately 1 year now, I have learnt > mainly by trial and error, and by reading the source code and wiki > examples. (Aside: many thanks to the RTK community for these!) > > Nevertheless, I think I could benefit from some kind of RTK training for > my future work. The kinds of topics that would be most interesting to me > are: > > - theory/use of reconstruction methods other than FDK (e.g. SART, 4D > ROOSTER, ...) > - motion compensated reconstruction > - compressed sensing in tomography > - extending RTK (and contributing back to the community) > > That said, I would not be averse to at least some discussion of "basics of > tomography", "starting to use RTK with your own data", and "practical > issues in circular CBCT" and in fact it could help fill some gaps in my > knowledge. > > Best wishes, > > Ben > -- > Doctoral Student (MRes/EngD) > Centre for Medical Image Computing > University College London > Room 3.01 Engineering Front Building > Torrington Place > LONDON > WC1E 7JE > > > > On 18/09/14 10:28, Cyril Mory wrote: > >> Hi RTK users, >> >> A recent question on the mailing list by Louie triggered a conversation >> between us. Louie asked whether there exists some sort of training or >> workshop on RTK. In a nutshell, the answer is "No, not yet, but why not >> talk about it ?". >> >> So I'd like to start some sort of "poll" to gather the requests you might >> have on this topic: >> Do you need / want / would like a training on RTK ? >> If so, can you be more specific on what you would like to learn ? (basics >> of tomography, how to start using RTK on your data, practical issues in >> circular cone beam CT, motion compensated reconstruction, compressed >> sensing in tomography, ITK programming, ... this is not an exhaustive list) >> >> I think this is enough questions for the time being. The rest will depend >> on your answers. >> >> Looking forward to reading you, >> >> > _______________________________________________ > 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: From padraig.looney at gmail.com Mon Sep 8 08:43:27 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Mon, 8 Sep 2014 13:43:27 +0100 Subject: [Rtk-users] RTK helloworld Message-ID: Dear all, I am trying to get the HelloWorld example running but I get a large number of errors after the build. I am using ITK-4.6 and have followed the instructions as per http://wiki.openrtk.org/index.php/RTK_wiki_help#Tutorial_0_-_Building_an_HelloWorld_application_with_RTK My executable is built and is working but I have hundreds of errors. The first few are. CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::MemoryAllocationError::MemoryAllocationError(std::string const&, unsigned int, std::string const&, std::string const&)': main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x35): undefined reference to `itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, std::string const&, std::string const&)' main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x40): undefined reference to `vtable for itk::MemoryAllocationError' CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::Object::SetObjectName(std::string)': main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x25): undefined reference to `itk::Object::GetDebug() const' main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x2e): undefined reference to `itk::Object::GetGlobalWarningDisplay()' main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x12e): undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::DataObject::SetRealTimeStamp(itk::RealTimeStamp)': main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x25): undefined reference to `itk::Object::GetDebug() const' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x2e): undefined reference to `itk::Object::GetGlobalWarningDisplay()' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0xf1): undefined reference to `itk::operator<<(std::ostream&, itk::RealTimeStamp const&)' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x12e): undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x169): undefined reference to `itk::RealTimeStamp::operator!=(itk::RealTimeStamp const&) const' Thanks P?draig -------------- next part -------------- An HTML attachment was scrubbed... URL: From julien.jomier at kitware.com Mon Sep 8 09:11:50 2014 From: julien.jomier at kitware.com (Julien Jomier) Date: Mon, 08 Sep 2014 15:11:50 +0200 Subject: [Rtk-users] RTK helloworld In-Reply-To: References: Message-ID: <540DAB16.3050904@kitware.com> Dear Padraig, When you say "built and is working but I have hundreds of errors" do you mean that you have successfully compiled and linked the example? It seems that your example cannot find the ITK libraries. Are you building ITK and RTK using BUILD_SHARED_LIBS to ON in CMake? Julien On 08/09/2014 14:43, Padraig Looney wrote: > Dear all, > > I am trying to get the HelloWorld example running but I get a large > number of errors after the build. I am using ITK-4.6 and have followed > the instructions as per > > http://wiki.openrtk.org/index.php/RTK_wiki_help#Tutorial_0_-_Building_an_HelloWorld_application_with_RTK > > My executable is built and is working but I have hundreds of errors. The > first few are. > > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::MemoryAllocationError::MemoryAllocationError(std::string const&, > unsigned int, std::string const&, std::string const&)': > main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x35): > undefined reference to > `itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, > std::string const&, std::string const&)' > main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x40): > undefined reference to `vtable for itk::MemoryAllocationError' > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::Object::SetObjectName(std::string)': > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x2e): > undefined reference to `itk::Object::GetGlobalWarningDisplay()' > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x12e): > undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::DataObject::SetRealTimeStamp(itk::RealTimeStamp)': > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x2e): > undefined reference to `itk::Object::GetGlobalWarningDisplay()' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0xf1): > undefined reference to `itk::operator<<(std::ostream&, > itk::RealTimeStamp const&)' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x12e): > undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x169): > undefined reference to > `itk::RealTimeStamp::operator!=(itk::RealTimeStamp const&) const' > > > Thanks > P?draig > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > From julien.jomier at kitware.com Mon Sep 8 09:32:47 2014 From: julien.jomier at kitware.com (Julien Jomier) Date: Mon, 08 Sep 2014 15:32:47 +0200 Subject: [Rtk-users] RTK helloworld In-Reply-To: References: <540DAB16.3050904@kitware.com> Message-ID: <540DAFFF.4080103@kitware.com> I'm guessing the ITK shared libs cannot be found. Can you specify the path where the ITK libraries (.so) are located in the LD_LIBRARY_PATH before your run make? Julien On 08/09/2014 15:23, Padraig Looney wrote: > It has successfully compiled using ccmake and make. I presume that has > successfully linked it. The errors were produced with make. > > Both the SharedLibs variables are set to ON. > > I've tried building RTK two different ways. Once by allowing cmake to > find ITK. This way ITK_DIR is set to /usr/local/lib/cmake/ITK-4.6 > > The other way I built it was by setting ITK_DIR to be the location of > the build directory. Which is what I understand from the wiki > > "When CMake asks for the ITK_DIR, specify the binary directory where ITK > is built and choose CMAKE_BUILD_TYPE (default: Release)" > > It didn't make any difference though. > > On Mon, Sep 8, 2014 at 2:11 PM, Julien Jomier > wrote: > > Dear Padraig, > > When you say "built and is working but I have hundreds of errors" do > you mean that you have successfully compiled and linked the example? > It seems that your example cannot find the ITK libraries. Are you > building ITK and RTK using BUILD_SHARED_LIBS to ON in CMake? > > Julien > > > On 08/09/2014 14:43, Padraig Looney wrote: > > Dear all, > > I am trying to get the HelloWorld example running but I get a large > number of errors after the build. I am using ITK-4.6 and have > followed > the instructions as per > > http://wiki.openrtk.org/index.__php/RTK_wiki_help#Tutorial_0_-___Building_an_HelloWorld___application_with_RTK > > > My executable is built and is working but I have hundreds of > errors. The > first few are. > > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::MemoryAllocationError::__MemoryAllocationError(std::__string > const&, > unsigned int, std::string const&, std::string const&)': > main.cpp:(.text.___ZN3itk21MemoryAllocationErrorC__2ERKSsjS2_S2_[___ZN3itk21MemoryAllocationErrorC__5ERKSsjS2_S2_]+0x35): > undefined reference to > `itk::ExceptionObject::__ExceptionObject(std::string const&, > unsigned int, > std::string const&, std::string const&)' > main.cpp:(.text.___ZN3itk21MemoryAllocationErrorC__2ERKSsjS2_S2_[___ZN3itk21MemoryAllocationErrorC__5ERKSsjS2_S2_]+0x40): > undefined reference to `vtable for itk::MemoryAllocationError' > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::Object::SetObjectName(__std::string)': > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x2e): > undefined reference to `itk::Object::__GetGlobalWarningDisplay()' > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x12e): > undefined reference to > `itk::__OutputWindowDisplayDebugText(__char const*)' > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::DataObject::__SetRealTimeStamp(itk::__RealTimeStamp)': > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x2e): > undefined reference to `itk::Object::__GetGlobalWarningDisplay()' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0xf1): > undefined reference to `itk::operator<<(std::ostream&__, > itk::RealTimeStamp const&)' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x12e): > undefined reference to > `itk::__OutputWindowDisplayDebugText(__char const*)' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x169): > undefined reference to > `itk::RealTimeStamp::operator!__=(itk::RealTimeStamp const&) const' > > > Thanks > P?draig > > > _________________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/__mailman/listinfo/rtk-users > > > From theday79 at gmail.com Mon Sep 8 23:22:32 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Mon, 8 Sep 2014 23:22:32 -0400 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> Message-ID: <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> Hi all, I've been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven't had any problem with full scan images (360 degree scan), I found that rtkfdk doesn't work well with my short scan images obtained from our Elekta XVI system. I've used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn't change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: short_scan.PNG Type: image/png Size: 166828 bytes Desc: not available URL: From simon.rit at creatis.insa-lyon.fr Tue Sep 9 01:24:25 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Tue, 9 Sep 2014 07:24:25 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> Message-ID: Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > _______________________________________________ > 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: From padraig.looney at gmail.com Tue Sep 9 06:05:01 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 9 Sep 2014 11:05:01 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction Message-ID: When I try to run the "FirstReconstruction" example I am getting a segmentation fault. The following is the output from gdb Program received signal SIGSEGV, Segmentation fault. 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue Sep 9 06:32:29 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 09 Sep 2014 12:32:29 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: Message-ID: <540ED73D.3080003@creatis.insa-lyon.fr> Hi Padraig, With so little information, there isn't much we can do to help you. I usually track segfaults by compiling in Debug mode (by setting "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT Creator (any decent IDE will do just fine, and should stop when the segfault occurs, allowing you to trace it back) Good luck, Cyril On 09/09/2014 12:05 PM, Padraig Looney wrote: > When I try to run the "FirstReconstruction" example I am getting a > segmentation fault. > > The following is the output from gdb > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () > > > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Tue Sep 9 08:40:48 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Tue, 9 Sep 2014 14:40:48 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing wrote: > Hi all, > > > > We have experienced the same problem as YangKyun in our institution. Find > attached a screendump of a short scan, and the ElektaGeometry file. We are > reconstructing on CPU using RTK 1.0.0, and have encountered the strange > behavior a couple of times without being able to find any patterns. Our > images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree > scan with the S20 filter on an Elekta XVI machine. > > > > Hope this helps in tracking down the problem. > > > > > > Best regards, > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *P? vegne > af *Simon Rit > *Sendt:* 9. september 2014 07:24 > *Til:* Yang Kyun Park > *Cc:* rtk-users at public.kitware.com > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Hi, > > Everything looks correct in what you did. What version of RTK did you use? > It looks like a bug in the angular weighting of the projections coming > from the discretization of the integral on the gantry angle. Could you send > us a copy of ElektaGeometry.xml and tell us what was the dimension of the > projections? We will look into it. > Thanks for the report, > Simon > > > > On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > > _______________________________________________ > 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: From theday79 at gmail.com Tue Sep 9 11:43:32 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Tue, 9 Sep 2014 11:43:32 -0400 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: <002e01cfcc44$d01763f0$70462bd0$@gmail.com> Hi Simon, Thank your for the prompt update. Now it works perfectly! Best, YangKyun From: simon.rit at gmail.com [mailto:simon.rit at gmail.com] On Behalf Of Simon Rit Sent: Tuesday, September 09, 2014 8:41 AM To: Rune Slot Thing Cc: Yang Kyun Park; rtk-users at public.kitware.com Subject: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: Hi all, We have experienced the same problem as YangKyun in our institution. Find attached a screendump of a short scan, and the ElektaGeometry file. We are reconstructing on CPU using RTK 1.0.0, and have encountered the strange behavior a couple of times without being able to find any patterns. Our images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree scan with the S20 filter on an Elekta XVI machine. Hope this helps in tracking down the problem. Best regards, Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: Rtk-users [mailto:rtk-users-bounces at public.kitware.com ] P? vegne af Simon Rit Sendt: 9. september 2014 07:24 Til: Yang Kyun Park Cc: rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park > wrote: Hi all, I?ve been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven?t had any problem with full scan images (360 degree scan), I found that rtkfdk doesn?t work well with my short scan images obtained from our Elekta XVI system. I?ve used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn?t change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun _______________________________________________ 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: From Rune.Slot.Thing at rsyd.dk Wed Sep 10 04:39:05 2014 From: Rune.Slot.Thing at rsyd.dk (Rune Slot Thing) Date: Wed, 10 Sep 2014 08:39:05 +0000 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> Hi Simon, I asked our IT-guy to recompile the new commit, but unfortunately he was unsuccessful. Here is what he writes: I've downloaded the master from git today and compiled in the VS 2008 pro 64bit on Win7 with itk 4.3.0 and fftw. The new fix does not compile because of issues on line 92-99 in rtkParkerShortScanImageFilter.txx error C2678: binary '==' : no operator found which takes a left-hand operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no acceptable conversion) and on line 73 error C2923: 'itk::Vector' : 'rtk::DaubechiesWaveletsConvolutionImageFilter::Pass' is not a valid template type argument for parameter 'T' f:\programmering\cxx\lib\rtk\master-2014-09-10\code\rtkDaubechiesWaveletsConvolutionImageFilter.h 73 rtkadmmwavelets Is it a typo with to identical lines (LINE 93 = 94)? Thanks again for your prompt help. Best regards, Rune Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: simon.rit at gmail.com [mailto:simon.rit at gmail.com] P? vegne af Simon Rit Sendt: 9. september 2014 14:41 Til: Rune Slot Thing Cc: Yang Kyun Park; rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: Hi all, We have experienced the same problem as YangKyun in our institution. Find attached a screendump of a short scan, and the ElektaGeometry file. We are reconstructing on CPU using RTK 1.0.0, and have encountered the strange behavior a couple of times without being able to find any patterns. Our images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree scan with the S20 filter on an Elekta XVI machine. Hope this helps in tracking down the problem. Best regards, Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: Rtk-users [mailto:rtk-users-bounces at public.kitware.com] P? vegne af Simon Rit Sendt: 9. september 2014 07:24 Til: Yang Kyun Park Cc: rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park > wrote: Hi all, I?ve been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven?t had any problem with full scan images (360 degree scan), I found that rtkfdk doesn?t work well with my short scan images obtained from our Elekta XVI system. I?ve used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn?t change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun _______________________________________________ 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: From wuchao04 at gmail.com Wed Sep 10 07:35:27 2014 From: wuchao04 at gmail.com (Chao Wu) Date: Wed, 10 Sep 2014 13:35:27 +0200 Subject: [Rtk-users] coordinates of 3D volume Message-ID: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 08:38:43 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 14:38:43 +0200 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: Message-ID: Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu wrote: > Hi all, > > I see that rtk use certain industrial standard for the coordinates of 2D > projections and 3D volumes. However in medical imaging, the xy planes of a > volume are usually transaxial slices while the 3rd dimension is aligned > with the axis of rotation. I would like to switch to this coordinates in my > own code. Is there anyone who can give me some comments and suggestions > about where to start? Thanks. > > Regards, > Chao > > _______________________________________________ > 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: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 08:43:54 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 14:43:54 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> Message-ID: I wonder why it compiles on Linux... but anyway, sorry, it's been fixed. On Wed, Sep 10, 2014 at 10:39 AM, Rune Slot Thing wrote: > Hi Simon, > > > > I asked our IT-guy to recompile the new commit, but unfortunately he was > unsuccessful. Here is what he writes: > > > > I've downloaded the master from git today and compiled in the VS 2008 pro > 64bit on Win7 with itk 4.3.0 and fftw. > > > > The new fix does not compile because of issues on line 92-99 in > rtkParkerShortScanImageFilter.txx > > > > error C2678: binary '==' : no operator found which takes a left-hand > operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no > acceptable conversion) > > > > and on line 73 > > > > error C2923: 'itk::Vector' : > 'rtk::DaubechiesWaveletsConvolutionImageFilter::Pass' is not a > valid template type argument for parameter 'T' > f:\programmering\cxx\lib\rtk\master-2014-09-10\code\rtkDaubechiesWaveletsConvolutionImageFilter.h > 73 rtkadmmwavelets > > Is it a typo with to identical lines (LINE 93 = 94)? > > > > Thanks again for your prompt help. > > > > Best regards, > > Rune > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* simon.rit at gmail.com [mailto:simon.rit at gmail.com] *P? vegne af *Simon > Rit > *Sendt:* 9. september 2014 14:41 > *Til:* Rune Slot Thing > *Cc:* Yang Kyun Park; rtk-users at public.kitware.com > > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Thank you Rune, this was very helpful. The pattern is that several > projections have the same gantry angle on one side of the gantry angle gap. > Something that happens with Elekta Synergy... I think that the bug has been > fixed: > > https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f > > > > On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: > > Hi all, > > > > We have experienced the same problem as YangKyun in our institution. Find > attached a screendump of a short scan, and the ElektaGeometry file. We are > reconstructing on CPU using RTK 1.0.0, and have encountered the strange > behavior a couple of times without being able to find any patterns. Our > images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree > scan with the S20 filter on an Elekta XVI machine. > > > > Hope this helps in tracking down the problem. > > > > > > Best regards, > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *P? vegne > af *Simon Rit > *Sendt:* 9. september 2014 07:24 > *Til:* Yang Kyun Park > *Cc:* rtk-users at public.kitware.com > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Hi, > > Everything looks correct in what you did. What version of RTK did you use? > It looks like a bug in the angular weighting of the projections coming > from the discretization of the integral on the gantry angle. Could you send > us a copy of ElektaGeometry.xml and tell us what was the dimension of the > projections? We will look into it. > Thanks for the report, > Simon > > > > On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > > _______________________________________________ > 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: From theday79 at gmail.com Wed Sep 10 09:47:17 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Wed, 10 Sep 2014 09:47:17 -0400 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: Message-ID: <003801cfccfd$bd111800$37334800$@gmail.com> Hi Chao, I had the same issue on my work and I?ve managed to fix it by the following codes. I?m not sure this is the optimal way to do it but at least it worked in my case. (Or you can transform it in 3D Slicer. In transform menu, you need to apply the following matrix: 0 0 -1 0 1 0 0 0 0 1 0 0 0 0 0 1 to the target image, harden the transform then export the image.) Best, YangKyun // OutputImageType = // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction //Same image type from original image -3D & float OutputImageType::IndexType start_trans; start_trans[0] = 0; start_trans[1] = 0; start_trans[2] = 0; OutputImageType::SizeType size_trans; size_trans[0] = sizeOutput[0]; // X //410 size_trans[1] = sizeOutput[2]; //Y // 410 size_trans[2] = sizeOutput[1]; //Z // 120? OutputImageType::SpacingType spacing_trans; spacing_trans[0] = spacing[0]; spacing_trans[1] = spacing[2]; spacing_trans[2] = spacing[1]; OutputImageType::PointType Origin_trans; Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; OutputImageType::RegionType region_trans; region_trans.SetSize(size_trans); region_trans.SetIndex(start_trans); /* 2) Prepare Target image */ OutputImageType::Pointer targetImg = streamerBP->GetOutput(); /* 3) Configure transform */ typedef itk::Euler3DTransform< double > TransformType; TransformType::Pointer transform = TransformType::New(); TransformType::ParametersType param; param.SetSize(6); //MAXIMUM PARAM NUMBER: 6!!! param.put(0, 0.0); //rot X // 0.5 = PI/2 param.put(1, itk::Math::pi/2.0);//rot Y param.put(2, itk::Math::pi/-2.0);//rot Z param.put(3, 0.0); // Trans X mm param.put(4, 0.0); // Trans Y mm param.put(5, 0.0); // Trans Z mm TransformType::ParametersType fixedParam(3); //rotation center fixedParam.put(0,0); fixedParam.put(1,0); fixedParam.put(2,0); transform->SetParameters(param); transform->SetFixedParameters(fixedParam); //Center of the Transform cout << "Transform matrix:" << " " << endl; cout << transform->GetMatrix() << std::endl; typedef itk::ResampleImageFilter ResampleFilterType; ResampleFilterType::Pointer resampler = ResampleFilterType::New(); //OutputImageType::RegionType fixedImg_Region = fixedImg->GetLargestPossibleRegion().GetSize(); resampler->SetInput(targetImg); resampler->SetSize(size_trans); resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large Canvas resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 resampler->SetOutputDirection( targetImg->GetDirection() ); //image normal? resampler->SetTransform(transform); //LR flip cout << "LR flip filter is being applied" << endl; typedef itk::FlipImageFilter< OutputImageType > FilterType; FilterType::Pointer flipFilter = FilterType::New(); typedef FilterType::FlipAxesArrayType FlipAxesArrayType; FlipAxesArrayType arrFlipAxes; arrFlipAxes[0] = 1; arrFlipAxes[1] = 0; arrFlipAxes[2] = 0; flipFilter->SetFlipAxes(arrFlipAxes); flipFilter->SetInput(resampler->GetOutput()); flipFilter->Update(); //Use flipFilter->GetOutput() for further process From: Rtk-users [mailto:rtk-users-bounces at public.kitware.com] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 8:39 AM To: Chao Wu Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu > wrote: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao _______________________________________________ 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: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 10:50:00 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 16:50:00 +0200 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: <003801cfccfd$bd111800$37334800$@gmail.com> References: <003801cfccfd$bd111800$37334800$@gmail.com> Message-ID: This option works but there is a risk of an additional interpolation by the resampler and it costs some computing time. The other option I suggested requires to modify the transform parameter of the source (in this example, add constantImageSource->SetDirection(transform->GetMatrix()); where transform is that of Yang's example, then use itk::ChangeImageInformation to reset the transform to identity. On Wed, Sep 10, 2014 at 3:47 PM, Yang Kyun Park wrote: > Hi Chao, > > > > I had the same issue on my work and I?ve managed to fix it by the > following codes. > > I?m not sure this is the optimal way to do it but at least it worked in my > case. > > > > (Or you can transform it in 3D Slicer. > > In transform menu, you need to apply the following matrix: > > 0 0 -1 0 > > 1 0 0 0 > > 0 1 0 0 > > 0 0 0 1 > > to the target image, harden the transform then export the image.) > > > > Best, > > YangKyun > > > > > > // OutputImageType = > > // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction > > > > //Same image type from original image -3D & float > > OutputImageType::IndexType start_trans; > > start_trans[0] = 0; > > start_trans[1] = 0; > > start_trans[2] = 0; > > > > OutputImageType::SizeType size_trans; > > size_trans[0] = sizeOutput[0]; // X //410 > > size_trans[1] = sizeOutput[2]; //Y // 410 > > size_trans[2] = sizeOutput[1]; //Z // 120? > > > > OutputImageType::SpacingType spacing_trans; > > spacing_trans[0] = spacing[0]; > > spacing_trans[1] = spacing[2]; > > spacing_trans[2] = spacing[1]; > > > > OutputImageType::PointType Origin_trans; > > Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; > > Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; > > Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; > > > > OutputImageType::RegionType region_trans; > > region_trans.SetSize(size_trans); > > region_trans.SetIndex(start_trans); > > > > /* 2) Prepare Target image */ > > OutputImageType::Pointer targetImg = streamerBP->GetOutput(); > > > > /* 3) Configure transform */ > > typedef itk::Euler3DTransform< double > TransformType; > > TransformType::Pointer transform = TransformType::New(); > > > > TransformType::ParametersType param; > > param.SetSize(6); > > //MAXIMUM PARAM NUMBER: 6!!! > > param.put(0, 0.0); //rot X // 0.5 = PI/2 > > param.put(1, itk::Math::pi/2.0);//rot Y > > param.put(2, itk::Math::pi/-2.0);//rot Z > > param.put(3, 0.0); // Trans X mm > > param.put(4, 0.0); // Trans Y mm > > param.put(5, 0.0); // Trans Z mm > > > > TransformType::ParametersType fixedParam(3); //rotation center > > fixedParam.put(0,0); > > fixedParam.put(1,0); > > fixedParam.put(2,0); > > > > transform->SetParameters(param); > > transform->SetFixedParameters(fixedParam); //Center of the > Transform > > > > cout << "Transform matrix:" << " " << endl; > > cout << transform->GetMatrix() << std::endl; > > > > typedef itk::ResampleImageFilter > ResampleFilterType; > > ResampleFilterType::Pointer resampler = ResampleFilterType::New(); > > //OutputImageType::RegionType fixedImg_Region = > fixedImg->GetLargestPossibleRegion().GetSize(); > > > > resampler->SetInput(targetImg); > > resampler->SetSize(size_trans); > > resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large > Canvas > > resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 > > resampler->SetOutputDirection( targetImg->GetDirection() ); //image > normal? > > resampler->SetTransform(transform); > > > > //LR flip > > > > cout << "LR flip filter is being applied" << endl; > > > > typedef itk::FlipImageFilter< OutputImageType > FilterType; > > > > FilterType::Pointer flipFilter = FilterType::New(); > > typedef FilterType::FlipAxesArrayType FlipAxesArrayType; > > > > FlipAxesArrayType arrFlipAxes; > > arrFlipAxes[0] = 1; > > arrFlipAxes[1] = 0; > > arrFlipAxes[2] = 0; > > > > flipFilter->SetFlipAxes(arrFlipAxes); > > flipFilter->SetInput(resampler->GetOutput()); > > flipFilter->Update(); > > > > //Use flipFilter->GetOutput() for further process > > > > > > > > *From:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *On > Behalf Of *Simon Rit > *Sent:* Wednesday, September 10, 2014 8:39 AM > *To:* Chao Wu > *Cc:* rtk-users at openrtk.org > *Subject:* Re: [Rtk-users] coordinates of 3D volume > > > > Hi, > > I wish there was a single industrial standard... You have the DICOM > standard in mind and I used an IEC standard (see wiki). You can play with > the --direction option to orientate the voxel axes of your image (see > itk::Image documentation) and then reset the direction of your output image > to identity, I think that will do what you want. > > Simon > > > > On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu wrote: > > Hi all, > > > > I see that rtk use certain industrial standard for the coordinates of 2D > projections and 3D volumes. However in medical imaging, the xy planes of a > volume are usually transaxial slices while the 3rd dimension is aligned > with the axis of rotation. I would like to switch to this coordinates in my > own code. Is there anyone who can give me some comments and suggestions > about where to start? Thanks. > > > > Regards, > > Chao > > > _______________________________________________ > 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: From theday79 at gmail.com Wed Sep 10 10:56:28 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Wed, 10 Sep 2014 10:56:28 -0400 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: <003801cfccfd$bd111800$37334800$@gmail.com> Message-ID: <005e01cfcd07$6783cdb0$368b6910$@gmail.com> Hi Simon, Thanks for the good tip. Let me try out your approach too! YangKyun From: simon.rit at gmail.com [mailto:simon.rit at gmail.com] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 10:50 AM To: Yang Kyun Park Cc: Chao Wu; rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume This option works but there is a risk of an additional interpolation by the resampler and it costs some computing time. The other option I suggested requires to modify the transform parameter of the source (in this example, add constantImageSource->SetDirection(transform->GetMatrix()); where transform is that of Yang's example, then use itk::ChangeImageInformation to reset the transform to identity. On Wed, Sep 10, 2014 at 3:47 PM, Yang Kyun Park > wrote: Hi Chao, I had the same issue on my work and I?ve managed to fix it by the following codes. I?m not sure this is the optimal way to do it but at least it worked in my case. (Or you can transform it in 3D Slicer. In transform menu, you need to apply the following matrix: 0 0 -1 0 1 0 0 0 0 1 0 0 0 0 0 1 to the target image, harden the transform then export the image.) Best, YangKyun // OutputImageType = // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction //Same image type from original image -3D & float OutputImageType::IndexType start_trans; start_trans[0] = 0; start_trans[1] = 0; start_trans[2] = 0; OutputImageType::SizeType size_trans; size_trans[0] = sizeOutput[0]; // X //410 size_trans[1] = sizeOutput[2]; //Y // 410 size_trans[2] = sizeOutput[1]; //Z // 120? OutputImageType::SpacingType spacing_trans; spacing_trans[0] = spacing[0]; spacing_trans[1] = spacing[2]; spacing_trans[2] = spacing[1]; OutputImageType::PointType Origin_trans; Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; OutputImageType::RegionType region_trans; region_trans.SetSize(size_trans); region_trans.SetIndex(start_trans); /* 2) Prepare Target image */ OutputImageType::Pointer targetImg = streamerBP->GetOutput(); /* 3) Configure transform */ typedef itk::Euler3DTransform< double > TransformType; TransformType::Pointer transform = TransformType::New(); TransformType::ParametersType param; param.SetSize(6); //MAXIMUM PARAM NUMBER: 6!!! param.put(0, 0.0); //rot X // 0.5 = PI/2 param.put(1, itk::Math::pi/2.0);//rot Y param.put(2, itk::Math::pi/-2.0);//rot Z param.put(3, 0.0); // Trans X mm param.put(4, 0.0); // Trans Y mm param.put(5, 0.0); // Trans Z mm TransformType::ParametersType fixedParam(3); //rotation center fixedParam.put(0,0); fixedParam.put(1,0); fixedParam.put(2,0); transform->SetParameters(param); transform->SetFixedParameters(fixedParam); //Center of the Transform cout << "Transform matrix:" << " " << endl; cout << transform->GetMatrix() << std::endl; typedef itk::ResampleImageFilter ResampleFilterType; ResampleFilterType::Pointer resampler = ResampleFilterType::New(); //OutputImageType::RegionType fixedImg_Region = fixedImg->GetLargestPossibleRegion().GetSize(); resampler->SetInput(targetImg); resampler->SetSize(size_trans); resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large Canvas resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 resampler->SetOutputDirection( targetImg->GetDirection() ); //image normal? resampler->SetTransform(transform); //LR flip cout << "LR flip filter is being applied" << endl; typedef itk::FlipImageFilter< OutputImageType > FilterType; FilterType::Pointer flipFilter = FilterType::New(); typedef FilterType::FlipAxesArrayType FlipAxesArrayType; FlipAxesArrayType arrFlipAxes; arrFlipAxes[0] = 1; arrFlipAxes[1] = 0; arrFlipAxes[2] = 0; flipFilter->SetFlipAxes(arrFlipAxes); flipFilter->SetInput(resampler->GetOutput()); flipFilter->Update(); //Use flipFilter->GetOutput() for further process From: Rtk-users [mailto:rtk-users-bounces at public.kitware.com ] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 8:39 AM To: Chao Wu Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu > wrote: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao _______________________________________________ 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: From ghostcz at hotmail.com Mon Sep 15 08:09:46 2014 From: ghostcz at hotmail.com (ghostcz) Date: Mon, 15 Sep 2014 14:09:46 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? Message-ID: Dear Rtk users, How can I select one (or maybe more?) specific GPU to run my reconstruction? It seems if I start a second instance of the reconstruction program, it will run on the same GPU. Best regards, Louie -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Mon Sep 15 08:45:24 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Mon, 15 Sep 2014 14:45:24 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: Message-ID: Hi, Good question, I did not hear anybody working on multiple GPUs so far. It currently uses the first Cuda compatible device. I think you'll have to look up in the Cuda manual to see how to switch to another one but there is nothing available in the RTK lib yet. Don't hesitate to suggest some code changes to add this feature. Simon On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: > Dear Rtk users, > > How can I select one (or maybe more?) specific GPU to run my reconstruction? > It seems if I start a second instance of the reconstruction program, it will > run on the same GPU. > > Best regards, > Louie > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > From padraig.looney at gmail.com Tue Sep 16 10:07:05 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 16 Sep 2014 15:07:05 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: <540ED73D.3080003@creatis.insa-lyon.fr> References: <540ED73D.3080003@creatis.insa-lyon.fr> Message-ID: Thanks Cyril, Following your advice I have tracked the seg fault down to line 36 in FirstReconstruction geometry->AddProjection(sid, sdd, angle, isox, isoy); } I realised that I managed to build the examples with RTK fine and the same example runs without a seg fault in the build directory. On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory wrote: > Hi Padraig, > > With so little information, there isn't much we can do to help you. > I usually track segfaults by compiling in Debug mode (by setting > "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT > Creator (any decent IDE will do just fine, and should stop when the > segfault occurs, allowing you to trace it back) > > Good luck, > Cyril > > > On 09/09/2014 12:05 PM, Padraig Looney wrote: > > When I try to run the "FirstReconstruction" example I am getting a > segmentation fault. > > The following is the output from gdb > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () > > > > > _______________________________________________ > Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users > > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue Sep 16 10:23:07 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 16 Sep 2014 16:23:07 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: <540ED73D.3080003@creatis.insa-lyon.fr> Message-ID: <541847CB.8020807@creatis.insa-lyon.fr> Hi Padraig, Does the segfault happen at the first call of geometry->AddProjection(...) or later ? My guess is that, for some reason, geometry is not initialized. Can you make sure it is by setting a breakpoint just before ? You should also make sure that all variables involved in this call, ie "sid", "sdd", "angle", "isox" and "isoy" have reasonable values before the call. It is probably not a good question, yet I have to ask : did you modify something in the file examples/FirstReconstruction/FirstReconstruction.cxx ? Regards, Cyril On 09/16/2014 04:07 PM, Padraig Looney wrote: > Thanks Cyril, > > Following your advice I have tracked the seg fault down to line 36 in > FirstReconstruction > > geometry->AddProjection(sid, > sdd, > angle, > isox, > isoy); > } > > I realised that I managed to build the examples with RTK fine and the > same example runs without a seg fault in the build directory. > > On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory > > wrote: > > Hi Padraig, > > With so little information, there isn't much we can do to help you. > I usually track segfaults by compiling in Debug mode (by setting > "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug > in QT Creator (any decent IDE will do just fine, and should stop > when the segfault occurs, allowing you to trace it back) > > Good luck, > Cyril > > > On 09/09/2014 12:05 PM, Padraig Looney wrote: >> When I try to run the "FirstReconstruction" example I am getting >> a segmentation fault. >> >> The following is the output from gdb >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () >> >> >> >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://public.kitware.com/mailman/listinfo/rtk-users > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From padraig.looney at gmail.com Tue Sep 16 10:38:05 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 16 Sep 2014 15:38:05 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: <541847CB.8020807@creatis.insa-lyon.fr> References: <540ED73D.3080003@creatis.insa-lyon.fr> <541847CB.8020807@creatis.insa-lyon.fr> Message-ID: It happens with the first call. I set a breakpoint just before and it is not empty. I have tried to attach a screen capture of my space. Yes I thought I may have changed something but I have copied the directory twice from the original download in which it builds correctly. I cloned this with git and there are no changes. On Tue, Sep 16, 2014 at 3:23 PM, Cyril Mory wrote: > Hi Padraig, > > Does the segfault happen at the first call of geometry->AddProjection(...) > or later ? > > My guess is that, for some reason, geometry is not initialized. Can you > make sure it is by setting a breakpoint just before ? > You should also make sure that all variables involved in this call, ie > "sid", "sdd", "angle", "isox" and "isoy" have reasonable values before the > call. > > It is probably not a good question, yet I have to ask : did you modify > something in the file examples/FirstReconstruction/FirstReconstruction.cxx > ? > > Regards, > Cyril > > > On 09/16/2014 04:07 PM, Padraig Looney wrote: > > Thanks Cyril, > > Following your advice I have tracked the seg fault down to line 36 in > FirstReconstruction > > geometry->AddProjection(sid, > sdd, > angle, > isox, > isoy); > } > > I realised that I managed to build the examples with RTK fine and the > same example runs without a seg fault in the build directory. > > On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory < > cyril.mory at creatis.insa-lyon.fr> wrote: > >> Hi Padraig, >> >> With so little information, there isn't much we can do to help you. >> I usually track segfaults by compiling in Debug mode (by setting >> "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT >> Creator (any decent IDE will do just fine, and should stop when the >> segfault occurs, allowing you to trace it back) >> >> Good luck, >> Cyril >> >> >> On 09/09/2014 12:05 PM, Padraig Looney wrote: >> >> When I try to run the "FirstReconstruction" example I am getting a >> segmentation fault. >> >> The following is the output from gdb >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () >> >> >> >> >> _______________________________________________ >> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 >> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: rtkSegFaultFirstRecon.png Type: image/png Size: 273538 bytes Desc: not available URL: From cyril.mory at creatis.insa-lyon.fr Wed Sep 17 05:59:58 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Wed, 17 Sep 2014 11:59:58 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: Message-ID: <54195B9E.10000@creatis.insa-lyon.fr> Hi Louie, We have been investigating your question bit. A first possible solution, which may be sufficient for your needs, could be to set the CUDA_VISIBLE_DEVICES environment variable. You'll find details here : http://www.acceleware.com/blog/cudavisibledevices-masking-gpus Here are two scripts I used to run tests on our two-GPUs server: ######### First script ######### echo "Running two instances of rtkfdk without specifying a GPU" CUDA_VISIBLE_DEVICES="0,1" time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g geom.xml --dimension 512 & time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g geom.xml --dimension 512 & ######### Second script ######### echo "Running two instances of rtkfdk, specifying which GPU to use for each" echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash ######### End ############# On our server, which has two identical GPUs, these two scripts took the same time. It seems that, in the first script, rtkfdk somehow managed to detect that the first GPU was in use and ran on the second one. But I can't guarantee under which conditions this happens, and surely it's safer to use the second script. This is the cheapest solution. If you need more than that, and you are ready to dive into the cuda filters' code as well as into the automatic transfers between CPU and GPU memory, do not hesitate to propose modifications of the RTK code. Regards, Cyril On 09/15/2014 02:45 PM, Simon Rit wrote: > Hi, > Good question, I did not hear anybody working on multiple GPUs so far. > It currently uses the first Cuda compatible device. I think you'll > have to look up in the Cuda manual to see how to switch to another one > but there is nothing available in the RTK lib yet. Don't hesitate to > suggest some code changes to add this feature. > Simon > > On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >> Dear Rtk users, >> >> How can I select one (or maybe more?) specific GPU to run my reconstruction? >> It seems if I start a second instance of the reconstruction program, it will >> run on the same GPU. >> >> Best regards, >> Louie >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://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 > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From ghostcz at hotmail.com Wed Sep 17 11:58:47 2014 From: ghostcz at hotmail.com (ghostcz) Date: Wed, 17 Sep 2014 17:58:47 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: <54195B9E.10000@creatis.insa-lyon.fr> References: <54195B9E.10000@creatis.insa-lyon.fr> Message-ID: Dear Cyril, Thank you for the follow-up. That is indeed a faster way to realize this function. I wrote a launcher instead, where I call cuda_set_device to select the device. No, I don?t think I know CUDA good enough to manage the memory transfer between the devices. Best regards, Louie P.S. is there any training or workshop focusing on rtk application and development available? -----Original Message----- From: Cyril Mory Sent: Wednesday, September 17, 2014 11:59 AM To: Simon Rit ; ghostcz Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] How to run the reconstruction on a specific GPU? Hi Louie, We have been investigating your question bit. A first possible solution, which may be sufficient for your needs, could be to set the CUDA_VISIBLE_DEVICES environment variable. You'll find details here : http://www.acceleware.com/blog/cudavisibledevices-masking-gpus Here are two scripts I used to run tests on our two-GPUs server: ######### First script ######### echo "Running two instances of rtkfdk without specifying a GPU" CUDA_VISIBLE_DEVICES="0,1" time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g geom.xml --dimension 512 & time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g geom.xml --dimension 512 & ######### Second script ######### echo "Running two instances of rtkfdk, specifying which GPU to use for each" echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash ######### End ############# On our server, which has two identical GPUs, these two scripts took the same time. It seems that, in the first script, rtkfdk somehow managed to detect that the first GPU was in use and ran on the second one. But I can't guarantee under which conditions this happens, and surely it's safer to use the second script. This is the cheapest solution. If you need more than that, and you are ready to dive into the cuda filters' code as well as into the automatic transfers between CPU and GPU memory, do not hesitate to propose modifications of the RTK code. Regards, Cyril On 09/15/2014 02:45 PM, Simon Rit wrote: > Hi, > Good question, I did not hear anybody working on multiple GPUs so far. > It currently uses the first Cuda compatible device. I think you'll > have to look up in the Cuda manual to see how to switch to another one > but there is nothing available in the RTK lib yet. Don't hesitate to > suggest some code changes to add this feature. > Simon > > On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >> Dear Rtk users, >> >> How can I select one (or maybe more?) specific GPU to run my >> reconstruction? >> It seems if I start a second instance of the reconstruction program, it >> will >> run on the same GPU. >> >> Best regards, >> Louie >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://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 > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From lomahu at gmail.com Wed Sep 17 23:21:34 2014 From: lomahu at gmail.com (Howard) Date: Wed, 17 Sep 2014 23:21:34 -0400 Subject: [Rtk-users] bright circle on the reconstructed image Message-ID: Hi, I use rtkfdk to reconstruct varian cbct images following the example on rtk wiki page. The projections were obtained with half fan mode because it is an abdominal region with the patient lateral x AP dimension of 550x550. The reconstructed cbct images have a big bright circle around the image. Please see the image: http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html I am using Ubuntu Linux box to reconstruct. Two sequential commands were used: ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ --regexp Proj_.*.hnd -o varianGeometry and rtkfdk \ --geometry varianGeometry \ --regexp .*.hnd \ --path ../Scan0 \ --output rec.mha \ --verbose \ --spacing 2.0,2.0,2.0 \ --dimension 256,100,256 \ The projections are stored in the standard varian format: Scan0 and ProjectionInfo.xml with 644 projection images. I assume that rtkfdk handled the half fan geometry properly. What did I do wrong then? Many thanks! -howard -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 04:12:23 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 10:12:23 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: Message-ID: <541A93E7.7010301@creatis.insa-lyon.fr> Hi Howard, The bright ring artifact is typically caused by high-pass filtering (the ramp filter used in FDK) of truncated projection data (when projections have non-zero values on the sides, the edge of the projection makes a sharp transition to zero). A classical answer to this problem is to pad the projections, for example with values starting from the values on the side and slowly decreasing to zero. rtkfdk can do this padding for you. Just add "--pad 0.1" to your options (or more than 0.1 if it isn't enough). Also, I noticed that your reconstructed image seems quite noisy. You might want to use a Hann windowing of the ramp filter to reduce the noise amplification effect of high-pass filtering. You can do that by adding "--hann 0.5" to your options. Note that the argument is a cut-off frequency, so smaller values mean more smoothing. Best regards, Cyril On 09/18/2014 05:21 AM, Howard wrote: > Hi, > I use rtkfdk to reconstruct varian cbct images following the example > on rtk wiki page. The projections were obtained with half fan mode > because it is an abdominal region with the patient lateral x AP > dimension of 550x550. The reconstructed cbct images have a big > bright circle around > the image. Please see the image: > http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > I am using Ubuntu Linux box to reconstruct. Two sequential commands > were used: > ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > --regexp Proj_.*.hnd -o varianGeometry > and > rtkfdk \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output rec.mha \ > --verbose \ > --spacing 2.0,2.0,2.0 \ > --dimension 256,100,256 \ > The projections are stored in the standard varian format: Scan0 and > ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled the half fan geometry properly. What did I do wrong then? > Many thanks! > -howard > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 04:53:34 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 10:53:34 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: <54195B9E.10000@creatis.insa-lyon.fr> Message-ID: <541A9D8E.5040403@creatis.insa-lyon.fr> Hi Louie, Good that you managed to solve your problem. Your question on training made us think a bit. Here are a few answers: - At the moment, there is only a wiki, the documentation and this mailing list - We're only a handful of developers working on RTK, so it seems too early, and too much logistics, to organize real workshops or training sessions in the near future - That being said, we would like to leave the door open. Surely it is important, if we want more people to use RTK and contribute to it, that new developers can learn easily and efficiently. I'll start a specific thread on the mailing list to gather the possible requests similar to yours - RTK uses ITK to do most of the work, therefore programming in RTK essentially requires knowing ITK and knowing some tomography. ITK training sessions are organized often and in many countries I hope it helps, Cyril On 09/17/2014 05:58 PM, ghostcz wrote: > Dear Cyril, > > Thank you for the follow-up. > That is indeed a faster way to realize this function. I wrote a > launcher instead, where I call cuda_set_device to select the device. > No, I don?t think I know CUDA good enough to manage the memory > transfer between the devices. > > Best regards, > Louie > > P.S. is there any training or workshop focusing on rtk application and > development available? > > > > > -----Original Message----- From: Cyril Mory > Sent: Wednesday, September 17, 2014 11:59 AM > To: Simon Rit ; ghostcz > Cc: rtk-users at openrtk.org > Subject: Re: [Rtk-users] How to run the reconstruction on a specific GPU? > > Hi Louie, > > We have been investigating your question bit. A first possible solution, > which may be sufficient for your needs, could be to set the > CUDA_VISIBLE_DEVICES environment variable. You'll find details here : > http://www.acceleware.com/blog/cudavisibledevices-masking-gpus > > Here are two scripts I used to run tests on our two-GPUs server: > > ######### First script ######### > echo "Running two instances of rtkfdk without specifying a GPU" > CUDA_VISIBLE_DEVICES="0,1" > time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g > geom.xml --dimension 512 & > time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g > geom.xml --dimension 512 & > > ######### Second script ######### > echo "Running two instances of rtkfdk, specifying which GPU to use for > each" > echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o > fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash > echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o > fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash > > ######### End ############# > > On our server, which has two identical GPUs, these two scripts took the > same time. It seems that, in the first script, rtkfdk somehow managed to > detect that the first GPU was in use and ran on the second one. But I > can't guarantee under which conditions this happens, and surely it's > safer to use the second script. > > This is the cheapest solution. If you need more than that, and you are > ready to dive into the cuda filters' code as well as into the automatic > transfers between CPU and GPU memory, do not hesitate to propose > modifications of the RTK code. > > Regards, > Cyril > > On 09/15/2014 02:45 PM, Simon Rit wrote: >> Hi, >> Good question, I did not hear anybody working on multiple GPUs so far. >> It currently uses the first Cuda compatible device. I think you'll >> have to look up in the Cuda manual to see how to switch to another one >> but there is nothing available in the RTK lib yet. Don't hesitate to >> suggest some code changes to add this feature. >> Simon >> >> On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >>> Dear Rtk users, >>> >>> How can I select one (or maybe more?) specific GPU to run my >>> reconstruction? >>> It seems if I start a second instance of the reconstruction program, >>> it will >>> run on the same GPU. >>> >>> Best regards, >>> Louie >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://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 >> > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 05:28:42 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 11:28:42 +0200 Subject: [Rtk-users] Would you like RTK trainings ? Message-ID: <541AA5CA.9050306@creatis.insa-lyon.fr> Hi RTK users, A recent question on the mailing list by Louie triggered a conversation between us. Louie asked whether there exists some sort of training or workshop on RTK. In a nutshell, the answer is "No, not yet, but why not talk about it ?". So I'd like to start some sort of "poll" to gather the requests you might have on this topic: Do you need / want / would like a training on RTK ? If so, can you be more specific on what you would like to learn ? (basics of tomography, how to start using RTK on your data, practical issues in circular cone beam CT, motion compensated reconstruction, compressed sensing in tomography, ITK programming, ... this is not an exhaustive list) I think this is enough questions for the time being. The rest will depend on your answers. Looking forward to reading you, -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 06:08:21 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 12:08:21 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: <540ED73D.3080003@creatis.insa-lyon.fr> <541847CB.8020807@creatis.insa-lyon.fr> Message-ID: <541AAF15.9080707@creatis.insa-lyon.fr> Hi Padraig, It is puzzling, as the code is simple and we have many machines on which it works without problem. So let's explore the weirder options : - In one of your previous emails, you mentioned that "the same example runs without a seg fault in the build directory". What does that mean ? - Can you go into your build directory, run "make test", and post the result of the tests ? - Have you tried installing RTK on another machine ? Regards, Cyril On 09/16/2014 04:38 PM, Padraig Looney wrote: > It happens with the first call. > > I set a breakpoint just before and it is not empty. I have tried to > attach a screen capture of my space. > > Yes I thought I may have changed something but I have copied the > directory twice from the original download in which it builds > correctly. I cloned this with git and there are no changes. > > > On Tue, Sep 16, 2014 at 3:23 PM, Cyril Mory > > wrote: > > Hi Padraig, > > Does the segfault happen at the first call of > geometry->AddProjection(...) or later ? > > My guess is that, for some reason, geometry is not initialized. > Can you make sure it is by setting a breakpoint just before ? > You should also make sure that all variables involved in this > call, ie "sid", "sdd", "angle", "isox" and "isoy" have reasonable > values before the call. > > It is probably not a good question, yet I have to ask : did you > modify something in the file > examples/FirstReconstruction/FirstReconstruction.cxx ? > > Regards, > Cyril > > > On 09/16/2014 04:07 PM, Padraig Looney wrote: >> Thanks Cyril, >> >> Following your advice I have tracked the seg fault down to line >> 36 in FirstReconstruction >> >> geometry->AddProjection(sid, >> sdd, >> angle, >> isox, >> isoy); >> } >> >> I realised that I managed to build the examples with RTK fine and >> the same example runs without a seg fault in the build directory. >> >> On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory >> > > wrote: >> >> Hi Padraig, >> >> With so little information, there isn't much we can do to >> help you. >> I usually track segfaults by compiling in Debug mode (by >> setting "CMAKE_BUILD_TYPE" to "Debug"), then running the >> program in debug in QT Creator (any decent IDE will do just >> fine, and should stop when the segfault occurs, allowing you >> to trace it back) >> >> Good luck, >> Cyril >> >> >> On 09/09/2014 12:05 PM, Padraig Looney wrote: >>> When I try to run the "FirstReconstruction" example I am >>> getting a segmentation fault. >>> >>> The following is the output from gdb >>> >>> Program received signal SIGSEGV, Segmentation fault. >>> 0x00000000004952d7 in typeinfo for >>> rtk::ProjectionGeometry<3u> () >>> >>> >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://public.kitware.com/mailman/listinfo/rtk-users >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile:+33 6 69 46 73 79 >> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Thu Sep 18 09:47:40 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Thu, 18 Sep 2014 15:47:40 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: <541A93E7.7010301@creatis.insa-lyon.fr> References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: Hi, I fully agree with Cyril. Something else : you might want to mask out what is outside the field-of-view using the rtkfieldofview executable. Your ring corresponds to that border. See an example here: http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction Simon On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < cyril.mory at creatis.insa-lyon.fr> wrote: > Hi Howard, > > The bright ring artifact is typically caused by high-pass filtering (the > ramp filter used in FDK) of truncated projection data (when projections > have non-zero values on the sides, the edge of the projection makes a sharp > transition to zero). A classical answer to this problem is to pad the > projections, for example with values starting from the values on the side > and slowly decreasing to zero. > > rtkfdk can do this padding for you. Just add "--pad 0.1" to your options > (or more than 0.1 if it isn't enough). > Also, I noticed that your reconstructed image seems quite noisy. You might > want to use a Hann windowing of the ramp filter to reduce the noise > amplification effect of high-pass filtering. You can do that by adding > "--hann 0.5" to your options. Note that the argument is a cut-off > frequency, so smaller values mean more smoothing. > > Best regards, > Cyril > > > On 09/18/2014 05:21 AM, Howard wrote: > > Hi, > > I use rtkfdk to reconstruct varian cbct images following the example on > rtk wiki page. The projections were obtained with half fan mode because it > is an abdominal region with the patient lateral x AP dimension of 550x550. > The reconstructed cbct images have a big bright circle around > the image. Please see the image: > http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > > I am using Ubuntu Linux box to reconstruct. Two sequential commands were > used: > > ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > --regexp Proj_.*.hnd -o varianGeometry > and > > rtkfdk \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output rec.mha \ > --verbose \ > --spacing 2.0,2.0,2.0 \ > --dimension 256,100,256 \ > The projections are stored in the standard varian format: Scan0 and > ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled the half fan geometry properly. What did I do wrong then? Many > thanks! > > -howard > > > _______________________________________________ > Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users > > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > > _______________________________________________ > 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: From lomahu at gmail.com Thu Sep 18 10:47:17 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 10:47:17 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: Thanks very much, Cyril & Simon. Now the fdk reconstruction is working beautifully. Jus another quick question: for rtksart executable, are we still able to do padding and hanning window trick as well? On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit wrote: > Hi, > I fully agree with Cyril. Something else : you might want to mask out what > is outside the field-of-view using the rtkfieldofview executable. Your ring > corresponds to that border. See an example here: > http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > Simon > > On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < > cyril.mory at creatis.insa-lyon.fr> wrote: > >> Hi Howard, >> >> The bright ring artifact is typically caused by high-pass filtering (the >> ramp filter used in FDK) of truncated projection data (when projections >> have non-zero values on the sides, the edge of the projection makes a sharp >> transition to zero). A classical answer to this problem is to pad the >> projections, for example with values starting from the values on the side >> and slowly decreasing to zero. >> >> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >> (or more than 0.1 if it isn't enough). >> Also, I noticed that your reconstructed image seems quite noisy. You >> might want to use a Hann windowing of the ramp filter to reduce the noise >> amplification effect of high-pass filtering. You can do that by adding >> "--hann 0.5" to your options. Note that the argument is a cut-off >> frequency, so smaller values mean more smoothing. >> >> Best regards, >> Cyril >> >> >> On 09/18/2014 05:21 AM, Howard wrote: >> >> Hi, >> >> I use rtkfdk to reconstruct varian cbct images following the example on >> rtk wiki page. The projections were obtained with half fan mode because it >> is an abdominal region with the patient lateral x AP dimension of 550x550. >> The reconstructed cbct images have a big bright circle around >> the image. Please see the image: >> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> >> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >> used: >> >> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >> --regexp Proj_.*.hnd -o varianGeometry >> and >> >> rtkfdk \ >> --geometry varianGeometry \ >> --regexp .*.hnd \ >> --path ../Scan0 \ >> --output rec.mha \ >> --verbose \ >> --spacing 2.0,2.0,2.0 \ >> --dimension 256,100,256 \ >> The projections are stored in the standard varian format: Scan0 and >> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >> handled the half fan geometry properly. What did I do wrong then? Many >> thanks! >> >> -howard >> >> >> _______________________________________________ >> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 >> >> >> _______________________________________________ >> 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: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 10:59:53 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 16:59:53 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: <541AF369.9090403@creatis.insa-lyon.fr> Howard, For SART reconstructions, you do not need padding, and you can't do Hann windowing because no ramp filtering is applied. SART usually outputs smoother images, so you probably will not need this denoising trick anyway. However, you should be careful about one thing : your object has to be fully contained in the reconstructed volume, or you will observe important border effects. Use the --dimension, --spacing and --origin options to ensure this. All the best, Cyril On 09/18/2014 04:47 PM, Howard wrote: > Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > beautifully. Jus another quick question: for rtksart executable, are > we still able to do padding and hanning window trick as well? > > On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > > wrote: > > Hi, > I fully agree with Cyril. Something else : you might want to mask > out what is outside the field-of-view using the rtkfieldofview > executable. Your ring corresponds to that border. See an example here: > http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > Simon > > On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory > > wrote: > > Hi Howard, > > The bright ring artifact is typically caused by high-pass > filtering (the ramp filter used in FDK) of truncated > projection data (when projections have non-zero values on the > sides, the edge of the projection makes a sharp transition to > zero). A classical answer to this problem is to pad the > projections, for example with values starting from the values > on the side and slowly decreasing to zero. > > rtkfdk can do this padding for you. Just add "--pad 0.1" to > your options (or more than 0.1 if it isn't enough). > Also, I noticed that your reconstructed image seems quite > noisy. You might want to use a Hann windowing of the ramp > filter to reduce the noise amplification effect of high-pass > filtering. You can do that by adding "--hann 0.5" to your > options. Note that the argument is a cut-off frequency, so > smaller values mean more smoothing. > > Best regards, > Cyril > > > On 09/18/2014 05:21 AM, Howard wrote: >> Hi, >> I use rtkfdk to reconstruct varian cbct images following the >> example on rtk wiki page. The projections were obtained with >> half fan mode because it is an abdominal region with the >> patient lateral x AP dimension of 550x550. The reconstructed >> cbct images have a big bright circle around >> the image. Please see the image: >> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> I am using Ubuntu Linux box to reconstruct. Two sequential >> commands were used: >> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path >> Scan0/ --regexp Proj_.*.hnd -o varianGeometry >> and >> rtkfdk \ >> --geometry varianGeometry \ >> --regexp .*.hnd \ >> --path ../Scan0 \ >> --output rec.mha \ >> --verbose \ >> --spacing 2.0,2.0,2.0 \ >> --dimension 256,100,256 \ >> The projections are stored in the standard varian format: >> Scan0 and ProjectionInfo.xml with 644 projection images. I >> assume that rtkfdk handled the half fan geometry properly. >> What did I do wrong then? Many thanks! >> -howard >> >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://public.kitware.com/mailman/listinfo/rtk-users > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From lomahu at gmail.com Thu Sep 18 13:03:52 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 13:03:52 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: <541AF369.9090403@creatis.insa-lyon.fr> References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Cyril, I am testing SART reconstruction according to what you described, specifying dimension, spacing and origin: rtksart \ --geometry varianGeometry \ --regexp .*.hnd \ --path ../Scan0 \ --output sart_rec.mha \ --verbose \ --spacing 2.0\ --dimension 128,100,128 \ --origin -127.5,-99,-127.5 but the reconstruction gave a plain image with no object/contrast. I checked the grayscale values on the reconstructed images and did see they ranged from -1.78 to 3 (this may not be precise but give you some idea). I tried to adjust window level but couldn't see any contrast. I must miss something here. Please advise. Thanks! -howard On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory < cyril.mory at creatis.insa-lyon.fr> wrote: > Howard, > > For SART reconstructions, you do not need padding, and you can't do Hann > windowing because no ramp filtering is applied. SART usually outputs > smoother images, so you probably will not need this denoising trick anyway. > However, you should be careful about one thing : your object has to be > fully contained in the reconstructed volume, or you will observe important > border effects. Use the --dimension, --spacing and --origin options to > ensure this. > > All the best, > Cyril > > > On 09/18/2014 04:47 PM, Howard wrote: > > Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > beautifully. Jus another quick question: for rtksart executable, are we > still able to do padding and hanning window trick as well? > > On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > wrote: > >> Hi, >> I fully agree with Cyril. Something else : you might want to mask out >> what is outside the field-of-view using the rtkfieldofview executable. Your >> ring corresponds to that border. See an example here: >> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >> Simon >> >> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < >> cyril.mory at creatis.insa-lyon.fr> wrote: >> >>> Hi Howard, >>> >>> The bright ring artifact is typically caused by high-pass filtering (the >>> ramp filter used in FDK) of truncated projection data (when projections >>> have non-zero values on the sides, the edge of the projection makes a sharp >>> transition to zero). A classical answer to this problem is to pad the >>> projections, for example with values starting from the values on the side >>> and slowly decreasing to zero. >>> >>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >>> (or more than 0.1 if it isn't enough). >>> Also, I noticed that your reconstructed image seems quite noisy. You >>> might want to use a Hann windowing of the ramp filter to reduce the noise >>> amplification effect of high-pass filtering. You can do that by adding >>> "--hann 0.5" to your options. Note that the argument is a cut-off >>> frequency, so smaller values mean more smoothing. >>> >>> Best regards, >>> Cyril >>> >>> >>> On 09/18/2014 05:21 AM, Howard wrote: >>> >>> Hi, >>> >>> I use rtkfdk to reconstruct varian cbct images following the example on >>> rtk wiki page. The projections were obtained with half fan mode because it >>> is an abdominal region with the patient lateral x AP dimension of 550x550. >>> The reconstructed cbct images have a big bright circle around >>> the image. Please see the image: >>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >>> >>> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >>> used: >>> >>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >>> --regexp Proj_.*.hnd -o varianGeometry >>> and >>> >>> rtkfdk \ >>> --geometry varianGeometry \ >>> --regexp .*.hnd \ >>> --path ../Scan0 \ >>> --output rec.mha \ >>> --verbose \ >>> --spacing 2.0,2.0,2.0 \ >>> --dimension 256,100,256 \ >>> The projections are stored in the standard varian format: Scan0 and >>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >>> handled the half fan geometry properly. What did I do wrong then? Many >>> thanks! >>> >>> -howard >>> >>> >>> _______________________________________________ >>> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >>> -- >>> -- >>> Cyril Mory, Post-doc >>> CREATIS >>> Leon Berard cancer treatment center >>> 28 rue La?nnec >>> 69373 Lyon cedex 08 FRANCE >>> >>> Mobile: +33 6 69 46 73 79 >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Thu Sep 18 16:41:10 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Thu, 18 Sep 2014 22:41:10 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Howard, Assuming you're using the same dataset as the one you used for the rtkfdk test, you have decreased its size. For example, x was 2*256 mm with rtkfdk and it is now 128*2. On the slice you sent, we could see that a part of the phantom on the right was missing so you should keep the same size except for this side that should be larger, certainly not reduce the size. For the display, I would suggest to use the same window/level as for your FDK reconstruction. The two reconstruction algorithms reconstruct the same average intensities, only the texture is different. Good luck, Simon On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: > Hi Cyril, > > I am testing SART reconstruction according to what you described, specifying > dimension, spacing and origin: > > rtksart \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output sart_rec.mha \ > --verbose \ > --spacing 2.0\ > --dimension 128,100,128 \ > --origin -127.5,-99,-127.5 > > but the reconstruction gave a plain image with no object/contrast. I checked > the grayscale values on the reconstructed images and did see they ranged > from -1.78 to 3 (this may not be precise but give you some idea). I tried to > adjust window level but couldn't see any contrast. I must miss something > here. Please advise. Thanks! > > -howard > > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory > wrote: >> >> Howard, >> >> For SART reconstructions, you do not need padding, and you can't do Hann >> windowing because no ramp filtering is applied. SART usually outputs >> smoother images, so you probably will not need this denoising trick anyway. >> However, you should be careful about one thing : your object has to be >> fully contained in the reconstructed volume, or you will observe important >> border effects. Use the --dimension, --spacing and --origin options to >> ensure this. >> >> All the best, >> Cyril >> >> >> On 09/18/2014 04:47 PM, Howard wrote: >> >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working >> beautifully. Jus another quick question: for rtksart executable, are we >> still able to do padding and hanning window trick as well? >> >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit >> wrote: >>> >>> Hi, >>> I fully agree with Cyril. Something else : you might want to mask out >>> what is outside the field-of-view using the rtkfieldofview executable. Your >>> ring corresponds to that border. See an example here: >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >>> Simon >>> >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory >>> wrote: >>>> >>>> Hi Howard, >>>> >>>> The bright ring artifact is typically caused by high-pass filtering (the >>>> ramp filter used in FDK) of truncated projection data (when projections have >>>> non-zero values on the sides, the edge of the projection makes a sharp >>>> transition to zero). A classical answer to this problem is to pad the >>>> projections, for example with values starting from the values on the side >>>> and slowly decreasing to zero. >>>> >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >>>> (or more than 0.1 if it isn't enough). >>>> Also, I noticed that your reconstructed image seems quite noisy. You >>>> might want to use a Hann windowing of the ramp filter to reduce the noise >>>> amplification effect of high-pass filtering. You can do that by adding >>>> "--hann 0.5" to your options. Note that the argument is a cut-off frequency, >>>> so smaller values mean more smoothing. >>>> >>>> Best regards, >>>> Cyril >>>> >>>> >>>> On 09/18/2014 05:21 AM, Howard wrote: >>>> >>>> Hi, >>>> >>>> I use rtkfdk to reconstruct varian cbct images following the example on >>>> rtk wiki page. The projections were obtained with half fan mode because it >>>> is an abdominal region with the patient lateral x AP dimension of 550x550. >>>> The reconstructed cbct images have a big bright circle around >>>> the image. Please see the image: >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >>>> >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >>>> used: >>>> >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >>>> --regexp Proj_.*.hnd -o varianGeometry >>>> and >>>> >>>> rtkfdk \ >>>> --geometry varianGeometry \ >>>> --regexp .*.hnd \ >>>> --path ../Scan0 \ >>>> --output rec.mha \ >>>> --verbose \ >>>> --spacing 2.0,2.0,2.0 \ >>>> --dimension 256,100,256 \ >>>> The projections are stored in the standard varian format: Scan0 and >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk handled >>>> the half fan geometry properly. What did I do wrong then? Many thanks! >>>> >>>> -howard >>>> >>>> >>>> _______________________________________________ >>>> Rtk-users mailing list >>>> Rtk-users at public.kitware.com >>>> http://public.kitware.com/mailman/listinfo/rtk-users >>>> >>>> >>>> -- >>>> -- >>>> Cyril Mory, Post-doc >>>> CREATIS >>>> Leon Berard cancer treatment center >>>> 28 rue La?nnec >>>> 69373 Lyon cedex 08 FRANCE >>>> >>>> Mobile: +33 6 69 46 73 79 >>>> >>>> >>>> _______________________________________________ >>>> Rtk-users mailing list >>>> Rtk-users at public.kitware.com >>>> http://public.kitware.com/mailman/listinfo/rtk-users >>>> >>> >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 > > From lomahu at gmail.com Thu Sep 18 17:47:51 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 17:47:51 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Simon, I apologize for the confusion about the dataset. Actually I did not use the same dataset. The reason is that the set I used for rtkfdk test had 644 projections and with it rtksart crashed because of memory (I only allocated 3GB memory to Virtualbox from my window7). So for the SART test I changed to a small projection set (366 projections) where the object is a cube with dimension of 5cm x 5cm x 5cm. That's why I chose a smaller reconstruction size 128*2. With the same dataset when I ran rtkfdk I got very good reconstruction. -howard On Thu, Sep 18, 2014 at 4:41 PM, Simon Rit wrote: > Hi Howard, > Assuming you're using the same dataset as the one you used for the > rtkfdk test, you have decreased its size. For example, x was 2*256 mm > with rtkfdk and it is now 128*2. On the slice you sent, we could see > that a part of the phantom on the right was missing so you should keep > the same size except for this side that should be larger, certainly > not reduce the size. > For the display, I would suggest to use the same window/level as for > your FDK reconstruction. The two reconstruction algorithms reconstruct > the same average intensities, only the texture is different. > Good luck, > Simon > > On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: > > Hi Cyril, > > > > I am testing SART reconstruction according to what you described, > specifying > > dimension, spacing and origin: > > > > rtksart \ > > --geometry varianGeometry \ > > --regexp .*.hnd \ > > --path ../Scan0 \ > > --output sart_rec.mha \ > > --verbose \ > > --spacing 2.0\ > > --dimension 128,100,128 \ > > --origin -127.5,-99,-127.5 > > > > but the reconstruction gave a plain image with no object/contrast. I > checked > > the grayscale values on the reconstructed images and did see they ranged > > from -1.78 to 3 (this may not be precise but give you some idea). I > tried to > > adjust window level but couldn't see any contrast. I must miss something > > here. Please advise. Thanks! > > > > -howard > > > > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory > > wrote: > >> > >> Howard, > >> > >> For SART reconstructions, you do not need padding, and you can't do Hann > >> windowing because no ramp filtering is applied. SART usually outputs > >> smoother images, so you probably will not need this denoising trick > anyway. > >> However, you should be careful about one thing : your object has to be > >> fully contained in the reconstructed volume, or you will observe > important > >> border effects. Use the --dimension, --spacing and --origin options to > >> ensure this. > >> > >> All the best, > >> Cyril > >> > >> > >> On 09/18/2014 04:47 PM, Howard wrote: > >> > >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > >> beautifully. Jus another quick question: for rtksart executable, are we > >> still able to do padding and hanning window trick as well? > >> > >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > >> wrote: > >>> > >>> Hi, > >>> I fully agree with Cyril. Something else : you might want to mask out > >>> what is outside the field-of-view using the rtkfieldofview executable. > Your > >>> ring corresponds to that border. See an example here: > >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > >>> Simon > >>> > >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory > >>> wrote: > >>>> > >>>> Hi Howard, > >>>> > >>>> The bright ring artifact is typically caused by high-pass filtering > (the > >>>> ramp filter used in FDK) of truncated projection data (when > projections have > >>>> non-zero values on the sides, the edge of the projection makes a sharp > >>>> transition to zero). A classical answer to this problem is to pad the > >>>> projections, for example with values starting from the values on the > side > >>>> and slowly decreasing to zero. > >>>> > >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your > options > >>>> (or more than 0.1 if it isn't enough). > >>>> Also, I noticed that your reconstructed image seems quite noisy. You > >>>> might want to use a Hann windowing of the ramp filter to reduce the > noise > >>>> amplification effect of high-pass filtering. You can do that by adding > >>>> "--hann 0.5" to your options. Note that the argument is a cut-off > frequency, > >>>> so smaller values mean more smoothing. > >>>> > >>>> Best regards, > >>>> Cyril > >>>> > >>>> > >>>> On 09/18/2014 05:21 AM, Howard wrote: > >>>> > >>>> Hi, > >>>> > >>>> I use rtkfdk to reconstruct varian cbct images following the example > on > >>>> rtk wiki page. The projections were obtained with half fan mode > because it > >>>> is an abdominal region with the patient lateral x AP dimension of > 550x550. > >>>> The reconstructed cbct images have a big bright circle around > >>>> the image. Please see the image: > >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > >>>> > >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands > were > >>>> used: > >>>> > >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > >>>> --regexp Proj_.*.hnd -o varianGeometry > >>>> and > >>>> > >>>> rtkfdk \ > >>>> --geometry varianGeometry \ > >>>> --regexp .*.hnd \ > >>>> --path ../Scan0 \ > >>>> --output rec.mha \ > >>>> --verbose \ > >>>> --spacing 2.0,2.0,2.0 \ > >>>> --dimension 256,100,256 \ > >>>> The projections are stored in the standard varian format: Scan0 and > >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled > >>>> the half fan geometry properly. What did I do wrong then? Many > thanks! > >>>> > >>>> -howard > >>>> > >>>> > >>>> _______________________________________________ > >>>> Rtk-users mailing list > >>>> Rtk-users at public.kitware.com > >>>> http://public.kitware.com/mailman/listinfo/rtk-users > >>>> > >>>> > >>>> -- > >>>> -- > >>>> Cyril Mory, Post-doc > >>>> CREATIS > >>>> Leon Berard cancer treatment center > >>>> 28 rue La?nnec > >>>> 69373 Lyon cedex 08 FRANCE > >>>> > >>>> Mobile: +33 6 69 46 73 79 > >>>> > >>>> > >>>> _______________________________________________ > >>>> Rtk-users mailing list > >>>> Rtk-users at public.kitware.com > >>>> http://public.kitware.com/mailman/listinfo/rtk-users > >>>> > >>> > >> > >> > >> -- > >> -- > >> Cyril Mory, Post-doc > >> CREATIS > >> Leon Berard cancer treatment center > >> 28 rue La?nnec > >> 69373 Lyon cedex 08 FRANCE > >> > >> Mobile: +33 6 69 46 73 79 > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lomahu at gmail.com Thu Sep 18 22:53:45 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 22:53:45 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Simon, It appears I have to apologize again and take back the question about the SART reconstruction. I re-ran on the big data set (644 projections). This time no memory issue and SART worked well. For some reason it did not work on the small set initially. I should have run more tests before posting here. Sorry about the noise and thanks a lot for looking into the "issues". -howard On Thu, Sep 18, 2014 at 5:47 PM, Howard wrote: > Hi Simon, > > I apologize for the confusion about the dataset. Actually I did not use > the same dataset. > The reason is that the set I used for rtkfdk test had 644 projections and > with it rtksart > crashed because of memory (I only allocated 3GB memory to Virtualbox from > my window7). > So for the SART test I changed to a small projection set (366 projections) > where the object is > a cube with dimension of 5cm x 5cm x 5cm. That's why I chose a smaller > reconstruction > size 128*2. With the same dataset when I ran rtkfdk I got very good > reconstruction. > > -howard > > On Thu, Sep 18, 2014 at 4:41 PM, Simon Rit > wrote: > >> Hi Howard, >> Assuming you're using the same dataset as the one you used for the >> rtkfdk test, you have decreased its size. For example, x was 2*256 mm >> with rtkfdk and it is now 128*2. On the slice you sent, we could see >> that a part of the phantom on the right was missing so you should keep >> the same size except for this side that should be larger, certainly >> not reduce the size. >> For the display, I would suggest to use the same window/level as for >> your FDK reconstruction. The two reconstruction algorithms reconstruct >> the same average intensities, only the texture is different. >> Good luck, >> Simon >> >> On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: >> > Hi Cyril, >> > >> > I am testing SART reconstruction according to what you described, >> specifying >> > dimension, spacing and origin: >> > >> > rtksart \ >> > --geometry varianGeometry \ >> > --regexp .*.hnd \ >> > --path ../Scan0 \ >> > --output sart_rec.mha \ >> > --verbose \ >> > --spacing 2.0\ >> > --dimension 128,100,128 \ >> > --origin -127.5,-99,-127.5 >> > >> > but the reconstruction gave a plain image with no object/contrast. I >> checked >> > the grayscale values on the reconstructed images and did see they ranged >> > from -1.78 to 3 (this may not be precise but give you some idea). I >> tried to >> > adjust window level but couldn't see any contrast. I must miss something >> > here. Please advise. Thanks! >> > >> > -howard >> > >> > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory >> > wrote: >> >> >> >> Howard, >> >> >> >> For SART reconstructions, you do not need padding, and you can't do >> Hann >> >> windowing because no ramp filtering is applied. SART usually outputs >> >> smoother images, so you probably will not need this denoising trick >> anyway. >> >> However, you should be careful about one thing : your object has to be >> >> fully contained in the reconstructed volume, or you will observe >> important >> >> border effects. Use the --dimension, --spacing and --origin options to >> >> ensure this. >> >> >> >> All the best, >> >> Cyril >> >> >> >> >> >> On 09/18/2014 04:47 PM, Howard wrote: >> >> >> >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working >> >> beautifully. Jus another quick question: for rtksart executable, are we >> >> still able to do padding and hanning window trick as well? >> >> >> >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit >> >> wrote: >> >>> >> >>> Hi, >> >>> I fully agree with Cyril. Something else : you might want to mask out >> >>> what is outside the field-of-view using the rtkfieldofview >> executable. Your >> >>> ring corresponds to that border. See an example here: >> >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >> >>> Simon >> >>> >> >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory >> >>> wrote: >> >>>> >> >>>> Hi Howard, >> >>>> >> >>>> The bright ring artifact is typically caused by high-pass filtering >> (the >> >>>> ramp filter used in FDK) of truncated projection data (when >> projections have >> >>>> non-zero values on the sides, the edge of the projection makes a >> sharp >> >>>> transition to zero). A classical answer to this problem is to pad the >> >>>> projections, for example with values starting from the values on the >> side >> >>>> and slowly decreasing to zero. >> >>>> >> >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your >> options >> >>>> (or more than 0.1 if it isn't enough). >> >>>> Also, I noticed that your reconstructed image seems quite noisy. You >> >>>> might want to use a Hann windowing of the ramp filter to reduce the >> noise >> >>>> amplification effect of high-pass filtering. You can do that by >> adding >> >>>> "--hann 0.5" to your options. Note that the argument is a cut-off >> frequency, >> >>>> so smaller values mean more smoothing. >> >>>> >> >>>> Best regards, >> >>>> Cyril >> >>>> >> >>>> >> >>>> On 09/18/2014 05:21 AM, Howard wrote: >> >>>> >> >>>> Hi, >> >>>> >> >>>> I use rtkfdk to reconstruct varian cbct images following the example >> on >> >>>> rtk wiki page. The projections were obtained with half fan mode >> because it >> >>>> is an abdominal region with the patient lateral x AP dimension of >> 550x550. >> >>>> The reconstructed cbct images have a big bright circle around >> >>>> the image. Please see the image: >> >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> >>>> >> >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands >> were >> >>>> used: >> >>>> >> >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >> >>>> --regexp Proj_.*.hnd -o varianGeometry >> >>>> and >> >>>> >> >>>> rtkfdk \ >> >>>> --geometry varianGeometry \ >> >>>> --regexp .*.hnd \ >> >>>> --path ../Scan0 \ >> >>>> --output rec.mha \ >> >>>> --verbose \ >> >>>> --spacing 2.0,2.0,2.0 \ >> >>>> --dimension 256,100,256 \ >> >>>> The projections are stored in the standard varian format: Scan0 and >> >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >> handled >> >>>> the half fan geometry properly. What did I do wrong then? Many >> thanks! >> >>>> >> >>>> -howard >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> Rtk-users mailing list >> >>>> Rtk-users at public.kitware.com >> >>>> http://public.kitware.com/mailman/listinfo/rtk-users >> >>>> >> >>>> >> >>>> -- >> >>>> -- >> >>>> Cyril Mory, Post-doc >> >>>> CREATIS >> >>>> Leon Berard cancer treatment center >> >>>> 28 rue La?nnec >> >>>> 69373 Lyon cedex 08 FRANCE >> >>>> >> >>>> Mobile: +33 6 69 46 73 79 >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> Rtk-users mailing list >> >>>> Rtk-users at public.kitware.com >> >>>> http://public.kitware.com/mailman/listinfo/rtk-users >> >>>> >> >>> >> >> >> >> >> >> -- >> >> -- >> >> Cyril Mory, Post-doc >> >> CREATIS >> >> Leon Berard cancer treatment center >> >> 28 rue La?nnec >> >> 69373 Lyon cedex 08 FRANCE >> >> >> >> Mobile: +33 6 69 46 73 79 >> > >> > >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ucabba1 at ucl.ac.uk Fri Sep 19 07:04:49 2014 From: ucabba1 at ucl.ac.uk (Ben Champion) Date: Fri, 19 Sep 2014 12:04:49 +0100 Subject: [Rtk-users] Would you like RTK trainings ? In-Reply-To: <541AA5CA.9050306@creatis.insa-lyon.fr> References: <541AA5CA.9050306@creatis.insa-lyon.fr> Message-ID: <541C0DD1.4070203@ucl.ac.uk> Hi Cyril, Having used RTK (and ITK) for approximately 1 year now, I have learnt mainly by trial and error, and by reading the source code and wiki examples. (Aside: many thanks to the RTK community for these!) Nevertheless, I think I could benefit from some kind of RTK training for my future work. The kinds of topics that would be most interesting to me are: - theory/use of reconstruction methods other than FDK (e.g. SART, 4D ROOSTER, ...) - motion compensated reconstruction - compressed sensing in tomography - extending RTK (and contributing back to the community) That said, I would not be averse to at least some discussion of "basics of tomography", "starting to use RTK with your own data", and "practical issues in circular CBCT" and in fact it could help fill some gaps in my knowledge. Best wishes, Ben -- Doctoral Student (MRes/EngD) Centre for Medical Image Computing University College London Room 3.01 Engineering Front Building Torrington Place LONDON WC1E 7JE On 18/09/14 10:28, Cyril Mory wrote: > Hi RTK users, > > A recent question on the mailing list by Louie triggered a > conversation between us. Louie asked whether there exists some sort of > training or workshop on RTK. In a nutshell, the answer is "No, not > yet, but why not talk about it ?". > > So I'd like to start some sort of "poll" to gather the requests you > might have on this topic: > Do you need / want / would like a training on RTK ? > If so, can you be more specific on what you would like to learn ? > (basics of tomography, how to start using RTK on your data, practical > issues in circular cone beam CT, motion compensated reconstruction, > compressed sensing in tomography, ITK programming, ... this is not an > exhaustive list) > > I think this is enough questions for the time being. The rest will > depend on your answers. > > Looking forward to reading you, > From lomahu at gmail.com Fri Sep 19 09:47:58 2014 From: lomahu at gmail.com (Howard) Date: Fri, 19 Sep 2014 09:47:58 -0400 Subject: [Rtk-users] Would you like RTK trainings ? In-Reply-To: <541C0DD1.4070203@ucl.ac.uk> References: <541AA5CA.9050306@creatis.insa-lyon.fr> <541C0DD1.4070203@ucl.ac.uk> Message-ID: Hi Cyril, It would be extremely helpful to have an RTK training. As Ben listed, I have similar interests. The topics I am very interested in are the following: 1. Basic principles of reconstruction with FDK and SART 2. Coding framework in RTK 3. Practical examples using iterative reconstruction technique 4. Compressed sensing applications in reconstruction 5. Practical issues in reconstruction specially CBCT reconstruction. Thanks! -howard On Fri, Sep 19, 2014 at 7:04 AM, Ben Champion wrote: > Hi Cyril, > > Having used RTK (and ITK) for approximately 1 year now, I have learnt > mainly by trial and error, and by reading the source code and wiki > examples. (Aside: many thanks to the RTK community for these!) > > Nevertheless, I think I could benefit from some kind of RTK training for > my future work. The kinds of topics that would be most interesting to me > are: > > - theory/use of reconstruction methods other than FDK (e.g. SART, 4D > ROOSTER, ...) > - motion compensated reconstruction > - compressed sensing in tomography > - extending RTK (and contributing back to the community) > > That said, I would not be averse to at least some discussion of "basics of > tomography", "starting to use RTK with your own data", and "practical > issues in circular CBCT" and in fact it could help fill some gaps in my > knowledge. > > Best wishes, > > Ben > -- > Doctoral Student (MRes/EngD) > Centre for Medical Image Computing > University College London > Room 3.01 Engineering Front Building > Torrington Place > LONDON > WC1E 7JE > > > > On 18/09/14 10:28, Cyril Mory wrote: > >> Hi RTK users, >> >> A recent question on the mailing list by Louie triggered a conversation >> between us. Louie asked whether there exists some sort of training or >> workshop on RTK. In a nutshell, the answer is "No, not yet, but why not >> talk about it ?". >> >> So I'd like to start some sort of "poll" to gather the requests you might >> have on this topic: >> Do you need / want / would like a training on RTK ? >> If so, can you be more specific on what you would like to learn ? (basics >> of tomography, how to start using RTK on your data, practical issues in >> circular cone beam CT, motion compensated reconstruction, compressed >> sensing in tomography, ITK programming, ... this is not an exhaustive list) >> >> I think this is enough questions for the time being. The rest will depend >> on your answers. >> >> Looking forward to reading you, >> >> > _______________________________________________ > 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: From padraig.looney at gmail.com Mon Sep 8 08:43:27 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Mon, 8 Sep 2014 13:43:27 +0100 Subject: [Rtk-users] RTK helloworld Message-ID: Dear all, I am trying to get the HelloWorld example running but I get a large number of errors after the build. I am using ITK-4.6 and have followed the instructions as per http://wiki.openrtk.org/index.php/RTK_wiki_help#Tutorial_0_-_Building_an_HelloWorld_application_with_RTK My executable is built and is working but I have hundreds of errors. The first few are. CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::MemoryAllocationError::MemoryAllocationError(std::string const&, unsigned int, std::string const&, std::string const&)': main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x35): undefined reference to `itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, std::string const&, std::string const&)' main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x40): undefined reference to `vtable for itk::MemoryAllocationError' CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::Object::SetObjectName(std::string)': main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x25): undefined reference to `itk::Object::GetDebug() const' main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x2e): undefined reference to `itk::Object::GetGlobalWarningDisplay()' main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x12e): undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::DataObject::SetRealTimeStamp(itk::RealTimeStamp)': main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x25): undefined reference to `itk::Object::GetDebug() const' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x2e): undefined reference to `itk::Object::GetGlobalWarningDisplay()' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0xf1): undefined reference to `itk::operator<<(std::ostream&, itk::RealTimeStamp const&)' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x12e): undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x169): undefined reference to `itk::RealTimeStamp::operator!=(itk::RealTimeStamp const&) const' Thanks P?draig -------------- next part -------------- An HTML attachment was scrubbed... URL: From julien.jomier at kitware.com Mon Sep 8 09:11:50 2014 From: julien.jomier at kitware.com (Julien Jomier) Date: Mon, 08 Sep 2014 15:11:50 +0200 Subject: [Rtk-users] RTK helloworld In-Reply-To: References: Message-ID: <540DAB16.3050904@kitware.com> Dear Padraig, When you say "built and is working but I have hundreds of errors" do you mean that you have successfully compiled and linked the example? It seems that your example cannot find the ITK libraries. Are you building ITK and RTK using BUILD_SHARED_LIBS to ON in CMake? Julien On 08/09/2014 14:43, Padraig Looney wrote: > Dear all, > > I am trying to get the HelloWorld example running but I get a large > number of errors after the build. I am using ITK-4.6 and have followed > the instructions as per > > http://wiki.openrtk.org/index.php/RTK_wiki_help#Tutorial_0_-_Building_an_HelloWorld_application_with_RTK > > My executable is built and is working but I have hundreds of errors. The > first few are. > > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::MemoryAllocationError::MemoryAllocationError(std::string const&, > unsigned int, std::string const&, std::string const&)': > main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x35): > undefined reference to > `itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, > std::string const&, std::string const&)' > main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x40): > undefined reference to `vtable for itk::MemoryAllocationError' > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::Object::SetObjectName(std::string)': > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x2e): > undefined reference to `itk::Object::GetGlobalWarningDisplay()' > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x12e): > undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::DataObject::SetRealTimeStamp(itk::RealTimeStamp)': > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x2e): > undefined reference to `itk::Object::GetGlobalWarningDisplay()' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0xf1): > undefined reference to `itk::operator<<(std::ostream&, > itk::RealTimeStamp const&)' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x12e): > undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x169): > undefined reference to > `itk::RealTimeStamp::operator!=(itk::RealTimeStamp const&) const' > > > Thanks > P?draig > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > From julien.jomier at kitware.com Mon Sep 8 09:32:47 2014 From: julien.jomier at kitware.com (Julien Jomier) Date: Mon, 08 Sep 2014 15:32:47 +0200 Subject: [Rtk-users] RTK helloworld In-Reply-To: References: <540DAB16.3050904@kitware.com> Message-ID: <540DAFFF.4080103@kitware.com> I'm guessing the ITK shared libs cannot be found. Can you specify the path where the ITK libraries (.so) are located in the LD_LIBRARY_PATH before your run make? Julien On 08/09/2014 15:23, Padraig Looney wrote: > It has successfully compiled using ccmake and make. I presume that has > successfully linked it. The errors were produced with make. > > Both the SharedLibs variables are set to ON. > > I've tried building RTK two different ways. Once by allowing cmake to > find ITK. This way ITK_DIR is set to /usr/local/lib/cmake/ITK-4.6 > > The other way I built it was by setting ITK_DIR to be the location of > the build directory. Which is what I understand from the wiki > > "When CMake asks for the ITK_DIR, specify the binary directory where ITK > is built and choose CMAKE_BUILD_TYPE (default: Release)" > > It didn't make any difference though. > > On Mon, Sep 8, 2014 at 2:11 PM, Julien Jomier > wrote: > > Dear Padraig, > > When you say "built and is working but I have hundreds of errors" do > you mean that you have successfully compiled and linked the example? > It seems that your example cannot find the ITK libraries. Are you > building ITK and RTK using BUILD_SHARED_LIBS to ON in CMake? > > Julien > > > On 08/09/2014 14:43, Padraig Looney wrote: > > Dear all, > > I am trying to get the HelloWorld example running but I get a large > number of errors after the build. I am using ITK-4.6 and have > followed > the instructions as per > > http://wiki.openrtk.org/index.__php/RTK_wiki_help#Tutorial_0_-___Building_an_HelloWorld___application_with_RTK > > > My executable is built and is working but I have hundreds of > errors. The > first few are. > > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::MemoryAllocationError::__MemoryAllocationError(std::__string > const&, > unsigned int, std::string const&, std::string const&)': > main.cpp:(.text.___ZN3itk21MemoryAllocationErrorC__2ERKSsjS2_S2_[___ZN3itk21MemoryAllocationErrorC__5ERKSsjS2_S2_]+0x35): > undefined reference to > `itk::ExceptionObject::__ExceptionObject(std::string const&, > unsigned int, > std::string const&, std::string const&)' > main.cpp:(.text.___ZN3itk21MemoryAllocationErrorC__2ERKSsjS2_S2_[___ZN3itk21MemoryAllocationErrorC__5ERKSsjS2_S2_]+0x40): > undefined reference to `vtable for itk::MemoryAllocationError' > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::Object::SetObjectName(__std::string)': > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x2e): > undefined reference to `itk::Object::__GetGlobalWarningDisplay()' > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x12e): > undefined reference to > `itk::__OutputWindowDisplayDebugText(__char const*)' > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::DataObject::__SetRealTimeStamp(itk::__RealTimeStamp)': > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x2e): > undefined reference to `itk::Object::__GetGlobalWarningDisplay()' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0xf1): > undefined reference to `itk::operator<<(std::ostream&__, > itk::RealTimeStamp const&)' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x12e): > undefined reference to > `itk::__OutputWindowDisplayDebugText(__char const*)' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x169): > undefined reference to > `itk::RealTimeStamp::operator!__=(itk::RealTimeStamp const&) const' > > > Thanks > P?draig > > > _________________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/__mailman/listinfo/rtk-users > > > From theday79 at gmail.com Mon Sep 8 23:22:32 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Mon, 8 Sep 2014 23:22:32 -0400 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> Message-ID: <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> Hi all, I've been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven't had any problem with full scan images (360 degree scan), I found that rtkfdk doesn't work well with my short scan images obtained from our Elekta XVI system. I've used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn't change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: short_scan.PNG Type: image/png Size: 166828 bytes Desc: not available URL: From simon.rit at creatis.insa-lyon.fr Tue Sep 9 01:24:25 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Tue, 9 Sep 2014 07:24:25 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> Message-ID: Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > _______________________________________________ > 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: From padraig.looney at gmail.com Tue Sep 9 06:05:01 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 9 Sep 2014 11:05:01 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction Message-ID: When I try to run the "FirstReconstruction" example I am getting a segmentation fault. The following is the output from gdb Program received signal SIGSEGV, Segmentation fault. 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue Sep 9 06:32:29 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 09 Sep 2014 12:32:29 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: Message-ID: <540ED73D.3080003@creatis.insa-lyon.fr> Hi Padraig, With so little information, there isn't much we can do to help you. I usually track segfaults by compiling in Debug mode (by setting "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT Creator (any decent IDE will do just fine, and should stop when the segfault occurs, allowing you to trace it back) Good luck, Cyril On 09/09/2014 12:05 PM, Padraig Looney wrote: > When I try to run the "FirstReconstruction" example I am getting a > segmentation fault. > > The following is the output from gdb > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () > > > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Tue Sep 9 08:40:48 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Tue, 9 Sep 2014 14:40:48 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing wrote: > Hi all, > > > > We have experienced the same problem as YangKyun in our institution. Find > attached a screendump of a short scan, and the ElektaGeometry file. We are > reconstructing on CPU using RTK 1.0.0, and have encountered the strange > behavior a couple of times without being able to find any patterns. Our > images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree > scan with the S20 filter on an Elekta XVI machine. > > > > Hope this helps in tracking down the problem. > > > > > > Best regards, > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *P? vegne > af *Simon Rit > *Sendt:* 9. september 2014 07:24 > *Til:* Yang Kyun Park > *Cc:* rtk-users at public.kitware.com > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Hi, > > Everything looks correct in what you did. What version of RTK did you use? > It looks like a bug in the angular weighting of the projections coming > from the discretization of the integral on the gantry angle. Could you send > us a copy of ElektaGeometry.xml and tell us what was the dimension of the > projections? We will look into it. > Thanks for the report, > Simon > > > > On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > > _______________________________________________ > 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: From theday79 at gmail.com Tue Sep 9 11:43:32 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Tue, 9 Sep 2014 11:43:32 -0400 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: <002e01cfcc44$d01763f0$70462bd0$@gmail.com> Hi Simon, Thank your for the prompt update. Now it works perfectly! Best, YangKyun From: simon.rit at gmail.com [mailto:simon.rit at gmail.com] On Behalf Of Simon Rit Sent: Tuesday, September 09, 2014 8:41 AM To: Rune Slot Thing Cc: Yang Kyun Park; rtk-users at public.kitware.com Subject: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: Hi all, We have experienced the same problem as YangKyun in our institution. Find attached a screendump of a short scan, and the ElektaGeometry file. We are reconstructing on CPU using RTK 1.0.0, and have encountered the strange behavior a couple of times without being able to find any patterns. Our images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree scan with the S20 filter on an Elekta XVI machine. Hope this helps in tracking down the problem. Best regards, Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: Rtk-users [mailto:rtk-users-bounces at public.kitware.com ] P? vegne af Simon Rit Sendt: 9. september 2014 07:24 Til: Yang Kyun Park Cc: rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park > wrote: Hi all, I?ve been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven?t had any problem with full scan images (360 degree scan), I found that rtkfdk doesn?t work well with my short scan images obtained from our Elekta XVI system. I?ve used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn?t change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun _______________________________________________ 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: From Rune.Slot.Thing at rsyd.dk Wed Sep 10 04:39:05 2014 From: Rune.Slot.Thing at rsyd.dk (Rune Slot Thing) Date: Wed, 10 Sep 2014 08:39:05 +0000 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> Hi Simon, I asked our IT-guy to recompile the new commit, but unfortunately he was unsuccessful. Here is what he writes: I've downloaded the master from git today and compiled in the VS 2008 pro 64bit on Win7 with itk 4.3.0 and fftw. The new fix does not compile because of issues on line 92-99 in rtkParkerShortScanImageFilter.txx error C2678: binary '==' : no operator found which takes a left-hand operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no acceptable conversion) and on line 73 error C2923: 'itk::Vector' : 'rtk::DaubechiesWaveletsConvolutionImageFilter::Pass' is not a valid template type argument for parameter 'T' f:\programmering\cxx\lib\rtk\master-2014-09-10\code\rtkDaubechiesWaveletsConvolutionImageFilter.h 73 rtkadmmwavelets Is it a typo with to identical lines (LINE 93 = 94)? Thanks again for your prompt help. Best regards, Rune Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: simon.rit at gmail.com [mailto:simon.rit at gmail.com] P? vegne af Simon Rit Sendt: 9. september 2014 14:41 Til: Rune Slot Thing Cc: Yang Kyun Park; rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: Hi all, We have experienced the same problem as YangKyun in our institution. Find attached a screendump of a short scan, and the ElektaGeometry file. We are reconstructing on CPU using RTK 1.0.0, and have encountered the strange behavior a couple of times without being able to find any patterns. Our images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree scan with the S20 filter on an Elekta XVI machine. Hope this helps in tracking down the problem. Best regards, Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: Rtk-users [mailto:rtk-users-bounces at public.kitware.com] P? vegne af Simon Rit Sendt: 9. september 2014 07:24 Til: Yang Kyun Park Cc: rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park > wrote: Hi all, I?ve been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven?t had any problem with full scan images (360 degree scan), I found that rtkfdk doesn?t work well with my short scan images obtained from our Elekta XVI system. I?ve used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn?t change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun _______________________________________________ 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: From wuchao04 at gmail.com Wed Sep 10 07:35:27 2014 From: wuchao04 at gmail.com (Chao Wu) Date: Wed, 10 Sep 2014 13:35:27 +0200 Subject: [Rtk-users] coordinates of 3D volume Message-ID: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 08:38:43 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 14:38:43 +0200 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: Message-ID: Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu wrote: > Hi all, > > I see that rtk use certain industrial standard for the coordinates of 2D > projections and 3D volumes. However in medical imaging, the xy planes of a > volume are usually transaxial slices while the 3rd dimension is aligned > with the axis of rotation. I would like to switch to this coordinates in my > own code. Is there anyone who can give me some comments and suggestions > about where to start? Thanks. > > Regards, > Chao > > _______________________________________________ > 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: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 08:43:54 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 14:43:54 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> Message-ID: I wonder why it compiles on Linux... but anyway, sorry, it's been fixed. On Wed, Sep 10, 2014 at 10:39 AM, Rune Slot Thing wrote: > Hi Simon, > > > > I asked our IT-guy to recompile the new commit, but unfortunately he was > unsuccessful. Here is what he writes: > > > > I've downloaded the master from git today and compiled in the VS 2008 pro > 64bit on Win7 with itk 4.3.0 and fftw. > > > > The new fix does not compile because of issues on line 92-99 in > rtkParkerShortScanImageFilter.txx > > > > error C2678: binary '==' : no operator found which takes a left-hand > operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no > acceptable conversion) > > > > and on line 73 > > > > error C2923: 'itk::Vector' : > 'rtk::DaubechiesWaveletsConvolutionImageFilter::Pass' is not a > valid template type argument for parameter 'T' > f:\programmering\cxx\lib\rtk\master-2014-09-10\code\rtkDaubechiesWaveletsConvolutionImageFilter.h > 73 rtkadmmwavelets > > Is it a typo with to identical lines (LINE 93 = 94)? > > > > Thanks again for your prompt help. > > > > Best regards, > > Rune > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* simon.rit at gmail.com [mailto:simon.rit at gmail.com] *P? vegne af *Simon > Rit > *Sendt:* 9. september 2014 14:41 > *Til:* Rune Slot Thing > *Cc:* Yang Kyun Park; rtk-users at public.kitware.com > > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Thank you Rune, this was very helpful. The pattern is that several > projections have the same gantry angle on one side of the gantry angle gap. > Something that happens with Elekta Synergy... I think that the bug has been > fixed: > > https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f > > > > On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: > > Hi all, > > > > We have experienced the same problem as YangKyun in our institution. Find > attached a screendump of a short scan, and the ElektaGeometry file. We are > reconstructing on CPU using RTK 1.0.0, and have encountered the strange > behavior a couple of times without being able to find any patterns. Our > images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree > scan with the S20 filter on an Elekta XVI machine. > > > > Hope this helps in tracking down the problem. > > > > > > Best regards, > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *P? vegne > af *Simon Rit > *Sendt:* 9. september 2014 07:24 > *Til:* Yang Kyun Park > *Cc:* rtk-users at public.kitware.com > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Hi, > > Everything looks correct in what you did. What version of RTK did you use? > It looks like a bug in the angular weighting of the projections coming > from the discretization of the integral on the gantry angle. Could you send > us a copy of ElektaGeometry.xml and tell us what was the dimension of the > projections? We will look into it. > Thanks for the report, > Simon > > > > On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > > _______________________________________________ > 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: From theday79 at gmail.com Wed Sep 10 09:47:17 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Wed, 10 Sep 2014 09:47:17 -0400 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: Message-ID: <003801cfccfd$bd111800$37334800$@gmail.com> Hi Chao, I had the same issue on my work and I?ve managed to fix it by the following codes. I?m not sure this is the optimal way to do it but at least it worked in my case. (Or you can transform it in 3D Slicer. In transform menu, you need to apply the following matrix: 0 0 -1 0 1 0 0 0 0 1 0 0 0 0 0 1 to the target image, harden the transform then export the image.) Best, YangKyun // OutputImageType = // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction //Same image type from original image -3D & float OutputImageType::IndexType start_trans; start_trans[0] = 0; start_trans[1] = 0; start_trans[2] = 0; OutputImageType::SizeType size_trans; size_trans[0] = sizeOutput[0]; // X //410 size_trans[1] = sizeOutput[2]; //Y // 410 size_trans[2] = sizeOutput[1]; //Z // 120? OutputImageType::SpacingType spacing_trans; spacing_trans[0] = spacing[0]; spacing_trans[1] = spacing[2]; spacing_trans[2] = spacing[1]; OutputImageType::PointType Origin_trans; Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; OutputImageType::RegionType region_trans; region_trans.SetSize(size_trans); region_trans.SetIndex(start_trans); /* 2) Prepare Target image */ OutputImageType::Pointer targetImg = streamerBP->GetOutput(); /* 3) Configure transform */ typedef itk::Euler3DTransform< double > TransformType; TransformType::Pointer transform = TransformType::New(); TransformType::ParametersType param; param.SetSize(6); //MAXIMUM PARAM NUMBER: 6!!! param.put(0, 0.0); //rot X // 0.5 = PI/2 param.put(1, itk::Math::pi/2.0);//rot Y param.put(2, itk::Math::pi/-2.0);//rot Z param.put(3, 0.0); // Trans X mm param.put(4, 0.0); // Trans Y mm param.put(5, 0.0); // Trans Z mm TransformType::ParametersType fixedParam(3); //rotation center fixedParam.put(0,0); fixedParam.put(1,0); fixedParam.put(2,0); transform->SetParameters(param); transform->SetFixedParameters(fixedParam); //Center of the Transform cout << "Transform matrix:" << " " << endl; cout << transform->GetMatrix() << std::endl; typedef itk::ResampleImageFilter ResampleFilterType; ResampleFilterType::Pointer resampler = ResampleFilterType::New(); //OutputImageType::RegionType fixedImg_Region = fixedImg->GetLargestPossibleRegion().GetSize(); resampler->SetInput(targetImg); resampler->SetSize(size_trans); resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large Canvas resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 resampler->SetOutputDirection( targetImg->GetDirection() ); //image normal? resampler->SetTransform(transform); //LR flip cout << "LR flip filter is being applied" << endl; typedef itk::FlipImageFilter< OutputImageType > FilterType; FilterType::Pointer flipFilter = FilterType::New(); typedef FilterType::FlipAxesArrayType FlipAxesArrayType; FlipAxesArrayType arrFlipAxes; arrFlipAxes[0] = 1; arrFlipAxes[1] = 0; arrFlipAxes[2] = 0; flipFilter->SetFlipAxes(arrFlipAxes); flipFilter->SetInput(resampler->GetOutput()); flipFilter->Update(); //Use flipFilter->GetOutput() for further process From: Rtk-users [mailto:rtk-users-bounces at public.kitware.com] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 8:39 AM To: Chao Wu Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu > wrote: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao _______________________________________________ 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: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 10:50:00 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 16:50:00 +0200 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: <003801cfccfd$bd111800$37334800$@gmail.com> References: <003801cfccfd$bd111800$37334800$@gmail.com> Message-ID: This option works but there is a risk of an additional interpolation by the resampler and it costs some computing time. The other option I suggested requires to modify the transform parameter of the source (in this example, add constantImageSource->SetDirection(transform->GetMatrix()); where transform is that of Yang's example, then use itk::ChangeImageInformation to reset the transform to identity. On Wed, Sep 10, 2014 at 3:47 PM, Yang Kyun Park wrote: > Hi Chao, > > > > I had the same issue on my work and I?ve managed to fix it by the > following codes. > > I?m not sure this is the optimal way to do it but at least it worked in my > case. > > > > (Or you can transform it in 3D Slicer. > > In transform menu, you need to apply the following matrix: > > 0 0 -1 0 > > 1 0 0 0 > > 0 1 0 0 > > 0 0 0 1 > > to the target image, harden the transform then export the image.) > > > > Best, > > YangKyun > > > > > > // OutputImageType = > > // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction > > > > //Same image type from original image -3D & float > > OutputImageType::IndexType start_trans; > > start_trans[0] = 0; > > start_trans[1] = 0; > > start_trans[2] = 0; > > > > OutputImageType::SizeType size_trans; > > size_trans[0] = sizeOutput[0]; // X //410 > > size_trans[1] = sizeOutput[2]; //Y // 410 > > size_trans[2] = sizeOutput[1]; //Z // 120? > > > > OutputImageType::SpacingType spacing_trans; > > spacing_trans[0] = spacing[0]; > > spacing_trans[1] = spacing[2]; > > spacing_trans[2] = spacing[1]; > > > > OutputImageType::PointType Origin_trans; > > Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; > > Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; > > Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; > > > > OutputImageType::RegionType region_trans; > > region_trans.SetSize(size_trans); > > region_trans.SetIndex(start_trans); > > > > /* 2) Prepare Target image */ > > OutputImageType::Pointer targetImg = streamerBP->GetOutput(); > > > > /* 3) Configure transform */ > > typedef itk::Euler3DTransform< double > TransformType; > > TransformType::Pointer transform = TransformType::New(); > > > > TransformType::ParametersType param; > > param.SetSize(6); > > //MAXIMUM PARAM NUMBER: 6!!! > > param.put(0, 0.0); //rot X // 0.5 = PI/2 > > param.put(1, itk::Math::pi/2.0);//rot Y > > param.put(2, itk::Math::pi/-2.0);//rot Z > > param.put(3, 0.0); // Trans X mm > > param.put(4, 0.0); // Trans Y mm > > param.put(5, 0.0); // Trans Z mm > > > > TransformType::ParametersType fixedParam(3); //rotation center > > fixedParam.put(0,0); > > fixedParam.put(1,0); > > fixedParam.put(2,0); > > > > transform->SetParameters(param); > > transform->SetFixedParameters(fixedParam); //Center of the > Transform > > > > cout << "Transform matrix:" << " " << endl; > > cout << transform->GetMatrix() << std::endl; > > > > typedef itk::ResampleImageFilter > ResampleFilterType; > > ResampleFilterType::Pointer resampler = ResampleFilterType::New(); > > //OutputImageType::RegionType fixedImg_Region = > fixedImg->GetLargestPossibleRegion().GetSize(); > > > > resampler->SetInput(targetImg); > > resampler->SetSize(size_trans); > > resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large > Canvas > > resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 > > resampler->SetOutputDirection( targetImg->GetDirection() ); //image > normal? > > resampler->SetTransform(transform); > > > > //LR flip > > > > cout << "LR flip filter is being applied" << endl; > > > > typedef itk::FlipImageFilter< OutputImageType > FilterType; > > > > FilterType::Pointer flipFilter = FilterType::New(); > > typedef FilterType::FlipAxesArrayType FlipAxesArrayType; > > > > FlipAxesArrayType arrFlipAxes; > > arrFlipAxes[0] = 1; > > arrFlipAxes[1] = 0; > > arrFlipAxes[2] = 0; > > > > flipFilter->SetFlipAxes(arrFlipAxes); > > flipFilter->SetInput(resampler->GetOutput()); > > flipFilter->Update(); > > > > //Use flipFilter->GetOutput() for further process > > > > > > > > *From:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *On > Behalf Of *Simon Rit > *Sent:* Wednesday, September 10, 2014 8:39 AM > *To:* Chao Wu > *Cc:* rtk-users at openrtk.org > *Subject:* Re: [Rtk-users] coordinates of 3D volume > > > > Hi, > > I wish there was a single industrial standard... You have the DICOM > standard in mind and I used an IEC standard (see wiki). You can play with > the --direction option to orientate the voxel axes of your image (see > itk::Image documentation) and then reset the direction of your output image > to identity, I think that will do what you want. > > Simon > > > > On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu wrote: > > Hi all, > > > > I see that rtk use certain industrial standard for the coordinates of 2D > projections and 3D volumes. However in medical imaging, the xy planes of a > volume are usually transaxial slices while the 3rd dimension is aligned > with the axis of rotation. I would like to switch to this coordinates in my > own code. Is there anyone who can give me some comments and suggestions > about where to start? Thanks. > > > > Regards, > > Chao > > > _______________________________________________ > 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: From theday79 at gmail.com Wed Sep 10 10:56:28 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Wed, 10 Sep 2014 10:56:28 -0400 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: <003801cfccfd$bd111800$37334800$@gmail.com> Message-ID: <005e01cfcd07$6783cdb0$368b6910$@gmail.com> Hi Simon, Thanks for the good tip. Let me try out your approach too! YangKyun From: simon.rit at gmail.com [mailto:simon.rit at gmail.com] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 10:50 AM To: Yang Kyun Park Cc: Chao Wu; rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume This option works but there is a risk of an additional interpolation by the resampler and it costs some computing time. The other option I suggested requires to modify the transform parameter of the source (in this example, add constantImageSource->SetDirection(transform->GetMatrix()); where transform is that of Yang's example, then use itk::ChangeImageInformation to reset the transform to identity. On Wed, Sep 10, 2014 at 3:47 PM, Yang Kyun Park > wrote: Hi Chao, I had the same issue on my work and I?ve managed to fix it by the following codes. I?m not sure this is the optimal way to do it but at least it worked in my case. (Or you can transform it in 3D Slicer. In transform menu, you need to apply the following matrix: 0 0 -1 0 1 0 0 0 0 1 0 0 0 0 0 1 to the target image, harden the transform then export the image.) Best, YangKyun // OutputImageType = // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction //Same image type from original image -3D & float OutputImageType::IndexType start_trans; start_trans[0] = 0; start_trans[1] = 0; start_trans[2] = 0; OutputImageType::SizeType size_trans; size_trans[0] = sizeOutput[0]; // X //410 size_trans[1] = sizeOutput[2]; //Y // 410 size_trans[2] = sizeOutput[1]; //Z // 120? OutputImageType::SpacingType spacing_trans; spacing_trans[0] = spacing[0]; spacing_trans[1] = spacing[2]; spacing_trans[2] = spacing[1]; OutputImageType::PointType Origin_trans; Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; OutputImageType::RegionType region_trans; region_trans.SetSize(size_trans); region_trans.SetIndex(start_trans); /* 2) Prepare Target image */ OutputImageType::Pointer targetImg = streamerBP->GetOutput(); /* 3) Configure transform */ typedef itk::Euler3DTransform< double > TransformType; TransformType::Pointer transform = TransformType::New(); TransformType::ParametersType param; param.SetSize(6); //MAXIMUM PARAM NUMBER: 6!!! param.put(0, 0.0); //rot X // 0.5 = PI/2 param.put(1, itk::Math::pi/2.0);//rot Y param.put(2, itk::Math::pi/-2.0);//rot Z param.put(3, 0.0); // Trans X mm param.put(4, 0.0); // Trans Y mm param.put(5, 0.0); // Trans Z mm TransformType::ParametersType fixedParam(3); //rotation center fixedParam.put(0,0); fixedParam.put(1,0); fixedParam.put(2,0); transform->SetParameters(param); transform->SetFixedParameters(fixedParam); //Center of the Transform cout << "Transform matrix:" << " " << endl; cout << transform->GetMatrix() << std::endl; typedef itk::ResampleImageFilter ResampleFilterType; ResampleFilterType::Pointer resampler = ResampleFilterType::New(); //OutputImageType::RegionType fixedImg_Region = fixedImg->GetLargestPossibleRegion().GetSize(); resampler->SetInput(targetImg); resampler->SetSize(size_trans); resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large Canvas resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 resampler->SetOutputDirection( targetImg->GetDirection() ); //image normal? resampler->SetTransform(transform); //LR flip cout << "LR flip filter is being applied" << endl; typedef itk::FlipImageFilter< OutputImageType > FilterType; FilterType::Pointer flipFilter = FilterType::New(); typedef FilterType::FlipAxesArrayType FlipAxesArrayType; FlipAxesArrayType arrFlipAxes; arrFlipAxes[0] = 1; arrFlipAxes[1] = 0; arrFlipAxes[2] = 0; flipFilter->SetFlipAxes(arrFlipAxes); flipFilter->SetInput(resampler->GetOutput()); flipFilter->Update(); //Use flipFilter->GetOutput() for further process From: Rtk-users [mailto:rtk-users-bounces at public.kitware.com ] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 8:39 AM To: Chao Wu Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu > wrote: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao _______________________________________________ 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: From ghostcz at hotmail.com Mon Sep 15 08:09:46 2014 From: ghostcz at hotmail.com (ghostcz) Date: Mon, 15 Sep 2014 14:09:46 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? Message-ID: Dear Rtk users, How can I select one (or maybe more?) specific GPU to run my reconstruction? It seems if I start a second instance of the reconstruction program, it will run on the same GPU. Best regards, Louie -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Mon Sep 15 08:45:24 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Mon, 15 Sep 2014 14:45:24 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: Message-ID: Hi, Good question, I did not hear anybody working on multiple GPUs so far. It currently uses the first Cuda compatible device. I think you'll have to look up in the Cuda manual to see how to switch to another one but there is nothing available in the RTK lib yet. Don't hesitate to suggest some code changes to add this feature. Simon On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: > Dear Rtk users, > > How can I select one (or maybe more?) specific GPU to run my reconstruction? > It seems if I start a second instance of the reconstruction program, it will > run on the same GPU. > > Best regards, > Louie > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > From padraig.looney at gmail.com Tue Sep 16 10:07:05 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 16 Sep 2014 15:07:05 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: <540ED73D.3080003@creatis.insa-lyon.fr> References: <540ED73D.3080003@creatis.insa-lyon.fr> Message-ID: Thanks Cyril, Following your advice I have tracked the seg fault down to line 36 in FirstReconstruction geometry->AddProjection(sid, sdd, angle, isox, isoy); } I realised that I managed to build the examples with RTK fine and the same example runs without a seg fault in the build directory. On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory wrote: > Hi Padraig, > > With so little information, there isn't much we can do to help you. > I usually track segfaults by compiling in Debug mode (by setting > "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT > Creator (any decent IDE will do just fine, and should stop when the > segfault occurs, allowing you to trace it back) > > Good luck, > Cyril > > > On 09/09/2014 12:05 PM, Padraig Looney wrote: > > When I try to run the "FirstReconstruction" example I am getting a > segmentation fault. > > The following is the output from gdb > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () > > > > > _______________________________________________ > Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users > > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue Sep 16 10:23:07 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 16 Sep 2014 16:23:07 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: <540ED73D.3080003@creatis.insa-lyon.fr> Message-ID: <541847CB.8020807@creatis.insa-lyon.fr> Hi Padraig, Does the segfault happen at the first call of geometry->AddProjection(...) or later ? My guess is that, for some reason, geometry is not initialized. Can you make sure it is by setting a breakpoint just before ? You should also make sure that all variables involved in this call, ie "sid", "sdd", "angle", "isox" and "isoy" have reasonable values before the call. It is probably not a good question, yet I have to ask : did you modify something in the file examples/FirstReconstruction/FirstReconstruction.cxx ? Regards, Cyril On 09/16/2014 04:07 PM, Padraig Looney wrote: > Thanks Cyril, > > Following your advice I have tracked the seg fault down to line 36 in > FirstReconstruction > > geometry->AddProjection(sid, > sdd, > angle, > isox, > isoy); > } > > I realised that I managed to build the examples with RTK fine and the > same example runs without a seg fault in the build directory. > > On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory > > wrote: > > Hi Padraig, > > With so little information, there isn't much we can do to help you. > I usually track segfaults by compiling in Debug mode (by setting > "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug > in QT Creator (any decent IDE will do just fine, and should stop > when the segfault occurs, allowing you to trace it back) > > Good luck, > Cyril > > > On 09/09/2014 12:05 PM, Padraig Looney wrote: >> When I try to run the "FirstReconstruction" example I am getting >> a segmentation fault. >> >> The following is the output from gdb >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () >> >> >> >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://public.kitware.com/mailman/listinfo/rtk-users > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From padraig.looney at gmail.com Tue Sep 16 10:38:05 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 16 Sep 2014 15:38:05 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: <541847CB.8020807@creatis.insa-lyon.fr> References: <540ED73D.3080003@creatis.insa-lyon.fr> <541847CB.8020807@creatis.insa-lyon.fr> Message-ID: It happens with the first call. I set a breakpoint just before and it is not empty. I have tried to attach a screen capture of my space. Yes I thought I may have changed something but I have copied the directory twice from the original download in which it builds correctly. I cloned this with git and there are no changes. On Tue, Sep 16, 2014 at 3:23 PM, Cyril Mory wrote: > Hi Padraig, > > Does the segfault happen at the first call of geometry->AddProjection(...) > or later ? > > My guess is that, for some reason, geometry is not initialized. Can you > make sure it is by setting a breakpoint just before ? > You should also make sure that all variables involved in this call, ie > "sid", "sdd", "angle", "isox" and "isoy" have reasonable values before the > call. > > It is probably not a good question, yet I have to ask : did you modify > something in the file examples/FirstReconstruction/FirstReconstruction.cxx > ? > > Regards, > Cyril > > > On 09/16/2014 04:07 PM, Padraig Looney wrote: > > Thanks Cyril, > > Following your advice I have tracked the seg fault down to line 36 in > FirstReconstruction > > geometry->AddProjection(sid, > sdd, > angle, > isox, > isoy); > } > > I realised that I managed to build the examples with RTK fine and the > same example runs without a seg fault in the build directory. > > On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory < > cyril.mory at creatis.insa-lyon.fr> wrote: > >> Hi Padraig, >> >> With so little information, there isn't much we can do to help you. >> I usually track segfaults by compiling in Debug mode (by setting >> "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT >> Creator (any decent IDE will do just fine, and should stop when the >> segfault occurs, allowing you to trace it back) >> >> Good luck, >> Cyril >> >> >> On 09/09/2014 12:05 PM, Padraig Looney wrote: >> >> When I try to run the "FirstReconstruction" example I am getting a >> segmentation fault. >> >> The following is the output from gdb >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () >> >> >> >> >> _______________________________________________ >> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 >> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: rtkSegFaultFirstRecon.png Type: image/png Size: 273538 bytes Desc: not available URL: From cyril.mory at creatis.insa-lyon.fr Wed Sep 17 05:59:58 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Wed, 17 Sep 2014 11:59:58 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: Message-ID: <54195B9E.10000@creatis.insa-lyon.fr> Hi Louie, We have been investigating your question bit. A first possible solution, which may be sufficient for your needs, could be to set the CUDA_VISIBLE_DEVICES environment variable. You'll find details here : http://www.acceleware.com/blog/cudavisibledevices-masking-gpus Here are two scripts I used to run tests on our two-GPUs server: ######### First script ######### echo "Running two instances of rtkfdk without specifying a GPU" CUDA_VISIBLE_DEVICES="0,1" time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g geom.xml --dimension 512 & time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g geom.xml --dimension 512 & ######### Second script ######### echo "Running two instances of rtkfdk, specifying which GPU to use for each" echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash ######### End ############# On our server, which has two identical GPUs, these two scripts took the same time. It seems that, in the first script, rtkfdk somehow managed to detect that the first GPU was in use and ran on the second one. But I can't guarantee under which conditions this happens, and surely it's safer to use the second script. This is the cheapest solution. If you need more than that, and you are ready to dive into the cuda filters' code as well as into the automatic transfers between CPU and GPU memory, do not hesitate to propose modifications of the RTK code. Regards, Cyril On 09/15/2014 02:45 PM, Simon Rit wrote: > Hi, > Good question, I did not hear anybody working on multiple GPUs so far. > It currently uses the first Cuda compatible device. I think you'll > have to look up in the Cuda manual to see how to switch to another one > but there is nothing available in the RTK lib yet. Don't hesitate to > suggest some code changes to add this feature. > Simon > > On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >> Dear Rtk users, >> >> How can I select one (or maybe more?) specific GPU to run my reconstruction? >> It seems if I start a second instance of the reconstruction program, it will >> run on the same GPU. >> >> Best regards, >> Louie >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://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 > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From ghostcz at hotmail.com Wed Sep 17 11:58:47 2014 From: ghostcz at hotmail.com (ghostcz) Date: Wed, 17 Sep 2014 17:58:47 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: <54195B9E.10000@creatis.insa-lyon.fr> References: <54195B9E.10000@creatis.insa-lyon.fr> Message-ID: Dear Cyril, Thank you for the follow-up. That is indeed a faster way to realize this function. I wrote a launcher instead, where I call cuda_set_device to select the device. No, I don?t think I know CUDA good enough to manage the memory transfer between the devices. Best regards, Louie P.S. is there any training or workshop focusing on rtk application and development available? -----Original Message----- From: Cyril Mory Sent: Wednesday, September 17, 2014 11:59 AM To: Simon Rit ; ghostcz Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] How to run the reconstruction on a specific GPU? Hi Louie, We have been investigating your question bit. A first possible solution, which may be sufficient for your needs, could be to set the CUDA_VISIBLE_DEVICES environment variable. You'll find details here : http://www.acceleware.com/blog/cudavisibledevices-masking-gpus Here are two scripts I used to run tests on our two-GPUs server: ######### First script ######### echo "Running two instances of rtkfdk without specifying a GPU" CUDA_VISIBLE_DEVICES="0,1" time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g geom.xml --dimension 512 & time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g geom.xml --dimension 512 & ######### Second script ######### echo "Running two instances of rtkfdk, specifying which GPU to use for each" echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash ######### End ############# On our server, which has two identical GPUs, these two scripts took the same time. It seems that, in the first script, rtkfdk somehow managed to detect that the first GPU was in use and ran on the second one. But I can't guarantee under which conditions this happens, and surely it's safer to use the second script. This is the cheapest solution. If you need more than that, and you are ready to dive into the cuda filters' code as well as into the automatic transfers between CPU and GPU memory, do not hesitate to propose modifications of the RTK code. Regards, Cyril On 09/15/2014 02:45 PM, Simon Rit wrote: > Hi, > Good question, I did not hear anybody working on multiple GPUs so far. > It currently uses the first Cuda compatible device. I think you'll > have to look up in the Cuda manual to see how to switch to another one > but there is nothing available in the RTK lib yet. Don't hesitate to > suggest some code changes to add this feature. > Simon > > On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >> Dear Rtk users, >> >> How can I select one (or maybe more?) specific GPU to run my >> reconstruction? >> It seems if I start a second instance of the reconstruction program, it >> will >> run on the same GPU. >> >> Best regards, >> Louie >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://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 > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From lomahu at gmail.com Wed Sep 17 23:21:34 2014 From: lomahu at gmail.com (Howard) Date: Wed, 17 Sep 2014 23:21:34 -0400 Subject: [Rtk-users] bright circle on the reconstructed image Message-ID: Hi, I use rtkfdk to reconstruct varian cbct images following the example on rtk wiki page. The projections were obtained with half fan mode because it is an abdominal region with the patient lateral x AP dimension of 550x550. The reconstructed cbct images have a big bright circle around the image. Please see the image: http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html I am using Ubuntu Linux box to reconstruct. Two sequential commands were used: ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ --regexp Proj_.*.hnd -o varianGeometry and rtkfdk \ --geometry varianGeometry \ --regexp .*.hnd \ --path ../Scan0 \ --output rec.mha \ --verbose \ --spacing 2.0,2.0,2.0 \ --dimension 256,100,256 \ The projections are stored in the standard varian format: Scan0 and ProjectionInfo.xml with 644 projection images. I assume that rtkfdk handled the half fan geometry properly. What did I do wrong then? Many thanks! -howard -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 04:12:23 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 10:12:23 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: Message-ID: <541A93E7.7010301@creatis.insa-lyon.fr> Hi Howard, The bright ring artifact is typically caused by high-pass filtering (the ramp filter used in FDK) of truncated projection data (when projections have non-zero values on the sides, the edge of the projection makes a sharp transition to zero). A classical answer to this problem is to pad the projections, for example with values starting from the values on the side and slowly decreasing to zero. rtkfdk can do this padding for you. Just add "--pad 0.1" to your options (or more than 0.1 if it isn't enough). Also, I noticed that your reconstructed image seems quite noisy. You might want to use a Hann windowing of the ramp filter to reduce the noise amplification effect of high-pass filtering. You can do that by adding "--hann 0.5" to your options. Note that the argument is a cut-off frequency, so smaller values mean more smoothing. Best regards, Cyril On 09/18/2014 05:21 AM, Howard wrote: > Hi, > I use rtkfdk to reconstruct varian cbct images following the example > on rtk wiki page. The projections were obtained with half fan mode > because it is an abdominal region with the patient lateral x AP > dimension of 550x550. The reconstructed cbct images have a big > bright circle around > the image. Please see the image: > http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > I am using Ubuntu Linux box to reconstruct. Two sequential commands > were used: > ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > --regexp Proj_.*.hnd -o varianGeometry > and > rtkfdk \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output rec.mha \ > --verbose \ > --spacing 2.0,2.0,2.0 \ > --dimension 256,100,256 \ > The projections are stored in the standard varian format: Scan0 and > ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled the half fan geometry properly. What did I do wrong then? > Many thanks! > -howard > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 04:53:34 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 10:53:34 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: <54195B9E.10000@creatis.insa-lyon.fr> Message-ID: <541A9D8E.5040403@creatis.insa-lyon.fr> Hi Louie, Good that you managed to solve your problem. Your question on training made us think a bit. Here are a few answers: - At the moment, there is only a wiki, the documentation and this mailing list - We're only a handful of developers working on RTK, so it seems too early, and too much logistics, to organize real workshops or training sessions in the near future - That being said, we would like to leave the door open. Surely it is important, if we want more people to use RTK and contribute to it, that new developers can learn easily and efficiently. I'll start a specific thread on the mailing list to gather the possible requests similar to yours - RTK uses ITK to do most of the work, therefore programming in RTK essentially requires knowing ITK and knowing some tomography. ITK training sessions are organized often and in many countries I hope it helps, Cyril On 09/17/2014 05:58 PM, ghostcz wrote: > Dear Cyril, > > Thank you for the follow-up. > That is indeed a faster way to realize this function. I wrote a > launcher instead, where I call cuda_set_device to select the device. > No, I don?t think I know CUDA good enough to manage the memory > transfer between the devices. > > Best regards, > Louie > > P.S. is there any training or workshop focusing on rtk application and > development available? > > > > > -----Original Message----- From: Cyril Mory > Sent: Wednesday, September 17, 2014 11:59 AM > To: Simon Rit ; ghostcz > Cc: rtk-users at openrtk.org > Subject: Re: [Rtk-users] How to run the reconstruction on a specific GPU? > > Hi Louie, > > We have been investigating your question bit. A first possible solution, > which may be sufficient for your needs, could be to set the > CUDA_VISIBLE_DEVICES environment variable. You'll find details here : > http://www.acceleware.com/blog/cudavisibledevices-masking-gpus > > Here are two scripts I used to run tests on our two-GPUs server: > > ######### First script ######### > echo "Running two instances of rtkfdk without specifying a GPU" > CUDA_VISIBLE_DEVICES="0,1" > time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g > geom.xml --dimension 512 & > time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g > geom.xml --dimension 512 & > > ######### Second script ######### > echo "Running two instances of rtkfdk, specifying which GPU to use for > each" > echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o > fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash > echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o > fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash > > ######### End ############# > > On our server, which has two identical GPUs, these two scripts took the > same time. It seems that, in the first script, rtkfdk somehow managed to > detect that the first GPU was in use and ran on the second one. But I > can't guarantee under which conditions this happens, and surely it's > safer to use the second script. > > This is the cheapest solution. If you need more than that, and you are > ready to dive into the cuda filters' code as well as into the automatic > transfers between CPU and GPU memory, do not hesitate to propose > modifications of the RTK code. > > Regards, > Cyril > > On 09/15/2014 02:45 PM, Simon Rit wrote: >> Hi, >> Good question, I did not hear anybody working on multiple GPUs so far. >> It currently uses the first Cuda compatible device. I think you'll >> have to look up in the Cuda manual to see how to switch to another one >> but there is nothing available in the RTK lib yet. Don't hesitate to >> suggest some code changes to add this feature. >> Simon >> >> On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >>> Dear Rtk users, >>> >>> How can I select one (or maybe more?) specific GPU to run my >>> reconstruction? >>> It seems if I start a second instance of the reconstruction program, >>> it will >>> run on the same GPU. >>> >>> Best regards, >>> Louie >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://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 >> > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 05:28:42 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 11:28:42 +0200 Subject: [Rtk-users] Would you like RTK trainings ? Message-ID: <541AA5CA.9050306@creatis.insa-lyon.fr> Hi RTK users, A recent question on the mailing list by Louie triggered a conversation between us. Louie asked whether there exists some sort of training or workshop on RTK. In a nutshell, the answer is "No, not yet, but why not talk about it ?". So I'd like to start some sort of "poll" to gather the requests you might have on this topic: Do you need / want / would like a training on RTK ? If so, can you be more specific on what you would like to learn ? (basics of tomography, how to start using RTK on your data, practical issues in circular cone beam CT, motion compensated reconstruction, compressed sensing in tomography, ITK programming, ... this is not an exhaustive list) I think this is enough questions for the time being. The rest will depend on your answers. Looking forward to reading you, -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 06:08:21 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 12:08:21 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: <540ED73D.3080003@creatis.insa-lyon.fr> <541847CB.8020807@creatis.insa-lyon.fr> Message-ID: <541AAF15.9080707@creatis.insa-lyon.fr> Hi Padraig, It is puzzling, as the code is simple and we have many machines on which it works without problem. So let's explore the weirder options : - In one of your previous emails, you mentioned that "the same example runs without a seg fault in the build directory". What does that mean ? - Can you go into your build directory, run "make test", and post the result of the tests ? - Have you tried installing RTK on another machine ? Regards, Cyril On 09/16/2014 04:38 PM, Padraig Looney wrote: > It happens with the first call. > > I set a breakpoint just before and it is not empty. I have tried to > attach a screen capture of my space. > > Yes I thought I may have changed something but I have copied the > directory twice from the original download in which it builds > correctly. I cloned this with git and there are no changes. > > > On Tue, Sep 16, 2014 at 3:23 PM, Cyril Mory > > wrote: > > Hi Padraig, > > Does the segfault happen at the first call of > geometry->AddProjection(...) or later ? > > My guess is that, for some reason, geometry is not initialized. > Can you make sure it is by setting a breakpoint just before ? > You should also make sure that all variables involved in this > call, ie "sid", "sdd", "angle", "isox" and "isoy" have reasonable > values before the call. > > It is probably not a good question, yet I have to ask : did you > modify something in the file > examples/FirstReconstruction/FirstReconstruction.cxx ? > > Regards, > Cyril > > > On 09/16/2014 04:07 PM, Padraig Looney wrote: >> Thanks Cyril, >> >> Following your advice I have tracked the seg fault down to line >> 36 in FirstReconstruction >> >> geometry->AddProjection(sid, >> sdd, >> angle, >> isox, >> isoy); >> } >> >> I realised that I managed to build the examples with RTK fine and >> the same example runs without a seg fault in the build directory. >> >> On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory >> > > wrote: >> >> Hi Padraig, >> >> With so little information, there isn't much we can do to >> help you. >> I usually track segfaults by compiling in Debug mode (by >> setting "CMAKE_BUILD_TYPE" to "Debug"), then running the >> program in debug in QT Creator (any decent IDE will do just >> fine, and should stop when the segfault occurs, allowing you >> to trace it back) >> >> Good luck, >> Cyril >> >> >> On 09/09/2014 12:05 PM, Padraig Looney wrote: >>> When I try to run the "FirstReconstruction" example I am >>> getting a segmentation fault. >>> >>> The following is the output from gdb >>> >>> Program received signal SIGSEGV, Segmentation fault. >>> 0x00000000004952d7 in typeinfo for >>> rtk::ProjectionGeometry<3u> () >>> >>> >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://public.kitware.com/mailman/listinfo/rtk-users >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile:+33 6 69 46 73 79 >> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Thu Sep 18 09:47:40 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Thu, 18 Sep 2014 15:47:40 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: <541A93E7.7010301@creatis.insa-lyon.fr> References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: Hi, I fully agree with Cyril. Something else : you might want to mask out what is outside the field-of-view using the rtkfieldofview executable. Your ring corresponds to that border. See an example here: http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction Simon On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < cyril.mory at creatis.insa-lyon.fr> wrote: > Hi Howard, > > The bright ring artifact is typically caused by high-pass filtering (the > ramp filter used in FDK) of truncated projection data (when projections > have non-zero values on the sides, the edge of the projection makes a sharp > transition to zero). A classical answer to this problem is to pad the > projections, for example with values starting from the values on the side > and slowly decreasing to zero. > > rtkfdk can do this padding for you. Just add "--pad 0.1" to your options > (or more than 0.1 if it isn't enough). > Also, I noticed that your reconstructed image seems quite noisy. You might > want to use a Hann windowing of the ramp filter to reduce the noise > amplification effect of high-pass filtering. You can do that by adding > "--hann 0.5" to your options. Note that the argument is a cut-off > frequency, so smaller values mean more smoothing. > > Best regards, > Cyril > > > On 09/18/2014 05:21 AM, Howard wrote: > > Hi, > > I use rtkfdk to reconstruct varian cbct images following the example on > rtk wiki page. The projections were obtained with half fan mode because it > is an abdominal region with the patient lateral x AP dimension of 550x550. > The reconstructed cbct images have a big bright circle around > the image. Please see the image: > http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > > I am using Ubuntu Linux box to reconstruct. Two sequential commands were > used: > > ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > --regexp Proj_.*.hnd -o varianGeometry > and > > rtkfdk \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output rec.mha \ > --verbose \ > --spacing 2.0,2.0,2.0 \ > --dimension 256,100,256 \ > The projections are stored in the standard varian format: Scan0 and > ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled the half fan geometry properly. What did I do wrong then? Many > thanks! > > -howard > > > _______________________________________________ > Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users > > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > > _______________________________________________ > 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: From lomahu at gmail.com Thu Sep 18 10:47:17 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 10:47:17 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: Thanks very much, Cyril & Simon. Now the fdk reconstruction is working beautifully. Jus another quick question: for rtksart executable, are we still able to do padding and hanning window trick as well? On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit wrote: > Hi, > I fully agree with Cyril. Something else : you might want to mask out what > is outside the field-of-view using the rtkfieldofview executable. Your ring > corresponds to that border. See an example here: > http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > Simon > > On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < > cyril.mory at creatis.insa-lyon.fr> wrote: > >> Hi Howard, >> >> The bright ring artifact is typically caused by high-pass filtering (the >> ramp filter used in FDK) of truncated projection data (when projections >> have non-zero values on the sides, the edge of the projection makes a sharp >> transition to zero). A classical answer to this problem is to pad the >> projections, for example with values starting from the values on the side >> and slowly decreasing to zero. >> >> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >> (or more than 0.1 if it isn't enough). >> Also, I noticed that your reconstructed image seems quite noisy. You >> might want to use a Hann windowing of the ramp filter to reduce the noise >> amplification effect of high-pass filtering. You can do that by adding >> "--hann 0.5" to your options. Note that the argument is a cut-off >> frequency, so smaller values mean more smoothing. >> >> Best regards, >> Cyril >> >> >> On 09/18/2014 05:21 AM, Howard wrote: >> >> Hi, >> >> I use rtkfdk to reconstruct varian cbct images following the example on >> rtk wiki page. The projections were obtained with half fan mode because it >> is an abdominal region with the patient lateral x AP dimension of 550x550. >> The reconstructed cbct images have a big bright circle around >> the image. Please see the image: >> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> >> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >> used: >> >> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >> --regexp Proj_.*.hnd -o varianGeometry >> and >> >> rtkfdk \ >> --geometry varianGeometry \ >> --regexp .*.hnd \ >> --path ../Scan0 \ >> --output rec.mha \ >> --verbose \ >> --spacing 2.0,2.0,2.0 \ >> --dimension 256,100,256 \ >> The projections are stored in the standard varian format: Scan0 and >> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >> handled the half fan geometry properly. What did I do wrong then? Many >> thanks! >> >> -howard >> >> >> _______________________________________________ >> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 >> >> >> _______________________________________________ >> 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: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 10:59:53 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 16:59:53 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: <541AF369.9090403@creatis.insa-lyon.fr> Howard, For SART reconstructions, you do not need padding, and you can't do Hann windowing because no ramp filtering is applied. SART usually outputs smoother images, so you probably will not need this denoising trick anyway. However, you should be careful about one thing : your object has to be fully contained in the reconstructed volume, or you will observe important border effects. Use the --dimension, --spacing and --origin options to ensure this. All the best, Cyril On 09/18/2014 04:47 PM, Howard wrote: > Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > beautifully. Jus another quick question: for rtksart executable, are > we still able to do padding and hanning window trick as well? > > On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > > wrote: > > Hi, > I fully agree with Cyril. Something else : you might want to mask > out what is outside the field-of-view using the rtkfieldofview > executable. Your ring corresponds to that border. See an example here: > http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > Simon > > On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory > > wrote: > > Hi Howard, > > The bright ring artifact is typically caused by high-pass > filtering (the ramp filter used in FDK) of truncated > projection data (when projections have non-zero values on the > sides, the edge of the projection makes a sharp transition to > zero). A classical answer to this problem is to pad the > projections, for example with values starting from the values > on the side and slowly decreasing to zero. > > rtkfdk can do this padding for you. Just add "--pad 0.1" to > your options (or more than 0.1 if it isn't enough). > Also, I noticed that your reconstructed image seems quite > noisy. You might want to use a Hann windowing of the ramp > filter to reduce the noise amplification effect of high-pass > filtering. You can do that by adding "--hann 0.5" to your > options. Note that the argument is a cut-off frequency, so > smaller values mean more smoothing. > > Best regards, > Cyril > > > On 09/18/2014 05:21 AM, Howard wrote: >> Hi, >> I use rtkfdk to reconstruct varian cbct images following the >> example on rtk wiki page. The projections were obtained with >> half fan mode because it is an abdominal region with the >> patient lateral x AP dimension of 550x550. The reconstructed >> cbct images have a big bright circle around >> the image. Please see the image: >> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> I am using Ubuntu Linux box to reconstruct. Two sequential >> commands were used: >> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path >> Scan0/ --regexp Proj_.*.hnd -o varianGeometry >> and >> rtkfdk \ >> --geometry varianGeometry \ >> --regexp .*.hnd \ >> --path ../Scan0 \ >> --output rec.mha \ >> --verbose \ >> --spacing 2.0,2.0,2.0 \ >> --dimension 256,100,256 \ >> The projections are stored in the standard varian format: >> Scan0 and ProjectionInfo.xml with 644 projection images. I >> assume that rtkfdk handled the half fan geometry properly. >> What did I do wrong then? Many thanks! >> -howard >> >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://public.kitware.com/mailman/listinfo/rtk-users > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From lomahu at gmail.com Thu Sep 18 13:03:52 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 13:03:52 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: <541AF369.9090403@creatis.insa-lyon.fr> References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Cyril, I am testing SART reconstruction according to what you described, specifying dimension, spacing and origin: rtksart \ --geometry varianGeometry \ --regexp .*.hnd \ --path ../Scan0 \ --output sart_rec.mha \ --verbose \ --spacing 2.0\ --dimension 128,100,128 \ --origin -127.5,-99,-127.5 but the reconstruction gave a plain image with no object/contrast. I checked the grayscale values on the reconstructed images and did see they ranged from -1.78 to 3 (this may not be precise but give you some idea). I tried to adjust window level but couldn't see any contrast. I must miss something here. Please advise. Thanks! -howard On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory < cyril.mory at creatis.insa-lyon.fr> wrote: > Howard, > > For SART reconstructions, you do not need padding, and you can't do Hann > windowing because no ramp filtering is applied. SART usually outputs > smoother images, so you probably will not need this denoising trick anyway. > However, you should be careful about one thing : your object has to be > fully contained in the reconstructed volume, or you will observe important > border effects. Use the --dimension, --spacing and --origin options to > ensure this. > > All the best, > Cyril > > > On 09/18/2014 04:47 PM, Howard wrote: > > Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > beautifully. Jus another quick question: for rtksart executable, are we > still able to do padding and hanning window trick as well? > > On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > wrote: > >> Hi, >> I fully agree with Cyril. Something else : you might want to mask out >> what is outside the field-of-view using the rtkfieldofview executable. Your >> ring corresponds to that border. See an example here: >> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >> Simon >> >> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < >> cyril.mory at creatis.insa-lyon.fr> wrote: >> >>> Hi Howard, >>> >>> The bright ring artifact is typically caused by high-pass filtering (the >>> ramp filter used in FDK) of truncated projection data (when projections >>> have non-zero values on the sides, the edge of the projection makes a sharp >>> transition to zero). A classical answer to this problem is to pad the >>> projections, for example with values starting from the values on the side >>> and slowly decreasing to zero. >>> >>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >>> (or more than 0.1 if it isn't enough). >>> Also, I noticed that your reconstructed image seems quite noisy. You >>> might want to use a Hann windowing of the ramp filter to reduce the noise >>> amplification effect of high-pass filtering. You can do that by adding >>> "--hann 0.5" to your options. Note that the argument is a cut-off >>> frequency, so smaller values mean more smoothing. >>> >>> Best regards, >>> Cyril >>> >>> >>> On 09/18/2014 05:21 AM, Howard wrote: >>> >>> Hi, >>> >>> I use rtkfdk to reconstruct varian cbct images following the example on >>> rtk wiki page. The projections were obtained with half fan mode because it >>> is an abdominal region with the patient lateral x AP dimension of 550x550. >>> The reconstructed cbct images have a big bright circle around >>> the image. Please see the image: >>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >>> >>> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >>> used: >>> >>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >>> --regexp Proj_.*.hnd -o varianGeometry >>> and >>> >>> rtkfdk \ >>> --geometry varianGeometry \ >>> --regexp .*.hnd \ >>> --path ../Scan0 \ >>> --output rec.mha \ >>> --verbose \ >>> --spacing 2.0,2.0,2.0 \ >>> --dimension 256,100,256 \ >>> The projections are stored in the standard varian format: Scan0 and >>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >>> handled the half fan geometry properly. What did I do wrong then? Many >>> thanks! >>> >>> -howard >>> >>> >>> _______________________________________________ >>> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >>> -- >>> -- >>> Cyril Mory, Post-doc >>> CREATIS >>> Leon Berard cancer treatment center >>> 28 rue La?nnec >>> 69373 Lyon cedex 08 FRANCE >>> >>> Mobile: +33 6 69 46 73 79 >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Thu Sep 18 16:41:10 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Thu, 18 Sep 2014 22:41:10 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Howard, Assuming you're using the same dataset as the one you used for the rtkfdk test, you have decreased its size. For example, x was 2*256 mm with rtkfdk and it is now 128*2. On the slice you sent, we could see that a part of the phantom on the right was missing so you should keep the same size except for this side that should be larger, certainly not reduce the size. For the display, I would suggest to use the same window/level as for your FDK reconstruction. The two reconstruction algorithms reconstruct the same average intensities, only the texture is different. Good luck, Simon On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: > Hi Cyril, > > I am testing SART reconstruction according to what you described, specifying > dimension, spacing and origin: > > rtksart \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output sart_rec.mha \ > --verbose \ > --spacing 2.0\ > --dimension 128,100,128 \ > --origin -127.5,-99,-127.5 > > but the reconstruction gave a plain image with no object/contrast. I checked > the grayscale values on the reconstructed images and did see they ranged > from -1.78 to 3 (this may not be precise but give you some idea). I tried to > adjust window level but couldn't see any contrast. I must miss something > here. Please advise. Thanks! > > -howard > > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory > wrote: >> >> Howard, >> >> For SART reconstructions, you do not need padding, and you can't do Hann >> windowing because no ramp filtering is applied. SART usually outputs >> smoother images, so you probably will not need this denoising trick anyway. >> However, you should be careful about one thing : your object has to be >> fully contained in the reconstructed volume, or you will observe important >> border effects. Use the --dimension, --spacing and --origin options to >> ensure this. >> >> All the best, >> Cyril >> >> >> On 09/18/2014 04:47 PM, Howard wrote: >> >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working >> beautifully. Jus another quick question: for rtksart executable, are we >> still able to do padding and hanning window trick as well? >> >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit >> wrote: >>> >>> Hi, >>> I fully agree with Cyril. Something else : you might want to mask out >>> what is outside the field-of-view using the rtkfieldofview executable. Your >>> ring corresponds to that border. See an example here: >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >>> Simon >>> >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory >>> wrote: >>>> >>>> Hi Howard, >>>> >>>> The bright ring artifact is typically caused by high-pass filtering (the >>>> ramp filter used in FDK) of truncated projection data (when projections have >>>> non-zero values on the sides, the edge of the projection makes a sharp >>>> transition to zero). A classical answer to this problem is to pad the >>>> projections, for example with values starting from the values on the side >>>> and slowly decreasing to zero. >>>> >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >>>> (or more than 0.1 if it isn't enough). >>>> Also, I noticed that your reconstructed image seems quite noisy. You >>>> might want to use a Hann windowing of the ramp filter to reduce the noise >>>> amplification effect of high-pass filtering. You can do that by adding >>>> "--hann 0.5" to your options. Note that the argument is a cut-off frequency, >>>> so smaller values mean more smoothing. >>>> >>>> Best regards, >>>> Cyril >>>> >>>> >>>> On 09/18/2014 05:21 AM, Howard wrote: >>>> >>>> Hi, >>>> >>>> I use rtkfdk to reconstruct varian cbct images following the example on >>>> rtk wiki page. The projections were obtained with half fan mode because it >>>> is an abdominal region with the patient lateral x AP dimension of 550x550. >>>> The reconstructed cbct images have a big bright circle around >>>> the image. Please see the image: >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >>>> >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >>>> used: >>>> >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >>>> --regexp Proj_.*.hnd -o varianGeometry >>>> and >>>> >>>> rtkfdk \ >>>> --geometry varianGeometry \ >>>> --regexp .*.hnd \ >>>> --path ../Scan0 \ >>>> --output rec.mha \ >>>> --verbose \ >>>> --spacing 2.0,2.0,2.0 \ >>>> --dimension 256,100,256 \ >>>> The projections are stored in the standard varian format: Scan0 and >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk handled >>>> the half fan geometry properly. What did I do wrong then? Many thanks! >>>> >>>> -howard >>>> >>>> >>>> _______________________________________________ >>>> Rtk-users mailing list >>>> Rtk-users at public.kitware.com >>>> http://public.kitware.com/mailman/listinfo/rtk-users >>>> >>>> >>>> -- >>>> -- >>>> Cyril Mory, Post-doc >>>> CREATIS >>>> Leon Berard cancer treatment center >>>> 28 rue La?nnec >>>> 69373 Lyon cedex 08 FRANCE >>>> >>>> Mobile: +33 6 69 46 73 79 >>>> >>>> >>>> _______________________________________________ >>>> Rtk-users mailing list >>>> Rtk-users at public.kitware.com >>>> http://public.kitware.com/mailman/listinfo/rtk-users >>>> >>> >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 > > From lomahu at gmail.com Thu Sep 18 17:47:51 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 17:47:51 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Simon, I apologize for the confusion about the dataset. Actually I did not use the same dataset. The reason is that the set I used for rtkfdk test had 644 projections and with it rtksart crashed because of memory (I only allocated 3GB memory to Virtualbox from my window7). So for the SART test I changed to a small projection set (366 projections) where the object is a cube with dimension of 5cm x 5cm x 5cm. That's why I chose a smaller reconstruction size 128*2. With the same dataset when I ran rtkfdk I got very good reconstruction. -howard On Thu, Sep 18, 2014 at 4:41 PM, Simon Rit wrote: > Hi Howard, > Assuming you're using the same dataset as the one you used for the > rtkfdk test, you have decreased its size. For example, x was 2*256 mm > with rtkfdk and it is now 128*2. On the slice you sent, we could see > that a part of the phantom on the right was missing so you should keep > the same size except for this side that should be larger, certainly > not reduce the size. > For the display, I would suggest to use the same window/level as for > your FDK reconstruction. The two reconstruction algorithms reconstruct > the same average intensities, only the texture is different. > Good luck, > Simon > > On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: > > Hi Cyril, > > > > I am testing SART reconstruction according to what you described, > specifying > > dimension, spacing and origin: > > > > rtksart \ > > --geometry varianGeometry \ > > --regexp .*.hnd \ > > --path ../Scan0 \ > > --output sart_rec.mha \ > > --verbose \ > > --spacing 2.0\ > > --dimension 128,100,128 \ > > --origin -127.5,-99,-127.5 > > > > but the reconstruction gave a plain image with no object/contrast. I > checked > > the grayscale values on the reconstructed images and did see they ranged > > from -1.78 to 3 (this may not be precise but give you some idea). I > tried to > > adjust window level but couldn't see any contrast. I must miss something > > here. Please advise. Thanks! > > > > -howard > > > > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory > > wrote: > >> > >> Howard, > >> > >> For SART reconstructions, you do not need padding, and you can't do Hann > >> windowing because no ramp filtering is applied. SART usually outputs > >> smoother images, so you probably will not need this denoising trick > anyway. > >> However, you should be careful about one thing : your object has to be > >> fully contained in the reconstructed volume, or you will observe > important > >> border effects. Use the --dimension, --spacing and --origin options to > >> ensure this. > >> > >> All the best, > >> Cyril > >> > >> > >> On 09/18/2014 04:47 PM, Howard wrote: > >> > >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > >> beautifully. Jus another quick question: for rtksart executable, are we > >> still able to do padding and hanning window trick as well? > >> > >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > >> wrote: > >>> > >>> Hi, > >>> I fully agree with Cyril. Something else : you might want to mask out > >>> what is outside the field-of-view using the rtkfieldofview executable. > Your > >>> ring corresponds to that border. See an example here: > >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > >>> Simon > >>> > >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory > >>> wrote: > >>>> > >>>> Hi Howard, > >>>> > >>>> The bright ring artifact is typically caused by high-pass filtering > (the > >>>> ramp filter used in FDK) of truncated projection data (when > projections have > >>>> non-zero values on the sides, the edge of the projection makes a sharp > >>>> transition to zero). A classical answer to this problem is to pad the > >>>> projections, for example with values starting from the values on the > side > >>>> and slowly decreasing to zero. > >>>> > >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your > options > >>>> (or more than 0.1 if it isn't enough). > >>>> Also, I noticed that your reconstructed image seems quite noisy. You > >>>> might want to use a Hann windowing of the ramp filter to reduce the > noise > >>>> amplification effect of high-pass filtering. You can do that by adding > >>>> "--hann 0.5" to your options. Note that the argument is a cut-off > frequency, > >>>> so smaller values mean more smoothing. > >>>> > >>>> Best regards, > >>>> Cyril > >>>> > >>>> > >>>> On 09/18/2014 05:21 AM, Howard wrote: > >>>> > >>>> Hi, > >>>> > >>>> I use rtkfdk to reconstruct varian cbct images following the example > on > >>>> rtk wiki page. The projections were obtained with half fan mode > because it > >>>> is an abdominal region with the patient lateral x AP dimension of > 550x550. > >>>> The reconstructed cbct images have a big bright circle around > >>>> the image. Please see the image: > >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > >>>> > >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands > were > >>>> used: > >>>> > >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > >>>> --regexp Proj_.*.hnd -o varianGeometry > >>>> and > >>>> > >>>> rtkfdk \ > >>>> --geometry varianGeometry \ > >>>> --regexp .*.hnd \ > >>>> --path ../Scan0 \ > >>>> --output rec.mha \ > >>>> --verbose \ > >>>> --spacing 2.0,2.0,2.0 \ > >>>> --dimension 256,100,256 \ > >>>> The projections are stored in the standard varian format: Scan0 and > >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled > >>>> the half fan geometry properly. What did I do wrong then? Many > thanks! > >>>> > >>>> -howard > >>>> > >>>> > >>>> _______________________________________________ > >>>> Rtk-users mailing list > >>>> Rtk-users at public.kitware.com > >>>> http://public.kitware.com/mailman/listinfo/rtk-users > >>>> > >>>> > >>>> -- > >>>> -- > >>>> Cyril Mory, Post-doc > >>>> CREATIS > >>>> Leon Berard cancer treatment center > >>>> 28 rue La?nnec > >>>> 69373 Lyon cedex 08 FRANCE > >>>> > >>>> Mobile: +33 6 69 46 73 79 > >>>> > >>>> > >>>> _______________________________________________ > >>>> Rtk-users mailing list > >>>> Rtk-users at public.kitware.com > >>>> http://public.kitware.com/mailman/listinfo/rtk-users > >>>> > >>> > >> > >> > >> -- > >> -- > >> Cyril Mory, Post-doc > >> CREATIS > >> Leon Berard cancer treatment center > >> 28 rue La?nnec > >> 69373 Lyon cedex 08 FRANCE > >> > >> Mobile: +33 6 69 46 73 79 > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lomahu at gmail.com Thu Sep 18 22:53:45 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 22:53:45 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Simon, It appears I have to apologize again and take back the question about the SART reconstruction. I re-ran on the big data set (644 projections). This time no memory issue and SART worked well. For some reason it did not work on the small set initially. I should have run more tests before posting here. Sorry about the noise and thanks a lot for looking into the "issues". -howard On Thu, Sep 18, 2014 at 5:47 PM, Howard wrote: > Hi Simon, > > I apologize for the confusion about the dataset. Actually I did not use > the same dataset. > The reason is that the set I used for rtkfdk test had 644 projections and > with it rtksart > crashed because of memory (I only allocated 3GB memory to Virtualbox from > my window7). > So for the SART test I changed to a small projection set (366 projections) > where the object is > a cube with dimension of 5cm x 5cm x 5cm. That's why I chose a smaller > reconstruction > size 128*2. With the same dataset when I ran rtkfdk I got very good > reconstruction. > > -howard > > On Thu, Sep 18, 2014 at 4:41 PM, Simon Rit > wrote: > >> Hi Howard, >> Assuming you're using the same dataset as the one you used for the >> rtkfdk test, you have decreased its size. For example, x was 2*256 mm >> with rtkfdk and it is now 128*2. On the slice you sent, we could see >> that a part of the phantom on the right was missing so you should keep >> the same size except for this side that should be larger, certainly >> not reduce the size. >> For the display, I would suggest to use the same window/level as for >> your FDK reconstruction. The two reconstruction algorithms reconstruct >> the same average intensities, only the texture is different. >> Good luck, >> Simon >> >> On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: >> > Hi Cyril, >> > >> > I am testing SART reconstruction according to what you described, >> specifying >> > dimension, spacing and origin: >> > >> > rtksart \ >> > --geometry varianGeometry \ >> > --regexp .*.hnd \ >> > --path ../Scan0 \ >> > --output sart_rec.mha \ >> > --verbose \ >> > --spacing 2.0\ >> > --dimension 128,100,128 \ >> > --origin -127.5,-99,-127.5 >> > >> > but the reconstruction gave a plain image with no object/contrast. I >> checked >> > the grayscale values on the reconstructed images and did see they ranged >> > from -1.78 to 3 (this may not be precise but give you some idea). I >> tried to >> > adjust window level but couldn't see any contrast. I must miss something >> > here. Please advise. Thanks! >> > >> > -howard >> > >> > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory >> > wrote: >> >> >> >> Howard, >> >> >> >> For SART reconstructions, you do not need padding, and you can't do >> Hann >> >> windowing because no ramp filtering is applied. SART usually outputs >> >> smoother images, so you probably will not need this denoising trick >> anyway. >> >> However, you should be careful about one thing : your object has to be >> >> fully contained in the reconstructed volume, or you will observe >> important >> >> border effects. Use the --dimension, --spacing and --origin options to >> >> ensure this. >> >> >> >> All the best, >> >> Cyril >> >> >> >> >> >> On 09/18/2014 04:47 PM, Howard wrote: >> >> >> >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working >> >> beautifully. Jus another quick question: for rtksart executable, are we >> >> still able to do padding and hanning window trick as well? >> >> >> >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit >> >> wrote: >> >>> >> >>> Hi, >> >>> I fully agree with Cyril. Something else : you might want to mask out >> >>> what is outside the field-of-view using the rtkfieldofview >> executable. Your >> >>> ring corresponds to that border. See an example here: >> >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >> >>> Simon >> >>> >> >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory >> >>> wrote: >> >>>> >> >>>> Hi Howard, >> >>>> >> >>>> The bright ring artifact is typically caused by high-pass filtering >> (the >> >>>> ramp filter used in FDK) of truncated projection data (when >> projections have >> >>>> non-zero values on the sides, the edge of the projection makes a >> sharp >> >>>> transition to zero). A classical answer to this problem is to pad the >> >>>> projections, for example with values starting from the values on the >> side >> >>>> and slowly decreasing to zero. >> >>>> >> >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your >> options >> >>>> (or more than 0.1 if it isn't enough). >> >>>> Also, I noticed that your reconstructed image seems quite noisy. You >> >>>> might want to use a Hann windowing of the ramp filter to reduce the >> noise >> >>>> amplification effect of high-pass filtering. You can do that by >> adding >> >>>> "--hann 0.5" to your options. Note that the argument is a cut-off >> frequency, >> >>>> so smaller values mean more smoothing. >> >>>> >> >>>> Best regards, >> >>>> Cyril >> >>>> >> >>>> >> >>>> On 09/18/2014 05:21 AM, Howard wrote: >> >>>> >> >>>> Hi, >> >>>> >> >>>> I use rtkfdk to reconstruct varian cbct images following the example >> on >> >>>> rtk wiki page. The projections were obtained with half fan mode >> because it >> >>>> is an abdominal region with the patient lateral x AP dimension of >> 550x550. >> >>>> The reconstructed cbct images have a big bright circle around >> >>>> the image. Please see the image: >> >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> >>>> >> >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands >> were >> >>>> used: >> >>>> >> >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >> >>>> --regexp Proj_.*.hnd -o varianGeometry >> >>>> and >> >>>> >> >>>> rtkfdk \ >> >>>> --geometry varianGeometry \ >> >>>> --regexp .*.hnd \ >> >>>> --path ../Scan0 \ >> >>>> --output rec.mha \ >> >>>> --verbose \ >> >>>> --spacing 2.0,2.0,2.0 \ >> >>>> --dimension 256,100,256 \ >> >>>> The projections are stored in the standard varian format: Scan0 and >> >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >> handled >> >>>> the half fan geometry properly. What did I do wrong then? Many >> thanks! >> >>>> >> >>>> -howard >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> Rtk-users mailing list >> >>>> Rtk-users at public.kitware.com >> >>>> http://public.kitware.com/mailman/listinfo/rtk-users >> >>>> >> >>>> >> >>>> -- >> >>>> -- >> >>>> Cyril Mory, Post-doc >> >>>> CREATIS >> >>>> Leon Berard cancer treatment center >> >>>> 28 rue La?nnec >> >>>> 69373 Lyon cedex 08 FRANCE >> >>>> >> >>>> Mobile: +33 6 69 46 73 79 >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> Rtk-users mailing list >> >>>> Rtk-users at public.kitware.com >> >>>> http://public.kitware.com/mailman/listinfo/rtk-users >> >>>> >> >>> >> >> >> >> >> >> -- >> >> -- >> >> Cyril Mory, Post-doc >> >> CREATIS >> >> Leon Berard cancer treatment center >> >> 28 rue La?nnec >> >> 69373 Lyon cedex 08 FRANCE >> >> >> >> Mobile: +33 6 69 46 73 79 >> > >> > >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ucabba1 at ucl.ac.uk Fri Sep 19 07:04:49 2014 From: ucabba1 at ucl.ac.uk (Ben Champion) Date: Fri, 19 Sep 2014 12:04:49 +0100 Subject: [Rtk-users] Would you like RTK trainings ? In-Reply-To: <541AA5CA.9050306@creatis.insa-lyon.fr> References: <541AA5CA.9050306@creatis.insa-lyon.fr> Message-ID: <541C0DD1.4070203@ucl.ac.uk> Hi Cyril, Having used RTK (and ITK) for approximately 1 year now, I have learnt mainly by trial and error, and by reading the source code and wiki examples. (Aside: many thanks to the RTK community for these!) Nevertheless, I think I could benefit from some kind of RTK training for my future work. The kinds of topics that would be most interesting to me are: - theory/use of reconstruction methods other than FDK (e.g. SART, 4D ROOSTER, ...) - motion compensated reconstruction - compressed sensing in tomography - extending RTK (and contributing back to the community) That said, I would not be averse to at least some discussion of "basics of tomography", "starting to use RTK with your own data", and "practical issues in circular CBCT" and in fact it could help fill some gaps in my knowledge. Best wishes, Ben -- Doctoral Student (MRes/EngD) Centre for Medical Image Computing University College London Room 3.01 Engineering Front Building Torrington Place LONDON WC1E 7JE On 18/09/14 10:28, Cyril Mory wrote: > Hi RTK users, > > A recent question on the mailing list by Louie triggered a > conversation between us. Louie asked whether there exists some sort of > training or workshop on RTK. In a nutshell, the answer is "No, not > yet, but why not talk about it ?". > > So I'd like to start some sort of "poll" to gather the requests you > might have on this topic: > Do you need / want / would like a training on RTK ? > If so, can you be more specific on what you would like to learn ? > (basics of tomography, how to start using RTK on your data, practical > issues in circular cone beam CT, motion compensated reconstruction, > compressed sensing in tomography, ITK programming, ... this is not an > exhaustive list) > > I think this is enough questions for the time being. The rest will > depend on your answers. > > Looking forward to reading you, > From lomahu at gmail.com Fri Sep 19 09:47:58 2014 From: lomahu at gmail.com (Howard) Date: Fri, 19 Sep 2014 09:47:58 -0400 Subject: [Rtk-users] Would you like RTK trainings ? In-Reply-To: <541C0DD1.4070203@ucl.ac.uk> References: <541AA5CA.9050306@creatis.insa-lyon.fr> <541C0DD1.4070203@ucl.ac.uk> Message-ID: Hi Cyril, It would be extremely helpful to have an RTK training. As Ben listed, I have similar interests. The topics I am very interested in are the following: 1. Basic principles of reconstruction with FDK and SART 2. Coding framework in RTK 3. Practical examples using iterative reconstruction technique 4. Compressed sensing applications in reconstruction 5. Practical issues in reconstruction specially CBCT reconstruction. Thanks! -howard On Fri, Sep 19, 2014 at 7:04 AM, Ben Champion wrote: > Hi Cyril, > > Having used RTK (and ITK) for approximately 1 year now, I have learnt > mainly by trial and error, and by reading the source code and wiki > examples. (Aside: many thanks to the RTK community for these!) > > Nevertheless, I think I could benefit from some kind of RTK training for > my future work. The kinds of topics that would be most interesting to me > are: > > - theory/use of reconstruction methods other than FDK (e.g. SART, 4D > ROOSTER, ...) > - motion compensated reconstruction > - compressed sensing in tomography > - extending RTK (and contributing back to the community) > > That said, I would not be averse to at least some discussion of "basics of > tomography", "starting to use RTK with your own data", and "practical > issues in circular CBCT" and in fact it could help fill some gaps in my > knowledge. > > Best wishes, > > Ben > -- > Doctoral Student (MRes/EngD) > Centre for Medical Image Computing > University College London > Room 3.01 Engineering Front Building > Torrington Place > LONDON > WC1E 7JE > > > > On 18/09/14 10:28, Cyril Mory wrote: > >> Hi RTK users, >> >> A recent question on the mailing list by Louie triggered a conversation >> between us. Louie asked whether there exists some sort of training or >> workshop on RTK. In a nutshell, the answer is "No, not yet, but why not >> talk about it ?". >> >> So I'd like to start some sort of "poll" to gather the requests you might >> have on this topic: >> Do you need / want / would like a training on RTK ? >> If so, can you be more specific on what you would like to learn ? (basics >> of tomography, how to start using RTK on your data, practical issues in >> circular cone beam CT, motion compensated reconstruction, compressed >> sensing in tomography, ITK programming, ... this is not an exhaustive list) >> >> I think this is enough questions for the time being. The rest will depend >> on your answers. >> >> Looking forward to reading you, >> >> > _______________________________________________ > 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: From padraig.looney at gmail.com Mon Sep 8 08:43:27 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Mon, 8 Sep 2014 13:43:27 +0100 Subject: [Rtk-users] RTK helloworld Message-ID: Dear all, I am trying to get the HelloWorld example running but I get a large number of errors after the build. I am using ITK-4.6 and have followed the instructions as per http://wiki.openrtk.org/index.php/RTK_wiki_help#Tutorial_0_-_Building_an_HelloWorld_application_with_RTK My executable is built and is working but I have hundreds of errors. The first few are. CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::MemoryAllocationError::MemoryAllocationError(std::string const&, unsigned int, std::string const&, std::string const&)': main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x35): undefined reference to `itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, std::string const&, std::string const&)' main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x40): undefined reference to `vtable for itk::MemoryAllocationError' CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::Object::SetObjectName(std::string)': main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x25): undefined reference to `itk::Object::GetDebug() const' main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x2e): undefined reference to `itk::Object::GetGlobalWarningDisplay()' main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x12e): undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' CMakeFiles/HelloWorld1.dir/main.cpp.o: In function `itk::DataObject::SetRealTimeStamp(itk::RealTimeStamp)': main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x25): undefined reference to `itk::Object::GetDebug() const' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x2e): undefined reference to `itk::Object::GetGlobalWarningDisplay()' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0xf1): undefined reference to `itk::operator<<(std::ostream&, itk::RealTimeStamp const&)' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x12e): undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x169): undefined reference to `itk::RealTimeStamp::operator!=(itk::RealTimeStamp const&) const' Thanks P?draig -------------- next part -------------- An HTML attachment was scrubbed... URL: From julien.jomier at kitware.com Mon Sep 8 09:11:50 2014 From: julien.jomier at kitware.com (Julien Jomier) Date: Mon, 08 Sep 2014 15:11:50 +0200 Subject: [Rtk-users] RTK helloworld In-Reply-To: References: Message-ID: <540DAB16.3050904@kitware.com> Dear Padraig, When you say "built and is working but I have hundreds of errors" do you mean that you have successfully compiled and linked the example? It seems that your example cannot find the ITK libraries. Are you building ITK and RTK using BUILD_SHARED_LIBS to ON in CMake? Julien On 08/09/2014 14:43, Padraig Looney wrote: > Dear all, > > I am trying to get the HelloWorld example running but I get a large > number of errors after the build. I am using ITK-4.6 and have followed > the instructions as per > > http://wiki.openrtk.org/index.php/RTK_wiki_help#Tutorial_0_-_Building_an_HelloWorld_application_with_RTK > > My executable is built and is working but I have hundreds of errors. The > first few are. > > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::MemoryAllocationError::MemoryAllocationError(std::string const&, > unsigned int, std::string const&, std::string const&)': > main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x35): > undefined reference to > `itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, > std::string const&, std::string const&)' > main.cpp:(.text._ZN3itk21MemoryAllocationErrorC2ERKSsjS2_S2_[_ZN3itk21MemoryAllocationErrorC5ERKSsjS2_S2_]+0x40): > undefined reference to `vtable for itk::MemoryAllocationError' > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::Object::SetObjectName(std::string)': > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x2e): > undefined reference to `itk::Object::GetGlobalWarningDisplay()' > main.cpp:(.text._ZN3itk6Object13SetObjectNameESs[_ZN3itk6Object13SetObjectNameESs]+0x12e): > undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' > CMakeFiles/HelloWorld1.dir/main.cpp.o: In function > `itk::DataObject::SetRealTimeStamp(itk::RealTimeStamp)': > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x2e): > undefined reference to `itk::Object::GetGlobalWarningDisplay()' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0xf1): > undefined reference to `itk::operator<<(std::ostream&, > itk::RealTimeStamp const&)' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x12e): > undefined reference to `itk::OutputWindowDisplayDebugText(char const*)' > main.cpp:(.text._ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE[_ZN3itk10DataObject16SetRealTimeStampENS_13RealTimeStampE]+0x169): > undefined reference to > `itk::RealTimeStamp::operator!=(itk::RealTimeStamp const&) const' > > > Thanks > P?draig > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > From julien.jomier at kitware.com Mon Sep 8 09:32:47 2014 From: julien.jomier at kitware.com (Julien Jomier) Date: Mon, 08 Sep 2014 15:32:47 +0200 Subject: [Rtk-users] RTK helloworld In-Reply-To: References: <540DAB16.3050904@kitware.com> Message-ID: <540DAFFF.4080103@kitware.com> I'm guessing the ITK shared libs cannot be found. Can you specify the path where the ITK libraries (.so) are located in the LD_LIBRARY_PATH before your run make? Julien On 08/09/2014 15:23, Padraig Looney wrote: > It has successfully compiled using ccmake and make. I presume that has > successfully linked it. The errors were produced with make. > > Both the SharedLibs variables are set to ON. > > I've tried building RTK two different ways. Once by allowing cmake to > find ITK. This way ITK_DIR is set to /usr/local/lib/cmake/ITK-4.6 > > The other way I built it was by setting ITK_DIR to be the location of > the build directory. Which is what I understand from the wiki > > "When CMake asks for the ITK_DIR, specify the binary directory where ITK > is built and choose CMAKE_BUILD_TYPE (default: Release)" > > It didn't make any difference though. > > On Mon, Sep 8, 2014 at 2:11 PM, Julien Jomier > wrote: > > Dear Padraig, > > When you say "built and is working but I have hundreds of errors" do > you mean that you have successfully compiled and linked the example? > It seems that your example cannot find the ITK libraries. Are you > building ITK and RTK using BUILD_SHARED_LIBS to ON in CMake? > > Julien > > > On 08/09/2014 14:43, Padraig Looney wrote: > > Dear all, > > I am trying to get the HelloWorld example running but I get a large > number of errors after the build. I am using ITK-4.6 and have > followed > the instructions as per > > http://wiki.openrtk.org/index.__php/RTK_wiki_help#Tutorial_0_-___Building_an_HelloWorld___application_with_RTK > > > My executable is built and is working but I have hundreds of > errors. The > first few are. > > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::MemoryAllocationError::__MemoryAllocationError(std::__string > const&, > unsigned int, std::string const&, std::string const&)': > main.cpp:(.text.___ZN3itk21MemoryAllocationErrorC__2ERKSsjS2_S2_[___ZN3itk21MemoryAllocationErrorC__5ERKSsjS2_S2_]+0x35): > undefined reference to > `itk::ExceptionObject::__ExceptionObject(std::string const&, > unsigned int, > std::string const&, std::string const&)' > main.cpp:(.text.___ZN3itk21MemoryAllocationErrorC__2ERKSsjS2_S2_[___ZN3itk21MemoryAllocationErrorC__5ERKSsjS2_S2_]+0x40): > undefined reference to `vtable for itk::MemoryAllocationError' > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::Object::SetObjectName(__std::string)': > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x2e): > undefined reference to `itk::Object::__GetGlobalWarningDisplay()' > main.cpp:(.text.___ZN3itk6Object13SetObjectNameES__s[___ZN3itk6Object13SetObjectNameES__s]+0x12e): > undefined reference to > `itk::__OutputWindowDisplayDebugText(__char const*)' > CMakeFiles/HelloWorld1.dir/__main.cpp.o: In function > `itk::DataObject::__SetRealTimeStamp(itk::__RealTimeStamp)': > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x25): > undefined reference to `itk::Object::GetDebug() const' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x2e): > undefined reference to `itk::Object::__GetGlobalWarningDisplay()' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0xf1): > undefined reference to `itk::operator<<(std::ostream&__, > itk::RealTimeStamp const&)' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x12e): > undefined reference to > `itk::__OutputWindowDisplayDebugText(__char const*)' > main.cpp:(.text.___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE[___ZN3itk10DataObject16SetRealTim__eStampENS_13RealTimeStampE]+__0x169): > undefined reference to > `itk::RealTimeStamp::operator!__=(itk::RealTimeStamp const&) const' > > > Thanks > P?draig > > > _________________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/__mailman/listinfo/rtk-users > > > From theday79 at gmail.com Mon Sep 8 23:22:32 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Mon, 8 Sep 2014 23:22:32 -0400 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> Message-ID: <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> Hi all, I've been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven't had any problem with full scan images (360 degree scan), I found that rtkfdk doesn't work well with my short scan images obtained from our Elekta XVI system. I've used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn't change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: short_scan.PNG Type: image/png Size: 166828 bytes Desc: not available URL: From simon.rit at creatis.insa-lyon.fr Tue Sep 9 01:24:25 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Tue, 9 Sep 2014 07:24:25 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> Message-ID: Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > _______________________________________________ > 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: From padraig.looney at gmail.com Tue Sep 9 06:05:01 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 9 Sep 2014 11:05:01 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction Message-ID: When I try to run the "FirstReconstruction" example I am getting a segmentation fault. The following is the output from gdb Program received signal SIGSEGV, Segmentation fault. 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue Sep 9 06:32:29 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 09 Sep 2014 12:32:29 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: Message-ID: <540ED73D.3080003@creatis.insa-lyon.fr> Hi Padraig, With so little information, there isn't much we can do to help you. I usually track segfaults by compiling in Debug mode (by setting "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT Creator (any decent IDE will do just fine, and should stop when the segfault occurs, allowing you to trace it back) Good luck, Cyril On 09/09/2014 12:05 PM, Padraig Looney wrote: > When I try to run the "FirstReconstruction" example I am getting a > segmentation fault. > > The following is the output from gdb > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () > > > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Tue Sep 9 08:40:48 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Tue, 9 Sep 2014 14:40:48 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing wrote: > Hi all, > > > > We have experienced the same problem as YangKyun in our institution. Find > attached a screendump of a short scan, and the ElektaGeometry file. We are > reconstructing on CPU using RTK 1.0.0, and have encountered the strange > behavior a couple of times without being able to find any patterns. Our > images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree > scan with the S20 filter on an Elekta XVI machine. > > > > Hope this helps in tracking down the problem. > > > > > > Best regards, > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *P? vegne > af *Simon Rit > *Sendt:* 9. september 2014 07:24 > *Til:* Yang Kyun Park > *Cc:* rtk-users at public.kitware.com > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Hi, > > Everything looks correct in what you did. What version of RTK did you use? > It looks like a bug in the angular weighting of the projections coming > from the discretization of the integral on the gantry angle. Could you send > us a copy of ElektaGeometry.xml and tell us what was the dimension of the > projections? We will look into it. > Thanks for the report, > Simon > > > > On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > > _______________________________________________ > 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: From theday79 at gmail.com Tue Sep 9 11:43:32 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Tue, 9 Sep 2014 11:43:32 -0400 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: <002e01cfcc44$d01763f0$70462bd0$@gmail.com> Hi Simon, Thank your for the prompt update. Now it works perfectly! Best, YangKyun From: simon.rit at gmail.com [mailto:simon.rit at gmail.com] On Behalf Of Simon Rit Sent: Tuesday, September 09, 2014 8:41 AM To: Rune Slot Thing Cc: Yang Kyun Park; rtk-users at public.kitware.com Subject: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: Hi all, We have experienced the same problem as YangKyun in our institution. Find attached a screendump of a short scan, and the ElektaGeometry file. We are reconstructing on CPU using RTK 1.0.0, and have encountered the strange behavior a couple of times without being able to find any patterns. Our images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree scan with the S20 filter on an Elekta XVI machine. Hope this helps in tracking down the problem. Best regards, Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: Rtk-users [mailto:rtk-users-bounces at public.kitware.com ] P? vegne af Simon Rit Sendt: 9. september 2014 07:24 Til: Yang Kyun Park Cc: rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park > wrote: Hi all, I?ve been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven?t had any problem with full scan images (360 degree scan), I found that rtkfdk doesn?t work well with my short scan images obtained from our Elekta XVI system. I?ve used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn?t change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun _______________________________________________ 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: From Rune.Slot.Thing at rsyd.dk Wed Sep 10 04:39:05 2014 From: Rune.Slot.Thing at rsyd.dk (Rune Slot Thing) Date: Wed, 10 Sep 2014 08:39:05 +0000 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> Message-ID: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> Hi Simon, I asked our IT-guy to recompile the new commit, but unfortunately he was unsuccessful. Here is what he writes: I've downloaded the master from git today and compiled in the VS 2008 pro 64bit on Win7 with itk 4.3.0 and fftw. The new fix does not compile because of issues on line 92-99 in rtkParkerShortScanImageFilter.txx error C2678: binary '==' : no operator found which takes a left-hand operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no acceptable conversion) and on line 73 error C2923: 'itk::Vector' : 'rtk::DaubechiesWaveletsConvolutionImageFilter::Pass' is not a valid template type argument for parameter 'T' f:\programmering\cxx\lib\rtk\master-2014-09-10\code\rtkDaubechiesWaveletsConvolutionImageFilter.h 73 rtkadmmwavelets Is it a typo with to identical lines (LINE 93 = 94)? Thanks again for your prompt help. Best regards, Rune Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: simon.rit at gmail.com [mailto:simon.rit at gmail.com] P? vegne af Simon Rit Sendt: 9. september 2014 14:41 Til: Rune Slot Thing Cc: Yang Kyun Park; rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Thank you Rune, this was very helpful. The pattern is that several projections have the same gantry angle on one side of the gantry angle gap. Something that happens with Elekta Synergy... I think that the bug has been fixed: https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: Hi all, We have experienced the same problem as YangKyun in our institution. Find attached a screendump of a short scan, and the ElektaGeometry file. We are reconstructing on CPU using RTK 1.0.0, and have encountered the strange behavior a couple of times without being able to find any patterns. Our images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree scan with the S20 filter on an Elekta XVI machine. Hope this helps in tracking down the problem. Best regards, Rune Slot Thing PhD Student Institute of Clinical Research, University of Southern Denmark Laboratory of Radiation Physics, Odense University Hospital rune.slot.thing at rsyd.dk Fra: Rtk-users [mailto:rtk-users-bounces at public.kitware.com] P? vegne af Simon Rit Sendt: 9. september 2014 07:24 Til: Yang Kyun Park Cc: rtk-users at public.kitware.com Emne: Re: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI Hi, Everything looks correct in what you did. What version of RTK did you use? It looks like a bug in the angular weighting of the projections coming from the discretization of the integral on the gantry angle. Could you send us a copy of ElektaGeometry.xml and tell us what was the dimension of the projections? We will look into it. Thanks for the report, Simon On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park > wrote: Hi all, I?ve been using RTK for a year and I appreciate for all the efforts being made by the developers. Even though I haven?t had any problem with full scan images (360 degree scan), I found that rtkfdk doesn?t work well with my short scan images obtained from our Elekta XVI system. I?ve used a command line such as: --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda The reconstructed image looked very weird, like a distorted 3D volume with very noisy patterns (as attached). Note that I didn?t change anything in the rtkfdk code and I believe that the software is automatically recognize the short scan when it is loading the geometry file(xml). (Please correct me if I was wrong.) Thank you for your help in advance. YangKyun _______________________________________________ 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: From wuchao04 at gmail.com Wed Sep 10 07:35:27 2014 From: wuchao04 at gmail.com (Chao Wu) Date: Wed, 10 Sep 2014 13:35:27 +0200 Subject: [Rtk-users] coordinates of 3D volume Message-ID: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 08:38:43 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 14:38:43 +0200 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: Message-ID: Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu wrote: > Hi all, > > I see that rtk use certain industrial standard for the coordinates of 2D > projections and 3D volumes. However in medical imaging, the xy planes of a > volume are usually transaxial slices while the 3rd dimension is aligned > with the axis of rotation. I would like to switch to this coordinates in my > own code. Is there anyone who can give me some comments and suggestions > about where to start? Thanks. > > Regards, > Chao > > _______________________________________________ > 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: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 08:43:54 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 14:43:54 +0200 Subject: [Rtk-users] Short scan reconstruction problem - real projection images from Elekta XVI In-Reply-To: <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> References: <001e01cfcbd9$9aacc770$d0065650$@gmail.com> <002801cfcbdd$4c246be0$e46d43a0$@gmail.com> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E417BD@SRVODEEXCH03.Rsyd.net> <18E0770FE83C1C4BBBCC4C7C1C48F7E149E429FB@SRVODEEXCH03.Rsyd.net> Message-ID: I wonder why it compiles on Linux... but anyway, sorry, it's been fixed. On Wed, Sep 10, 2014 at 10:39 AM, Rune Slot Thing wrote: > Hi Simon, > > > > I asked our IT-guy to recompile the new commit, but unfortunately he was > unsuccessful. Here is what he writes: > > > > I've downloaded the master from git today and compiled in the VS 2008 pro > 64bit on Win7 with itk 4.3.0 and fftw. > > > > The new fix does not compile because of issues on line 92-99 in > rtkParkerShortScanImageFilter.txx > > > > error C2678: binary '==' : no operator found which takes a left-hand > operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no > acceptable conversion) > > > > and on line 73 > > > > error C2923: 'itk::Vector' : > 'rtk::DaubechiesWaveletsConvolutionImageFilter::Pass' is not a > valid template type argument for parameter 'T' > f:\programmering\cxx\lib\rtk\master-2014-09-10\code\rtkDaubechiesWaveletsConvolutionImageFilter.h > 73 rtkadmmwavelets > > Is it a typo with to identical lines (LINE 93 = 94)? > > > > Thanks again for your prompt help. > > > > Best regards, > > Rune > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* simon.rit at gmail.com [mailto:simon.rit at gmail.com] *P? vegne af *Simon > Rit > *Sendt:* 9. september 2014 14:41 > *Til:* Rune Slot Thing > *Cc:* Yang Kyun Park; rtk-users at public.kitware.com > > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Thank you Rune, this was very helpful. The pattern is that several > projections have the same gantry angle on one side of the gantry angle gap. > Something that happens with Elekta Synergy... I think that the bug has been > fixed: > > https://github.com/SimonRit/RTK/commit/c5b1647eee34ca6fb76d067ff2f5c67f7477495f > > > > On Tue, Sep 9, 2014 at 12:04 PM, Rune Slot Thing > wrote: > > Hi all, > > > > We have experienced the same problem as YangKyun in our institution. Find > attached a screendump of a short scan, and the ElektaGeometry file. We are > reconstructing on CPU using RTK 1.0.0, and have encountered the strange > behavior a couple of times without being able to find any patterns. Our > images are 512x512 pixels of 0.8 mm pitch, and acquired in a 200 degree > scan with the S20 filter on an Elekta XVI machine. > > > > Hope this helps in tracking down the problem. > > > > > > Best regards, > > > > Rune Slot Thing > > PhD Student > > Institute of Clinical Research, University of Southern Denmark > > Laboratory of Radiation Physics, Odense University Hospital > > rune.slot.thing at rsyd.dk > > > > > > *Fra:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *P? vegne > af *Simon Rit > *Sendt:* 9. september 2014 07:24 > *Til:* Yang Kyun Park > *Cc:* rtk-users at public.kitware.com > *Emne:* Re: [Rtk-users] Short scan reconstruction problem - real > projection images from Elekta XVI > > > > Hi, > > Everything looks correct in what you did. What version of RTK did you use? > It looks like a bug in the angular weighting of the projections coming > from the discretization of the integral on the gantry angle. Could you send > us a copy of ElektaGeometry.xml and tell us what was the dimension of the > projections? We will look into it. > Thanks for the report, > Simon > > > > On Tue, Sep 9, 2014 at 5:22 AM, Yang Kyun Park wrote: > > Hi all, > > > > I?ve been using RTK for a year and I appreciate for all the efforts being > made by the developers. > > > > Even though I haven?t had any problem with full scan images (360 degree > scan), I found that rtkfdk doesn?t work well with my short scan images > obtained from our Elekta XVI system. > > > > I?ve used a command line such as: > > --geometry ElektaGeometry.xml --path his_file_dir --regexp ".*.his" > --output rtkfdk_short_scan.mha --spacing 0.5,0.5,0.5 --dimension > 512,200,512 --origin -127.9,29.5,-127.9 --hardware cuda > > > > The reconstructed image looked very weird, like a distorted 3D volume with > very noisy patterns (as attached). > > > > Note that I didn?t change anything in the rtkfdk code and I believe that > the software is automatically recognize the short scan when it is loading > the geometry file(xml). (Please correct me if I was wrong.) > > > > Thank you for your help in advance. > > > > YangKyun > > > > > > > > > > > _______________________________________________ > 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: From theday79 at gmail.com Wed Sep 10 09:47:17 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Wed, 10 Sep 2014 09:47:17 -0400 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: Message-ID: <003801cfccfd$bd111800$37334800$@gmail.com> Hi Chao, I had the same issue on my work and I?ve managed to fix it by the following codes. I?m not sure this is the optimal way to do it but at least it worked in my case. (Or you can transform it in 3D Slicer. In transform menu, you need to apply the following matrix: 0 0 -1 0 1 0 0 0 0 1 0 0 0 0 0 1 to the target image, harden the transform then export the image.) Best, YangKyun // OutputImageType = // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction //Same image type from original image -3D & float OutputImageType::IndexType start_trans; start_trans[0] = 0; start_trans[1] = 0; start_trans[2] = 0; OutputImageType::SizeType size_trans; size_trans[0] = sizeOutput[0]; // X //410 size_trans[1] = sizeOutput[2]; //Y // 410 size_trans[2] = sizeOutput[1]; //Z // 120? OutputImageType::SpacingType spacing_trans; spacing_trans[0] = spacing[0]; spacing_trans[1] = spacing[2]; spacing_trans[2] = spacing[1]; OutputImageType::PointType Origin_trans; Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; OutputImageType::RegionType region_trans; region_trans.SetSize(size_trans); region_trans.SetIndex(start_trans); /* 2) Prepare Target image */ OutputImageType::Pointer targetImg = streamerBP->GetOutput(); /* 3) Configure transform */ typedef itk::Euler3DTransform< double > TransformType; TransformType::Pointer transform = TransformType::New(); TransformType::ParametersType param; param.SetSize(6); //MAXIMUM PARAM NUMBER: 6!!! param.put(0, 0.0); //rot X // 0.5 = PI/2 param.put(1, itk::Math::pi/2.0);//rot Y param.put(2, itk::Math::pi/-2.0);//rot Z param.put(3, 0.0); // Trans X mm param.put(4, 0.0); // Trans Y mm param.put(5, 0.0); // Trans Z mm TransformType::ParametersType fixedParam(3); //rotation center fixedParam.put(0,0); fixedParam.put(1,0); fixedParam.put(2,0); transform->SetParameters(param); transform->SetFixedParameters(fixedParam); //Center of the Transform cout << "Transform matrix:" << " " << endl; cout << transform->GetMatrix() << std::endl; typedef itk::ResampleImageFilter ResampleFilterType; ResampleFilterType::Pointer resampler = ResampleFilterType::New(); //OutputImageType::RegionType fixedImg_Region = fixedImg->GetLargestPossibleRegion().GetSize(); resampler->SetInput(targetImg); resampler->SetSize(size_trans); resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large Canvas resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 resampler->SetOutputDirection( targetImg->GetDirection() ); //image normal? resampler->SetTransform(transform); //LR flip cout << "LR flip filter is being applied" << endl; typedef itk::FlipImageFilter< OutputImageType > FilterType; FilterType::Pointer flipFilter = FilterType::New(); typedef FilterType::FlipAxesArrayType FlipAxesArrayType; FlipAxesArrayType arrFlipAxes; arrFlipAxes[0] = 1; arrFlipAxes[1] = 0; arrFlipAxes[2] = 0; flipFilter->SetFlipAxes(arrFlipAxes); flipFilter->SetInput(resampler->GetOutput()); flipFilter->Update(); //Use flipFilter->GetOutput() for further process From: Rtk-users [mailto:rtk-users-bounces at public.kitware.com] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 8:39 AM To: Chao Wu Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu > wrote: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao _______________________________________________ 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: From simon.rit at creatis.insa-lyon.fr Wed Sep 10 10:50:00 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Wed, 10 Sep 2014 16:50:00 +0200 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: <003801cfccfd$bd111800$37334800$@gmail.com> References: <003801cfccfd$bd111800$37334800$@gmail.com> Message-ID: This option works but there is a risk of an additional interpolation by the resampler and it costs some computing time. The other option I suggested requires to modify the transform parameter of the source (in this example, add constantImageSource->SetDirection(transform->GetMatrix()); where transform is that of Yang's example, then use itk::ChangeImageInformation to reset the transform to identity. On Wed, Sep 10, 2014 at 3:47 PM, Yang Kyun Park wrote: > Hi Chao, > > > > I had the same issue on my work and I?ve managed to fix it by the > following codes. > > I?m not sure this is the optimal way to do it but at least it worked in my > case. > > > > (Or you can transform it in 3D Slicer. > > In transform menu, you need to apply the following matrix: > > 0 0 -1 0 > > 1 0 0 0 > > 0 1 0 0 > > 0 0 0 1 > > to the target image, harden the transform then export the image.) > > > > Best, > > YangKyun > > > > > > // OutputImageType = > > // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction > > > > //Same image type from original image -3D & float > > OutputImageType::IndexType start_trans; > > start_trans[0] = 0; > > start_trans[1] = 0; > > start_trans[2] = 0; > > > > OutputImageType::SizeType size_trans; > > size_trans[0] = sizeOutput[0]; // X //410 > > size_trans[1] = sizeOutput[2]; //Y // 410 > > size_trans[2] = sizeOutput[1]; //Z // 120? > > > > OutputImageType::SpacingType spacing_trans; > > spacing_trans[0] = spacing[0]; > > spacing_trans[1] = spacing[2]; > > spacing_trans[2] = spacing[1]; > > > > OutputImageType::PointType Origin_trans; > > Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; > > Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; > > Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; > > > > OutputImageType::RegionType region_trans; > > region_trans.SetSize(size_trans); > > region_trans.SetIndex(start_trans); > > > > /* 2) Prepare Target image */ > > OutputImageType::Pointer targetImg = streamerBP->GetOutput(); > > > > /* 3) Configure transform */ > > typedef itk::Euler3DTransform< double > TransformType; > > TransformType::Pointer transform = TransformType::New(); > > > > TransformType::ParametersType param; > > param.SetSize(6); > > //MAXIMUM PARAM NUMBER: 6!!! > > param.put(0, 0.0); //rot X // 0.5 = PI/2 > > param.put(1, itk::Math::pi/2.0);//rot Y > > param.put(2, itk::Math::pi/-2.0);//rot Z > > param.put(3, 0.0); // Trans X mm > > param.put(4, 0.0); // Trans Y mm > > param.put(5, 0.0); // Trans Z mm > > > > TransformType::ParametersType fixedParam(3); //rotation center > > fixedParam.put(0,0); > > fixedParam.put(1,0); > > fixedParam.put(2,0); > > > > transform->SetParameters(param); > > transform->SetFixedParameters(fixedParam); //Center of the > Transform > > > > cout << "Transform matrix:" << " " << endl; > > cout << transform->GetMatrix() << std::endl; > > > > typedef itk::ResampleImageFilter > ResampleFilterType; > > ResampleFilterType::Pointer resampler = ResampleFilterType::New(); > > //OutputImageType::RegionType fixedImg_Region = > fixedImg->GetLargestPossibleRegion().GetSize(); > > > > resampler->SetInput(targetImg); > > resampler->SetSize(size_trans); > > resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large > Canvas > > resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 > > resampler->SetOutputDirection( targetImg->GetDirection() ); //image > normal? > > resampler->SetTransform(transform); > > > > //LR flip > > > > cout << "LR flip filter is being applied" << endl; > > > > typedef itk::FlipImageFilter< OutputImageType > FilterType; > > > > FilterType::Pointer flipFilter = FilterType::New(); > > typedef FilterType::FlipAxesArrayType FlipAxesArrayType; > > > > FlipAxesArrayType arrFlipAxes; > > arrFlipAxes[0] = 1; > > arrFlipAxes[1] = 0; > > arrFlipAxes[2] = 0; > > > > flipFilter->SetFlipAxes(arrFlipAxes); > > flipFilter->SetInput(resampler->GetOutput()); > > flipFilter->Update(); > > > > //Use flipFilter->GetOutput() for further process > > > > > > > > *From:* Rtk-users [mailto:rtk-users-bounces at public.kitware.com] *On > Behalf Of *Simon Rit > *Sent:* Wednesday, September 10, 2014 8:39 AM > *To:* Chao Wu > *Cc:* rtk-users at openrtk.org > *Subject:* Re: [Rtk-users] coordinates of 3D volume > > > > Hi, > > I wish there was a single industrial standard... You have the DICOM > standard in mind and I used an IEC standard (see wiki). You can play with > the --direction option to orientate the voxel axes of your image (see > itk::Image documentation) and then reset the direction of your output image > to identity, I think that will do what you want. > > Simon > > > > On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu wrote: > > Hi all, > > > > I see that rtk use certain industrial standard for the coordinates of 2D > projections and 3D volumes. However in medical imaging, the xy planes of a > volume are usually transaxial slices while the 3rd dimension is aligned > with the axis of rotation. I would like to switch to this coordinates in my > own code. Is there anyone who can give me some comments and suggestions > about where to start? Thanks. > > > > Regards, > > Chao > > > _______________________________________________ > 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: From theday79 at gmail.com Wed Sep 10 10:56:28 2014 From: theday79 at gmail.com (Yang Kyun Park) Date: Wed, 10 Sep 2014 10:56:28 -0400 Subject: [Rtk-users] coordinates of 3D volume In-Reply-To: References: <003801cfccfd$bd111800$37334800$@gmail.com> Message-ID: <005e01cfcd07$6783cdb0$368b6910$@gmail.com> Hi Simon, Thanks for the good tip. Let me try out your approach too! YangKyun From: simon.rit at gmail.com [mailto:simon.rit at gmail.com] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 10:50 AM To: Yang Kyun Park Cc: Chao Wu; rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume This option works but there is a risk of an additional interpolation by the resampler and it costs some computing time. The other option I suggested requires to modify the transform parameter of the source (in this example, add constantImageSource->SetDirection(transform->GetMatrix()); where transform is that of Yang's example, then use itk::ChangeImageInformation to reset the transform to identity. On Wed, Sep 10, 2014 at 3:47 PM, Yang Kyun Park > wrote: Hi Chao, I had the same issue on my work and I?ve managed to fix it by the following codes. I?m not sure this is the optimal way to do it but at least it worked in my case. (Or you can transform it in 3D Slicer. In transform menu, you need to apply the following matrix: 0 0 -1 0 1 0 0 0 0 1 0 0 0 0 0 1 to the target image, harden the transform then export the image.) Best, YangKyun // OutputImageType = // streamerBP->GetOutput(): resultant 3D image from rtkfdk reconstruction //Same image type from original image -3D & float OutputImageType::IndexType start_trans; start_trans[0] = 0; start_trans[1] = 0; start_trans[2] = 0; OutputImageType::SizeType size_trans; size_trans[0] = sizeOutput[0]; // X //410 size_trans[1] = sizeOutput[2]; //Y // 410 size_trans[2] = sizeOutput[1]; //Z // 120? OutputImageType::SpacingType spacing_trans; spacing_trans[0] = spacing[0]; spacing_trans[1] = spacing[2]; spacing_trans[2] = spacing[1]; OutputImageType::PointType Origin_trans; Origin_trans[0] = -0.5* size_trans[0]*spacing_trans[0]; Origin_trans[1] = -0.5* size_trans[1]*spacing_trans[1]; Origin_trans[2] = -0.5* size_trans[2]*spacing_trans[2]; OutputImageType::RegionType region_trans; region_trans.SetSize(size_trans); region_trans.SetIndex(start_trans); /* 2) Prepare Target image */ OutputImageType::Pointer targetImg = streamerBP->GetOutput(); /* 3) Configure transform */ typedef itk::Euler3DTransform< double > TransformType; TransformType::Pointer transform = TransformType::New(); TransformType::ParametersType param; param.SetSize(6); //MAXIMUM PARAM NUMBER: 6!!! param.put(0, 0.0); //rot X // 0.5 = PI/2 param.put(1, itk::Math::pi/2.0);//rot Y param.put(2, itk::Math::pi/-2.0);//rot Z param.put(3, 0.0); // Trans X mm param.put(4, 0.0); // Trans Y mm param.put(5, 0.0); // Trans Z mm TransformType::ParametersType fixedParam(3); //rotation center fixedParam.put(0,0); fixedParam.put(1,0); fixedParam.put(2,0); transform->SetParameters(param); transform->SetFixedParameters(fixedParam); //Center of the Transform cout << "Transform matrix:" << " " << endl; cout << transform->GetMatrix() << std::endl; typedef itk::ResampleImageFilter ResampleFilterType; ResampleFilterType::Pointer resampler = ResampleFilterType::New(); //OutputImageType::RegionType fixedImg_Region = fixedImg->GetLargestPossibleRegion().GetSize(); resampler->SetInput(targetImg); resampler->SetSize(size_trans); resampler->SetOutputOrigin( Origin_trans); //Lt Top Inf of Large Canvas resampler->SetOutputSpacing( spacing_trans ); // 1 1 1 resampler->SetOutputDirection( targetImg->GetDirection() ); //image normal? resampler->SetTransform(transform); //LR flip cout << "LR flip filter is being applied" << endl; typedef itk::FlipImageFilter< OutputImageType > FilterType; FilterType::Pointer flipFilter = FilterType::New(); typedef FilterType::FlipAxesArrayType FlipAxesArrayType; FlipAxesArrayType arrFlipAxes; arrFlipAxes[0] = 1; arrFlipAxes[1] = 0; arrFlipAxes[2] = 0; flipFilter->SetFlipAxes(arrFlipAxes); flipFilter->SetInput(resampler->GetOutput()); flipFilter->Update(); //Use flipFilter->GetOutput() for further process From: Rtk-users [mailto:rtk-users-bounces at public.kitware.com ] On Behalf Of Simon Rit Sent: Wednesday, September 10, 2014 8:39 AM To: Chao Wu Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] coordinates of 3D volume Hi, I wish there was a single industrial standard... You have the DICOM standard in mind and I used an IEC standard (see wiki). You can play with the --direction option to orientate the voxel axes of your image (see itk::Image documentation) and then reset the direction of your output image to identity, I think that will do what you want. Simon On Wed, Sep 10, 2014 at 1:35 PM, Chao Wu > wrote: Hi all, I see that rtk use certain industrial standard for the coordinates of 2D projections and 3D volumes. However in medical imaging, the xy planes of a volume are usually transaxial slices while the 3rd dimension is aligned with the axis of rotation. I would like to switch to this coordinates in my own code. Is there anyone who can give me some comments and suggestions about where to start? Thanks. Regards, Chao _______________________________________________ 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: From ghostcz at hotmail.com Mon Sep 15 08:09:46 2014 From: ghostcz at hotmail.com (ghostcz) Date: Mon, 15 Sep 2014 14:09:46 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? Message-ID: Dear Rtk users, How can I select one (or maybe more?) specific GPU to run my reconstruction? It seems if I start a second instance of the reconstruction program, it will run on the same GPU. Best regards, Louie -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Mon Sep 15 08:45:24 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Mon, 15 Sep 2014 14:45:24 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: Message-ID: Hi, Good question, I did not hear anybody working on multiple GPUs so far. It currently uses the first Cuda compatible device. I think you'll have to look up in the Cuda manual to see how to switch to another one but there is nothing available in the RTK lib yet. Don't hesitate to suggest some code changes to add this feature. Simon On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: > Dear Rtk users, > > How can I select one (or maybe more?) specific GPU to run my reconstruction? > It seems if I start a second instance of the reconstruction program, it will > run on the same GPU. > > Best regards, > Louie > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > From padraig.looney at gmail.com Tue Sep 16 10:07:05 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 16 Sep 2014 15:07:05 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: <540ED73D.3080003@creatis.insa-lyon.fr> References: <540ED73D.3080003@creatis.insa-lyon.fr> Message-ID: Thanks Cyril, Following your advice I have tracked the seg fault down to line 36 in FirstReconstruction geometry->AddProjection(sid, sdd, angle, isox, isoy); } I realised that I managed to build the examples with RTK fine and the same example runs without a seg fault in the build directory. On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory wrote: > Hi Padraig, > > With so little information, there isn't much we can do to help you. > I usually track segfaults by compiling in Debug mode (by setting > "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT > Creator (any decent IDE will do just fine, and should stop when the > segfault occurs, allowing you to trace it back) > > Good luck, > Cyril > > > On 09/09/2014 12:05 PM, Padraig Looney wrote: > > When I try to run the "FirstReconstruction" example I am getting a > segmentation fault. > > The following is the output from gdb > > Program received signal SIGSEGV, Segmentation fault. > 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () > > > > > _______________________________________________ > Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users > > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Tue Sep 16 10:23:07 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Tue, 16 Sep 2014 16:23:07 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: <540ED73D.3080003@creatis.insa-lyon.fr> Message-ID: <541847CB.8020807@creatis.insa-lyon.fr> Hi Padraig, Does the segfault happen at the first call of geometry->AddProjection(...) or later ? My guess is that, for some reason, geometry is not initialized. Can you make sure it is by setting a breakpoint just before ? You should also make sure that all variables involved in this call, ie "sid", "sdd", "angle", "isox" and "isoy" have reasonable values before the call. It is probably not a good question, yet I have to ask : did you modify something in the file examples/FirstReconstruction/FirstReconstruction.cxx ? Regards, Cyril On 09/16/2014 04:07 PM, Padraig Looney wrote: > Thanks Cyril, > > Following your advice I have tracked the seg fault down to line 36 in > FirstReconstruction > > geometry->AddProjection(sid, > sdd, > angle, > isox, > isoy); > } > > I realised that I managed to build the examples with RTK fine and the > same example runs without a seg fault in the build directory. > > On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory > > wrote: > > Hi Padraig, > > With so little information, there isn't much we can do to help you. > I usually track segfaults by compiling in Debug mode (by setting > "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug > in QT Creator (any decent IDE will do just fine, and should stop > when the segfault occurs, allowing you to trace it back) > > Good luck, > Cyril > > > On 09/09/2014 12:05 PM, Padraig Looney wrote: >> When I try to run the "FirstReconstruction" example I am getting >> a segmentation fault. >> >> The following is the output from gdb >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () >> >> >> >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://public.kitware.com/mailman/listinfo/rtk-users > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From padraig.looney at gmail.com Tue Sep 16 10:38:05 2014 From: padraig.looney at gmail.com (Padraig Looney) Date: Tue, 16 Sep 2014 15:38:05 +0100 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: <541847CB.8020807@creatis.insa-lyon.fr> References: <540ED73D.3080003@creatis.insa-lyon.fr> <541847CB.8020807@creatis.insa-lyon.fr> Message-ID: It happens with the first call. I set a breakpoint just before and it is not empty. I have tried to attach a screen capture of my space. Yes I thought I may have changed something but I have copied the directory twice from the original download in which it builds correctly. I cloned this with git and there are no changes. On Tue, Sep 16, 2014 at 3:23 PM, Cyril Mory wrote: > Hi Padraig, > > Does the segfault happen at the first call of geometry->AddProjection(...) > or later ? > > My guess is that, for some reason, geometry is not initialized. Can you > make sure it is by setting a breakpoint just before ? > You should also make sure that all variables involved in this call, ie > "sid", "sdd", "angle", "isox" and "isoy" have reasonable values before the > call. > > It is probably not a good question, yet I have to ask : did you modify > something in the file examples/FirstReconstruction/FirstReconstruction.cxx > ? > > Regards, > Cyril > > > On 09/16/2014 04:07 PM, Padraig Looney wrote: > > Thanks Cyril, > > Following your advice I have tracked the seg fault down to line 36 in > FirstReconstruction > > geometry->AddProjection(sid, > sdd, > angle, > isox, > isoy); > } > > I realised that I managed to build the examples with RTK fine and the > same example runs without a seg fault in the build directory. > > On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory < > cyril.mory at creatis.insa-lyon.fr> wrote: > >> Hi Padraig, >> >> With so little information, there isn't much we can do to help you. >> I usually track segfaults by compiling in Debug mode (by setting >> "CMAKE_BUILD_TYPE" to "Debug"), then running the program in debug in QT >> Creator (any decent IDE will do just fine, and should stop when the >> segfault occurs, allowing you to trace it back) >> >> Good luck, >> Cyril >> >> >> On 09/09/2014 12:05 PM, Padraig Looney wrote: >> >> When I try to run the "FirstReconstruction" example I am getting a >> segmentation fault. >> >> The following is the output from gdb >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004952d7 in typeinfo for rtk::ProjectionGeometry<3u> () >> >> >> >> >> _______________________________________________ >> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 >> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: rtkSegFaultFirstRecon.png Type: image/png Size: 273538 bytes Desc: not available URL: From cyril.mory at creatis.insa-lyon.fr Wed Sep 17 05:59:58 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Wed, 17 Sep 2014 11:59:58 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: Message-ID: <54195B9E.10000@creatis.insa-lyon.fr> Hi Louie, We have been investigating your question bit. A first possible solution, which may be sufficient for your needs, could be to set the CUDA_VISIBLE_DEVICES environment variable. You'll find details here : http://www.acceleware.com/blog/cudavisibledevices-masking-gpus Here are two scripts I used to run tests on our two-GPUs server: ######### First script ######### echo "Running two instances of rtkfdk without specifying a GPU" CUDA_VISIBLE_DEVICES="0,1" time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g geom.xml --dimension 512 & time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g geom.xml --dimension 512 & ######### Second script ######### echo "Running two instances of rtkfdk, specifying which GPU to use for each" echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash ######### End ############# On our server, which has two identical GPUs, these two scripts took the same time. It seems that, in the first script, rtkfdk somehow managed to detect that the first GPU was in use and ran on the second one. But I can't guarantee under which conditions this happens, and surely it's safer to use the second script. This is the cheapest solution. If you need more than that, and you are ready to dive into the cuda filters' code as well as into the automatic transfers between CPU and GPU memory, do not hesitate to propose modifications of the RTK code. Regards, Cyril On 09/15/2014 02:45 PM, Simon Rit wrote: > Hi, > Good question, I did not hear anybody working on multiple GPUs so far. > It currently uses the first Cuda compatible device. I think you'll > have to look up in the Cuda manual to see how to switch to another one > but there is nothing available in the RTK lib yet. Don't hesitate to > suggest some code changes to add this feature. > Simon > > On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >> Dear Rtk users, >> >> How can I select one (or maybe more?) specific GPU to run my reconstruction? >> It seems if I start a second instance of the reconstruction program, it will >> run on the same GPU. >> >> Best regards, >> Louie >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://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 > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From ghostcz at hotmail.com Wed Sep 17 11:58:47 2014 From: ghostcz at hotmail.com (ghostcz) Date: Wed, 17 Sep 2014 17:58:47 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: <54195B9E.10000@creatis.insa-lyon.fr> References: <54195B9E.10000@creatis.insa-lyon.fr> Message-ID: Dear Cyril, Thank you for the follow-up. That is indeed a faster way to realize this function. I wrote a launcher instead, where I call cuda_set_device to select the device. No, I don?t think I know CUDA good enough to manage the memory transfer between the devices. Best regards, Louie P.S. is there any training or workshop focusing on rtk application and development available? -----Original Message----- From: Cyril Mory Sent: Wednesday, September 17, 2014 11:59 AM To: Simon Rit ; ghostcz Cc: rtk-users at openrtk.org Subject: Re: [Rtk-users] How to run the reconstruction on a specific GPU? Hi Louie, We have been investigating your question bit. A first possible solution, which may be sufficient for your needs, could be to set the CUDA_VISIBLE_DEVICES environment variable. You'll find details here : http://www.acceleware.com/blog/cudavisibledevices-masking-gpus Here are two scripts I used to run tests on our two-GPUs server: ######### First script ######### echo "Running two instances of rtkfdk without specifying a GPU" CUDA_VISIBLE_DEVICES="0,1" time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g geom.xml --dimension 512 & time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g geom.xml --dimension 512 & ######### Second script ######### echo "Running two instances of rtkfdk, specifying which GPU to use for each" echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash ######### End ############# On our server, which has two identical GPUs, these two scripts took the same time. It seems that, in the first script, rtkfdk somehow managed to detect that the first GPU was in use and ran on the second one. But I can't guarantee under which conditions this happens, and surely it's safer to use the second script. This is the cheapest solution. If you need more than that, and you are ready to dive into the cuda filters' code as well as into the automatic transfers between CPU and GPU memory, do not hesitate to propose modifications of the RTK code. Regards, Cyril On 09/15/2014 02:45 PM, Simon Rit wrote: > Hi, > Good question, I did not hear anybody working on multiple GPUs so far. > It currently uses the first Cuda compatible device. I think you'll > have to look up in the Cuda manual to see how to switch to another one > but there is nothing available in the RTK lib yet. Don't hesitate to > suggest some code changes to add this feature. > Simon > > On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >> Dear Rtk users, >> >> How can I select one (or maybe more?) specific GPU to run my >> reconstruction? >> It seems if I start a second instance of the reconstruction program, it >> will >> run on the same GPU. >> >> Best regards, >> Louie >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://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 > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From lomahu at gmail.com Wed Sep 17 23:21:34 2014 From: lomahu at gmail.com (Howard) Date: Wed, 17 Sep 2014 23:21:34 -0400 Subject: [Rtk-users] bright circle on the reconstructed image Message-ID: Hi, I use rtkfdk to reconstruct varian cbct images following the example on rtk wiki page. The projections were obtained with half fan mode because it is an abdominal region with the patient lateral x AP dimension of 550x550. The reconstructed cbct images have a big bright circle around the image. Please see the image: http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html I am using Ubuntu Linux box to reconstruct. Two sequential commands were used: ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ --regexp Proj_.*.hnd -o varianGeometry and rtkfdk \ --geometry varianGeometry \ --regexp .*.hnd \ --path ../Scan0 \ --output rec.mha \ --verbose \ --spacing 2.0,2.0,2.0 \ --dimension 256,100,256 \ The projections are stored in the standard varian format: Scan0 and ProjectionInfo.xml with 644 projection images. I assume that rtkfdk handled the half fan geometry properly. What did I do wrong then? Many thanks! -howard -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 04:12:23 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 10:12:23 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: Message-ID: <541A93E7.7010301@creatis.insa-lyon.fr> Hi Howard, The bright ring artifact is typically caused by high-pass filtering (the ramp filter used in FDK) of truncated projection data (when projections have non-zero values on the sides, the edge of the projection makes a sharp transition to zero). A classical answer to this problem is to pad the projections, for example with values starting from the values on the side and slowly decreasing to zero. rtkfdk can do this padding for you. Just add "--pad 0.1" to your options (or more than 0.1 if it isn't enough). Also, I noticed that your reconstructed image seems quite noisy. You might want to use a Hann windowing of the ramp filter to reduce the noise amplification effect of high-pass filtering. You can do that by adding "--hann 0.5" to your options. Note that the argument is a cut-off frequency, so smaller values mean more smoothing. Best regards, Cyril On 09/18/2014 05:21 AM, Howard wrote: > Hi, > I use rtkfdk to reconstruct varian cbct images following the example > on rtk wiki page. The projections were obtained with half fan mode > because it is an abdominal region with the patient lateral x AP > dimension of 550x550. The reconstructed cbct images have a big > bright circle around > the image. Please see the image: > http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > I am using Ubuntu Linux box to reconstruct. Two sequential commands > were used: > ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > --regexp Proj_.*.hnd -o varianGeometry > and > rtkfdk \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output rec.mha \ > --verbose \ > --spacing 2.0,2.0,2.0 \ > --dimension 256,100,256 \ > The projections are stored in the standard varian format: Scan0 and > ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled the half fan geometry properly. What did I do wrong then? > Many thanks! > -howard > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 04:53:34 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 10:53:34 +0200 Subject: [Rtk-users] How to run the reconstruction on a specific GPU? In-Reply-To: References: <54195B9E.10000@creatis.insa-lyon.fr> Message-ID: <541A9D8E.5040403@creatis.insa-lyon.fr> Hi Louie, Good that you managed to solve your problem. Your question on training made us think a bit. Here are a few answers: - At the moment, there is only a wiki, the documentation and this mailing list - We're only a handful of developers working on RTK, so it seems too early, and too much logistics, to organize real workshops or training sessions in the near future - That being said, we would like to leave the door open. Surely it is important, if we want more people to use RTK and contribute to it, that new developers can learn easily and efficiently. I'll start a specific thread on the mailing list to gather the possible requests similar to yours - RTK uses ITK to do most of the work, therefore programming in RTK essentially requires knowing ITK and knowing some tomography. ITK training sessions are organized often and in many countries I hope it helps, Cyril On 09/17/2014 05:58 PM, ghostcz wrote: > Dear Cyril, > > Thank you for the follow-up. > That is indeed a faster way to realize this function. I wrote a > launcher instead, where I call cuda_set_device to select the device. > No, I don?t think I know CUDA good enough to manage the memory > transfer between the devices. > > Best regards, > Louie > > P.S. is there any training or workshop focusing on rtk application and > development available? > > > > > -----Original Message----- From: Cyril Mory > Sent: Wednesday, September 17, 2014 11:59 AM > To: Simon Rit ; ghostcz > Cc: rtk-users at openrtk.org > Subject: Re: [Rtk-users] How to run the reconstruction on a specific GPU? > > Hi Louie, > > We have been investigating your question bit. A first possible solution, > which may be sufficient for your needs, could be to set the > CUDA_VISIBLE_DEVICES environment variable. You'll find details here : > http://www.acceleware.com/blog/cudavisibledevices-masking-gpus > > Here are two scripts I used to run tests on our two-GPUs server: > > ######### First script ######### > echo "Running two instances of rtkfdk without specifying a GPU" > CUDA_VISIBLE_DEVICES="0,1" > time rtkfdk -p . -r .*.his -o fdkBothGPUs_0.mha --hardware cuda -g > geom.xml --dimension 512 & > time rtkfdk -p . -r .*.his -o fdkBothGPUs_1.mha --hardware cuda -g > geom.xml --dimension 512 & > > ######### Second script ######### > echo "Running two instances of rtkfdk, specifying which GPU to use for > each" > echo 'CUDA_VISIBLE_DEVICES="0"; time rtkfdk -p . -r .*.his -o > fdkGPU_0.mha --hardware cuda -g geom.xml --dimension 512 &' | bash > echo 'CUDA_VISIBLE_DEVICES="1"; time rtkfdk -p . -r .*.his -o > fdkGPU_1.mha --hardware cuda -g geom.xml --dimension 512 &' | bash > > ######### End ############# > > On our server, which has two identical GPUs, these two scripts took the > same time. It seems that, in the first script, rtkfdk somehow managed to > detect that the first GPU was in use and ran on the second one. But I > can't guarantee under which conditions this happens, and surely it's > safer to use the second script. > > This is the cheapest solution. If you need more than that, and you are > ready to dive into the cuda filters' code as well as into the automatic > transfers between CPU and GPU memory, do not hesitate to propose > modifications of the RTK code. > > Regards, > Cyril > > On 09/15/2014 02:45 PM, Simon Rit wrote: >> Hi, >> Good question, I did not hear anybody working on multiple GPUs so far. >> It currently uses the first Cuda compatible device. I think you'll >> have to look up in the Cuda manual to see how to switch to another one >> but there is nothing available in the RTK lib yet. Don't hesitate to >> suggest some code changes to add this feature. >> Simon >> >> On Mon, Sep 15, 2014 at 2:09 PM, ghostcz wrote: >>> Dear Rtk users, >>> >>> How can I select one (or maybe more?) specific GPU to run my >>> reconstruction? >>> It seems if I start a second instance of the reconstruction program, >>> it will >>> run on the same GPU. >>> >>> Best regards, >>> Louie >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://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 >> > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 05:28:42 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 11:28:42 +0200 Subject: [Rtk-users] Would you like RTK trainings ? Message-ID: <541AA5CA.9050306@creatis.insa-lyon.fr> Hi RTK users, A recent question on the mailing list by Louie triggered a conversation between us. Louie asked whether there exists some sort of training or workshop on RTK. In a nutshell, the answer is "No, not yet, but why not talk about it ?". So I'd like to start some sort of "poll" to gather the requests you might have on this topic: Do you need / want / would like a training on RTK ? If so, can you be more specific on what you would like to learn ? (basics of tomography, how to start using RTK on your data, practical issues in circular cone beam CT, motion compensated reconstruction, compressed sensing in tomography, ITK programming, ... this is not an exhaustive list) I think this is enough questions for the time being. The rest will depend on your answers. Looking forward to reading you, -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 06:08:21 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 12:08:21 +0200 Subject: [Rtk-users] SegFault - FirstReconstruction In-Reply-To: References: <540ED73D.3080003@creatis.insa-lyon.fr> <541847CB.8020807@creatis.insa-lyon.fr> Message-ID: <541AAF15.9080707@creatis.insa-lyon.fr> Hi Padraig, It is puzzling, as the code is simple and we have many machines on which it works without problem. So let's explore the weirder options : - In one of your previous emails, you mentioned that "the same example runs without a seg fault in the build directory". What does that mean ? - Can you go into your build directory, run "make test", and post the result of the tests ? - Have you tried installing RTK on another machine ? Regards, Cyril On 09/16/2014 04:38 PM, Padraig Looney wrote: > It happens with the first call. > > I set a breakpoint just before and it is not empty. I have tried to > attach a screen capture of my space. > > Yes I thought I may have changed something but I have copied the > directory twice from the original download in which it builds > correctly. I cloned this with git and there are no changes. > > > On Tue, Sep 16, 2014 at 3:23 PM, Cyril Mory > > wrote: > > Hi Padraig, > > Does the segfault happen at the first call of > geometry->AddProjection(...) or later ? > > My guess is that, for some reason, geometry is not initialized. > Can you make sure it is by setting a breakpoint just before ? > You should also make sure that all variables involved in this > call, ie "sid", "sdd", "angle", "isox" and "isoy" have reasonable > values before the call. > > It is probably not a good question, yet I have to ask : did you > modify something in the file > examples/FirstReconstruction/FirstReconstruction.cxx ? > > Regards, > Cyril > > > On 09/16/2014 04:07 PM, Padraig Looney wrote: >> Thanks Cyril, >> >> Following your advice I have tracked the seg fault down to line >> 36 in FirstReconstruction >> >> geometry->AddProjection(sid, >> sdd, >> angle, >> isox, >> isoy); >> } >> >> I realised that I managed to build the examples with RTK fine and >> the same example runs without a seg fault in the build directory. >> >> On Tue, Sep 9, 2014 at 11:32 AM, Cyril Mory >> > > wrote: >> >> Hi Padraig, >> >> With so little information, there isn't much we can do to >> help you. >> I usually track segfaults by compiling in Debug mode (by >> setting "CMAKE_BUILD_TYPE" to "Debug"), then running the >> program in debug in QT Creator (any decent IDE will do just >> fine, and should stop when the segfault occurs, allowing you >> to trace it back) >> >> Good luck, >> Cyril >> >> >> On 09/09/2014 12:05 PM, Padraig Looney wrote: >>> When I try to run the "FirstReconstruction" example I am >>> getting a segmentation fault. >>> >>> The following is the output from gdb >>> >>> Program received signal SIGSEGV, Segmentation fault. >>> 0x00000000004952d7 in typeinfo for >>> rtk::ProjectionGeometry<3u> () >>> >>> >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://public.kitware.com/mailman/listinfo/rtk-users >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile:+33 6 69 46 73 79 >> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Thu Sep 18 09:47:40 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Thu, 18 Sep 2014 15:47:40 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: <541A93E7.7010301@creatis.insa-lyon.fr> References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: Hi, I fully agree with Cyril. Something else : you might want to mask out what is outside the field-of-view using the rtkfieldofview executable. Your ring corresponds to that border. See an example here: http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction Simon On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < cyril.mory at creatis.insa-lyon.fr> wrote: > Hi Howard, > > The bright ring artifact is typically caused by high-pass filtering (the > ramp filter used in FDK) of truncated projection data (when projections > have non-zero values on the sides, the edge of the projection makes a sharp > transition to zero). A classical answer to this problem is to pad the > projections, for example with values starting from the values on the side > and slowly decreasing to zero. > > rtkfdk can do this padding for you. Just add "--pad 0.1" to your options > (or more than 0.1 if it isn't enough). > Also, I noticed that your reconstructed image seems quite noisy. You might > want to use a Hann windowing of the ramp filter to reduce the noise > amplification effect of high-pass filtering. You can do that by adding > "--hann 0.5" to your options. Note that the argument is a cut-off > frequency, so smaller values mean more smoothing. > > Best regards, > Cyril > > > On 09/18/2014 05:21 AM, Howard wrote: > > Hi, > > I use rtkfdk to reconstruct varian cbct images following the example on > rtk wiki page. The projections were obtained with half fan mode because it > is an abdominal region with the patient lateral x AP dimension of 550x550. > The reconstructed cbct images have a big bright circle around > the image. Please see the image: > http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > > I am using Ubuntu Linux box to reconstruct. Two sequential commands were > used: > > ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > --regexp Proj_.*.hnd -o varianGeometry > and > > rtkfdk \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output rec.mha \ > --verbose \ > --spacing 2.0,2.0,2.0 \ > --dimension 256,100,256 \ > The projections are stored in the standard varian format: Scan0 and > ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled the half fan geometry properly. What did I do wrong then? Many > thanks! > > -howard > > > _______________________________________________ > Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users > > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > > _______________________________________________ > 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: From lomahu at gmail.com Thu Sep 18 10:47:17 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 10:47:17 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: Thanks very much, Cyril & Simon. Now the fdk reconstruction is working beautifully. Jus another quick question: for rtksart executable, are we still able to do padding and hanning window trick as well? On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit wrote: > Hi, > I fully agree with Cyril. Something else : you might want to mask out what > is outside the field-of-view using the rtkfieldofview executable. Your ring > corresponds to that border. See an example here: > http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > Simon > > On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < > cyril.mory at creatis.insa-lyon.fr> wrote: > >> Hi Howard, >> >> The bright ring artifact is typically caused by high-pass filtering (the >> ramp filter used in FDK) of truncated projection data (when projections >> have non-zero values on the sides, the edge of the projection makes a sharp >> transition to zero). A classical answer to this problem is to pad the >> projections, for example with values starting from the values on the side >> and slowly decreasing to zero. >> >> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >> (or more than 0.1 if it isn't enough). >> Also, I noticed that your reconstructed image seems quite noisy. You >> might want to use a Hann windowing of the ramp filter to reduce the noise >> amplification effect of high-pass filtering. You can do that by adding >> "--hann 0.5" to your options. Note that the argument is a cut-off >> frequency, so smaller values mean more smoothing. >> >> Best regards, >> Cyril >> >> >> On 09/18/2014 05:21 AM, Howard wrote: >> >> Hi, >> >> I use rtkfdk to reconstruct varian cbct images following the example on >> rtk wiki page. The projections were obtained with half fan mode because it >> is an abdominal region with the patient lateral x AP dimension of 550x550. >> The reconstructed cbct images have a big bright circle around >> the image. Please see the image: >> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> >> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >> used: >> >> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >> --regexp Proj_.*.hnd -o varianGeometry >> and >> >> rtkfdk \ >> --geometry varianGeometry \ >> --regexp .*.hnd \ >> --path ../Scan0 \ >> --output rec.mha \ >> --verbose \ >> --spacing 2.0,2.0,2.0 \ >> --dimension 256,100,256 \ >> The projections are stored in the standard varian format: Scan0 and >> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >> handled the half fan geometry properly. What did I do wrong then? Many >> thanks! >> >> -howard >> >> >> _______________________________________________ >> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 >> >> >> _______________________________________________ >> 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: From cyril.mory at creatis.insa-lyon.fr Thu Sep 18 10:59:53 2014 From: cyril.mory at creatis.insa-lyon.fr (Cyril Mory) Date: Thu, 18 Sep 2014 16:59:53 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> Message-ID: <541AF369.9090403@creatis.insa-lyon.fr> Howard, For SART reconstructions, you do not need padding, and you can't do Hann windowing because no ramp filtering is applied. SART usually outputs smoother images, so you probably will not need this denoising trick anyway. However, you should be careful about one thing : your object has to be fully contained in the reconstructed volume, or you will observe important border effects. Use the --dimension, --spacing and --origin options to ensure this. All the best, Cyril On 09/18/2014 04:47 PM, Howard wrote: > Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > beautifully. Jus another quick question: for rtksart executable, are > we still able to do padding and hanning window trick as well? > > On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > > wrote: > > Hi, > I fully agree with Cyril. Something else : you might want to mask > out what is outside the field-of-view using the rtkfieldofview > executable. Your ring corresponds to that border. See an example here: > http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > Simon > > On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory > > wrote: > > Hi Howard, > > The bright ring artifact is typically caused by high-pass > filtering (the ramp filter used in FDK) of truncated > projection data (when projections have non-zero values on the > sides, the edge of the projection makes a sharp transition to > zero). A classical answer to this problem is to pad the > projections, for example with values starting from the values > on the side and slowly decreasing to zero. > > rtkfdk can do this padding for you. Just add "--pad 0.1" to > your options (or more than 0.1 if it isn't enough). > Also, I noticed that your reconstructed image seems quite > noisy. You might want to use a Hann windowing of the ramp > filter to reduce the noise amplification effect of high-pass > filtering. You can do that by adding "--hann 0.5" to your > options. Note that the argument is a cut-off frequency, so > smaller values mean more smoothing. > > Best regards, > Cyril > > > On 09/18/2014 05:21 AM, Howard wrote: >> Hi, >> I use rtkfdk to reconstruct varian cbct images following the >> example on rtk wiki page. The projections were obtained with >> half fan mode because it is an abdominal region with the >> patient lateral x AP dimension of 550x550. The reconstructed >> cbct images have a big bright circle around >> the image. Please see the image: >> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> I am using Ubuntu Linux box to reconstruct. Two sequential >> commands were used: >> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path >> Scan0/ --regexp Proj_.*.hnd -o varianGeometry >> and >> rtkfdk \ >> --geometry varianGeometry \ >> --regexp .*.hnd \ >> --path ../Scan0 \ >> --output rec.mha \ >> --verbose \ >> --spacing 2.0,2.0,2.0 \ >> --dimension 256,100,256 \ >> The projections are stored in the standard varian format: >> Scan0 and ProjectionInfo.xml with 644 projection images. I >> assume that rtkfdk handled the half fan geometry properly. >> What did I do wrong then? Many thanks! >> -howard >> >> >> _______________________________________________ >> Rtk-users mailing list >> Rtk-users at public.kitware.com >> http://public.kitware.com/mailman/listinfo/rtk-users > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile:+33 6 69 46 73 79 > > > _______________________________________________ > Rtk-users mailing list > Rtk-users at public.kitware.com > http://public.kitware.com/mailman/listinfo/rtk-users > > > -- -- Cyril Mory, Post-doc CREATIS Leon Berard cancer treatment center 28 rue La?nnec 69373 Lyon cedex 08 FRANCE Mobile: +33 6 69 46 73 79 -------------- next part -------------- An HTML attachment was scrubbed... URL: From lomahu at gmail.com Thu Sep 18 13:03:52 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 13:03:52 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: <541AF369.9090403@creatis.insa-lyon.fr> References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Cyril, I am testing SART reconstruction according to what you described, specifying dimension, spacing and origin: rtksart \ --geometry varianGeometry \ --regexp .*.hnd \ --path ../Scan0 \ --output sart_rec.mha \ --verbose \ --spacing 2.0\ --dimension 128,100,128 \ --origin -127.5,-99,-127.5 but the reconstruction gave a plain image with no object/contrast. I checked the grayscale values on the reconstructed images and did see they ranged from -1.78 to 3 (this may not be precise but give you some idea). I tried to adjust window level but couldn't see any contrast. I must miss something here. Please advise. Thanks! -howard On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory < cyril.mory at creatis.insa-lyon.fr> wrote: > Howard, > > For SART reconstructions, you do not need padding, and you can't do Hann > windowing because no ramp filtering is applied. SART usually outputs > smoother images, so you probably will not need this denoising trick anyway. > However, you should be careful about one thing : your object has to be > fully contained in the reconstructed volume, or you will observe important > border effects. Use the --dimension, --spacing and --origin options to > ensure this. > > All the best, > Cyril > > > On 09/18/2014 04:47 PM, Howard wrote: > > Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > beautifully. Jus another quick question: for rtksart executable, are we > still able to do padding and hanning window trick as well? > > On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > wrote: > >> Hi, >> I fully agree with Cyril. Something else : you might want to mask out >> what is outside the field-of-view using the rtkfieldofview executable. Your >> ring corresponds to that border. See an example here: >> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >> Simon >> >> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory < >> cyril.mory at creatis.insa-lyon.fr> wrote: >> >>> Hi Howard, >>> >>> The bright ring artifact is typically caused by high-pass filtering (the >>> ramp filter used in FDK) of truncated projection data (when projections >>> have non-zero values on the sides, the edge of the projection makes a sharp >>> transition to zero). A classical answer to this problem is to pad the >>> projections, for example with values starting from the values on the side >>> and slowly decreasing to zero. >>> >>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >>> (or more than 0.1 if it isn't enough). >>> Also, I noticed that your reconstructed image seems quite noisy. You >>> might want to use a Hann windowing of the ramp filter to reduce the noise >>> amplification effect of high-pass filtering. You can do that by adding >>> "--hann 0.5" to your options. Note that the argument is a cut-off >>> frequency, so smaller values mean more smoothing. >>> >>> Best regards, >>> Cyril >>> >>> >>> On 09/18/2014 05:21 AM, Howard wrote: >>> >>> Hi, >>> >>> I use rtkfdk to reconstruct varian cbct images following the example on >>> rtk wiki page. The projections were obtained with half fan mode because it >>> is an abdominal region with the patient lateral x AP dimension of 550x550. >>> The reconstructed cbct images have a big bright circle around >>> the image. Please see the image: >>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >>> >>> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >>> used: >>> >>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >>> --regexp Proj_.*.hnd -o varianGeometry >>> and >>> >>> rtkfdk \ >>> --geometry varianGeometry \ >>> --regexp .*.hnd \ >>> --path ../Scan0 \ >>> --output rec.mha \ >>> --verbose \ >>> --spacing 2.0,2.0,2.0 \ >>> --dimension 256,100,256 \ >>> The projections are stored in the standard varian format: Scan0 and >>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >>> handled the half fan geometry properly. What did I do wrong then? Many >>> thanks! >>> >>> -howard >>> >>> >>> _______________________________________________ >>> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >>> -- >>> -- >>> Cyril Mory, Post-doc >>> CREATIS >>> Leon Berard cancer treatment center >>> 28 rue La?nnec >>> 69373 Lyon cedex 08 FRANCE >>> >>> Mobile: +33 6 69 46 73 79 >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> Rtk-users at public.kitware.com >>> http://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >> > > -- > -- > Cyril Mory, Post-doc > CREATIS > Leon Berard cancer treatment center > 28 rue La?nnec > 69373 Lyon cedex 08 FRANCE > > Mobile: +33 6 69 46 73 79 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon.rit at creatis.insa-lyon.fr Thu Sep 18 16:41:10 2014 From: simon.rit at creatis.insa-lyon.fr (Simon Rit) Date: Thu, 18 Sep 2014 22:41:10 +0200 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Howard, Assuming you're using the same dataset as the one you used for the rtkfdk test, you have decreased its size. For example, x was 2*256 mm with rtkfdk and it is now 128*2. On the slice you sent, we could see that a part of the phantom on the right was missing so you should keep the same size except for this side that should be larger, certainly not reduce the size. For the display, I would suggest to use the same window/level as for your FDK reconstruction. The two reconstruction algorithms reconstruct the same average intensities, only the texture is different. Good luck, Simon On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: > Hi Cyril, > > I am testing SART reconstruction according to what you described, specifying > dimension, spacing and origin: > > rtksart \ > --geometry varianGeometry \ > --regexp .*.hnd \ > --path ../Scan0 \ > --output sart_rec.mha \ > --verbose \ > --spacing 2.0\ > --dimension 128,100,128 \ > --origin -127.5,-99,-127.5 > > but the reconstruction gave a plain image with no object/contrast. I checked > the grayscale values on the reconstructed images and did see they ranged > from -1.78 to 3 (this may not be precise but give you some idea). I tried to > adjust window level but couldn't see any contrast. I must miss something > here. Please advise. Thanks! > > -howard > > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory > wrote: >> >> Howard, >> >> For SART reconstructions, you do not need padding, and you can't do Hann >> windowing because no ramp filtering is applied. SART usually outputs >> smoother images, so you probably will not need this denoising trick anyway. >> However, you should be careful about one thing : your object has to be >> fully contained in the reconstructed volume, or you will observe important >> border effects. Use the --dimension, --spacing and --origin options to >> ensure this. >> >> All the best, >> Cyril >> >> >> On 09/18/2014 04:47 PM, Howard wrote: >> >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working >> beautifully. Jus another quick question: for rtksart executable, are we >> still able to do padding and hanning window trick as well? >> >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit >> wrote: >>> >>> Hi, >>> I fully agree with Cyril. Something else : you might want to mask out >>> what is outside the field-of-view using the rtkfieldofview executable. Your >>> ring corresponds to that border. See an example here: >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >>> Simon >>> >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory >>> wrote: >>>> >>>> Hi Howard, >>>> >>>> The bright ring artifact is typically caused by high-pass filtering (the >>>> ramp filter used in FDK) of truncated projection data (when projections have >>>> non-zero values on the sides, the edge of the projection makes a sharp >>>> transition to zero). A classical answer to this problem is to pad the >>>> projections, for example with values starting from the values on the side >>>> and slowly decreasing to zero. >>>> >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your options >>>> (or more than 0.1 if it isn't enough). >>>> Also, I noticed that your reconstructed image seems quite noisy. You >>>> might want to use a Hann windowing of the ramp filter to reduce the noise >>>> amplification effect of high-pass filtering. You can do that by adding >>>> "--hann 0.5" to your options. Note that the argument is a cut-off frequency, >>>> so smaller values mean more smoothing. >>>> >>>> Best regards, >>>> Cyril >>>> >>>> >>>> On 09/18/2014 05:21 AM, Howard wrote: >>>> >>>> Hi, >>>> >>>> I use rtkfdk to reconstruct varian cbct images following the example on >>>> rtk wiki page. The projections were obtained with half fan mode because it >>>> is an abdominal region with the patient lateral x AP dimension of 550x550. >>>> The reconstructed cbct images have a big bright circle around >>>> the image. Please see the image: >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >>>> >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands were >>>> used: >>>> >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >>>> --regexp Proj_.*.hnd -o varianGeometry >>>> and >>>> >>>> rtkfdk \ >>>> --geometry varianGeometry \ >>>> --regexp .*.hnd \ >>>> --path ../Scan0 \ >>>> --output rec.mha \ >>>> --verbose \ >>>> --spacing 2.0,2.0,2.0 \ >>>> --dimension 256,100,256 \ >>>> The projections are stored in the standard varian format: Scan0 and >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk handled >>>> the half fan geometry properly. What did I do wrong then? Many thanks! >>>> >>>> -howard >>>> >>>> >>>> _______________________________________________ >>>> Rtk-users mailing list >>>> Rtk-users at public.kitware.com >>>> http://public.kitware.com/mailman/listinfo/rtk-users >>>> >>>> >>>> -- >>>> -- >>>> Cyril Mory, Post-doc >>>> CREATIS >>>> Leon Berard cancer treatment center >>>> 28 rue La?nnec >>>> 69373 Lyon cedex 08 FRANCE >>>> >>>> Mobile: +33 6 69 46 73 79 >>>> >>>> >>>> _______________________________________________ >>>> Rtk-users mailing list >>>> Rtk-users at public.kitware.com >>>> http://public.kitware.com/mailman/listinfo/rtk-users >>>> >>> >> >> >> -- >> -- >> Cyril Mory, Post-doc >> CREATIS >> Leon Berard cancer treatment center >> 28 rue La?nnec >> 69373 Lyon cedex 08 FRANCE >> >> Mobile: +33 6 69 46 73 79 > > From lomahu at gmail.com Thu Sep 18 17:47:51 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 17:47:51 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Simon, I apologize for the confusion about the dataset. Actually I did not use the same dataset. The reason is that the set I used for rtkfdk test had 644 projections and with it rtksart crashed because of memory (I only allocated 3GB memory to Virtualbox from my window7). So for the SART test I changed to a small projection set (366 projections) where the object is a cube with dimension of 5cm x 5cm x 5cm. That's why I chose a smaller reconstruction size 128*2. With the same dataset when I ran rtkfdk I got very good reconstruction. -howard On Thu, Sep 18, 2014 at 4:41 PM, Simon Rit wrote: > Hi Howard, > Assuming you're using the same dataset as the one you used for the > rtkfdk test, you have decreased its size. For example, x was 2*256 mm > with rtkfdk and it is now 128*2. On the slice you sent, we could see > that a part of the phantom on the right was missing so you should keep > the same size except for this side that should be larger, certainly > not reduce the size. > For the display, I would suggest to use the same window/level as for > your FDK reconstruction. The two reconstruction algorithms reconstruct > the same average intensities, only the texture is different. > Good luck, > Simon > > On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: > > Hi Cyril, > > > > I am testing SART reconstruction according to what you described, > specifying > > dimension, spacing and origin: > > > > rtksart \ > > --geometry varianGeometry \ > > --regexp .*.hnd \ > > --path ../Scan0 \ > > --output sart_rec.mha \ > > --verbose \ > > --spacing 2.0\ > > --dimension 128,100,128 \ > > --origin -127.5,-99,-127.5 > > > > but the reconstruction gave a plain image with no object/contrast. I > checked > > the grayscale values on the reconstructed images and did see they ranged > > from -1.78 to 3 (this may not be precise but give you some idea). I > tried to > > adjust window level but couldn't see any contrast. I must miss something > > here. Please advise. Thanks! > > > > -howard > > > > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory > > wrote: > >> > >> Howard, > >> > >> For SART reconstructions, you do not need padding, and you can't do Hann > >> windowing because no ramp filtering is applied. SART usually outputs > >> smoother images, so you probably will not need this denoising trick > anyway. > >> However, you should be careful about one thing : your object has to be > >> fully contained in the reconstructed volume, or you will observe > important > >> border effects. Use the --dimension, --spacing and --origin options to > >> ensure this. > >> > >> All the best, > >> Cyril > >> > >> > >> On 09/18/2014 04:47 PM, Howard wrote: > >> > >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working > >> beautifully. Jus another quick question: for rtksart executable, are we > >> still able to do padding and hanning window trick as well? > >> > >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit > >> wrote: > >>> > >>> Hi, > >>> I fully agree with Cyril. Something else : you might want to mask out > >>> what is outside the field-of-view using the rtkfieldofview executable. > Your > >>> ring corresponds to that border. See an example here: > >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction > >>> Simon > >>> > >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory > >>> wrote: > >>>> > >>>> Hi Howard, > >>>> > >>>> The bright ring artifact is typically caused by high-pass filtering > (the > >>>> ramp filter used in FDK) of truncated projection data (when > projections have > >>>> non-zero values on the sides, the edge of the projection makes a sharp > >>>> transition to zero). A classical answer to this problem is to pad the > >>>> projections, for example with values starting from the values on the > side > >>>> and slowly decreasing to zero. > >>>> > >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your > options > >>>> (or more than 0.1 if it isn't enough). > >>>> Also, I noticed that your reconstructed image seems quite noisy. You > >>>> might want to use a Hann windowing of the ramp filter to reduce the > noise > >>>> amplification effect of high-pass filtering. You can do that by adding > >>>> "--hann 0.5" to your options. Note that the argument is a cut-off > frequency, > >>>> so smaller values mean more smoothing. > >>>> > >>>> Best regards, > >>>> Cyril > >>>> > >>>> > >>>> On 09/18/2014 05:21 AM, Howard wrote: > >>>> > >>>> Hi, > >>>> > >>>> I use rtkfdk to reconstruct varian cbct images following the example > on > >>>> rtk wiki page. The projections were obtained with half fan mode > because it > >>>> is an abdominal region with the patient lateral x AP dimension of > 550x550. > >>>> The reconstructed cbct images have a big bright circle around > >>>> the image. Please see the image: > >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html > >>>> > >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands > were > >>>> used: > >>>> > >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ > >>>> --regexp Proj_.*.hnd -o varianGeometry > >>>> and > >>>> > >>>> rtkfdk \ > >>>> --geometry varianGeometry \ > >>>> --regexp .*.hnd \ > >>>> --path ../Scan0 \ > >>>> --output rec.mha \ > >>>> --verbose \ > >>>> --spacing 2.0,2.0,2.0 \ > >>>> --dimension 256,100,256 \ > >>>> The projections are stored in the standard varian format: Scan0 and > >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk > handled > >>>> the half fan geometry properly. What did I do wrong then? Many > thanks! > >>>> > >>>> -howard > >>>> > >>>> > >>>> _______________________________________________ > >>>> Rtk-users mailing list > >>>> Rtk-users at public.kitware.com > >>>> http://public.kitware.com/mailman/listinfo/rtk-users > >>>> > >>>> > >>>> -- > >>>> -- > >>>> Cyril Mory, Post-doc > >>>> CREATIS > >>>> Leon Berard cancer treatment center > >>>> 28 rue La?nnec > >>>> 69373 Lyon cedex 08 FRANCE > >>>> > >>>> Mobile: +33 6 69 46 73 79 > >>>> > >>>> > >>>> _______________________________________________ > >>>> Rtk-users mailing list > >>>> Rtk-users at public.kitware.com > >>>> http://public.kitware.com/mailman/listinfo/rtk-users > >>>> > >>> > >> > >> > >> -- > >> -- > >> Cyril Mory, Post-doc > >> CREATIS > >> Leon Berard cancer treatment center > >> 28 rue La?nnec > >> 69373 Lyon cedex 08 FRANCE > >> > >> Mobile: +33 6 69 46 73 79 > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lomahu at gmail.com Thu Sep 18 22:53:45 2014 From: lomahu at gmail.com (Howard) Date: Thu, 18 Sep 2014 22:53:45 -0400 Subject: [Rtk-users] bright circle on the reconstructed image In-Reply-To: References: <541A93E7.7010301@creatis.insa-lyon.fr> <541AF369.9090403@creatis.insa-lyon.fr> Message-ID: Hi Simon, It appears I have to apologize again and take back the question about the SART reconstruction. I re-ran on the big data set (644 projections). This time no memory issue and SART worked well. For some reason it did not work on the small set initially. I should have run more tests before posting here. Sorry about the noise and thanks a lot for looking into the "issues". -howard On Thu, Sep 18, 2014 at 5:47 PM, Howard wrote: > Hi Simon, > > I apologize for the confusion about the dataset. Actually I did not use > the same dataset. > The reason is that the set I used for rtkfdk test had 644 projections and > with it rtksart > crashed because of memory (I only allocated 3GB memory to Virtualbox from > my window7). > So for the SART test I changed to a small projection set (366 projections) > where the object is > a cube with dimension of 5cm x 5cm x 5cm. That's why I chose a smaller > reconstruction > size 128*2. With the same dataset when I ran rtkfdk I got very good > reconstruction. > > -howard > > On Thu, Sep 18, 2014 at 4:41 PM, Simon Rit > wrote: > >> Hi Howard, >> Assuming you're using the same dataset as the one you used for the >> rtkfdk test, you have decreased its size. For example, x was 2*256 mm >> with rtkfdk and it is now 128*2. On the slice you sent, we could see >> that a part of the phantom on the right was missing so you should keep >> the same size except for this side that should be larger, certainly >> not reduce the size. >> For the display, I would suggest to use the same window/level as for >> your FDK reconstruction. The two reconstruction algorithms reconstruct >> the same average intensities, only the texture is different. >> Good luck, >> Simon >> >> On Thu, Sep 18, 2014 at 7:03 PM, Howard wrote: >> > Hi Cyril, >> > >> > I am testing SART reconstruction according to what you described, >> specifying >> > dimension, spacing and origin: >> > >> > rtksart \ >> > --geometry varianGeometry \ >> > --regexp .*.hnd \ >> > --path ../Scan0 \ >> > --output sart_rec.mha \ >> > --verbose \ >> > --spacing 2.0\ >> > --dimension 128,100,128 \ >> > --origin -127.5,-99,-127.5 >> > >> > but the reconstruction gave a plain image with no object/contrast. I >> checked >> > the grayscale values on the reconstructed images and did see they ranged >> > from -1.78 to 3 (this may not be precise but give you some idea). I >> tried to >> > adjust window level but couldn't see any contrast. I must miss something >> > here. Please advise. Thanks! >> > >> > -howard >> > >> > On Thu, Sep 18, 2014 at 10:59 AM, Cyril Mory >> > wrote: >> >> >> >> Howard, >> >> >> >> For SART reconstructions, you do not need padding, and you can't do >> Hann >> >> windowing because no ramp filtering is applied. SART usually outputs >> >> smoother images, so you probably will not need this denoising trick >> anyway. >> >> However, you should be careful about one thing : your object has to be >> >> fully contained in the reconstructed volume, or you will observe >> important >> >> border effects. Use the --dimension, --spacing and --origin options to >> >> ensure this. >> >> >> >> All the best, >> >> Cyril >> >> >> >> >> >> On 09/18/2014 04:47 PM, Howard wrote: >> >> >> >> Thanks very much, Cyril & Simon. Now the fdk reconstruction is working >> >> beautifully. Jus another quick question: for rtksart executable, are we >> >> still able to do padding and hanning window trick as well? >> >> >> >> On Thu, Sep 18, 2014 at 9:47 AM, Simon Rit >> >> wrote: >> >>> >> >>> Hi, >> >>> I fully agree with Cyril. Something else : you might want to mask out >> >>> what is outside the field-of-view using the rtkfieldofview >> executable. Your >> >>> ring corresponds to that border. See an example here: >> >>> http://wiki.openrtk.org/index.php/RTK/Examples/VarianReconstruction >> >>> Simon >> >>> >> >>> On Thu, Sep 18, 2014 at 10:12 AM, Cyril Mory >> >>> wrote: >> >>>> >> >>>> Hi Howard, >> >>>> >> >>>> The bright ring artifact is typically caused by high-pass filtering >> (the >> >>>> ramp filter used in FDK) of truncated projection data (when >> projections have >> >>>> non-zero values on the sides, the edge of the projection makes a >> sharp >> >>>> transition to zero). A classical answer to this problem is to pad the >> >>>> projections, for example with values starting from the values on the >> side >> >>>> and slowly decreasing to zero. >> >>>> >> >>>> rtkfdk can do this padding for you. Just add "--pad 0.1" to your >> options >> >>>> (or more than 0.1 if it isn't enough). >> >>>> Also, I noticed that your reconstructed image seems quite noisy. You >> >>>> might want to use a Hann windowing of the ramp filter to reduce the >> noise >> >>>> amplification effect of high-pass filtering. You can do that by >> adding >> >>>> "--hann 0.5" to your options. Note that the argument is a cut-off >> frequency, >> >>>> so smaller values mean more smoothing. >> >>>> >> >>>> Best regards, >> >>>> Cyril >> >>>> >> >>>> >> >>>> On 09/18/2014 05:21 AM, Howard wrote: >> >>>> >> >>>> Hi, >> >>>> >> >>>> I use rtkfdk to reconstruct varian cbct images following the example >> on >> >>>> rtk wiki page. The projections were obtained with half fan mode >> because it >> >>>> is an abdominal region with the patient lateral x AP dimension of >> 550x550. >> >>>> The reconstructed cbct images have a big bright circle around >> >>>> the image. Please see the image: >> >>>> http://expirebox.com/download/2f55c9d8f0bc83138b954d2fec08e78c.html >> >>>> >> >>>> I am using Ubuntu Linux box to reconstruct. Two sequential commands >> were >> >>>> used: >> >>>> >> >>>> ./rtkvarianobigeometry --xml_file ProjectionInfo.xml --path Scan0/ >> >>>> --regexp Proj_.*.hnd -o varianGeometry >> >>>> and >> >>>> >> >>>> rtkfdk \ >> >>>> --geometry varianGeometry \ >> >>>> --regexp .*.hnd \ >> >>>> --path ../Scan0 \ >> >>>> --output rec.mha \ >> >>>> --verbose \ >> >>>> --spacing 2.0,2.0,2.0 \ >> >>>> --dimension 256,100,256 \ >> >>>> The projections are stored in the standard varian format: Scan0 and >> >>>> ProjectionInfo.xml with 644 projection images. I assume that rtkfdk >> handled >> >>>> the half fan geometry properly. What did I do wrong then? Many >> thanks! >> >>>> >> >>>> -howard >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> Rtk-users mailing list >> >>>> Rtk-users at public.kitware.com >> >>>> http://public.kitware.com/mailman/listinfo/rtk-users >> >>>> >> >>>> >> >>>> -- >> >>>> -- >> >>>> Cyril Mory, Post-doc >> >>>> CREATIS >> >>>> Leon Berard cancer treatment center >> >>>> 28 rue La?nnec >> >>>> 69373 Lyon cedex 08 FRANCE >> >>>> >> >>>> Mobile: +33 6 69 46 73 79 >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> Rtk-users mailing list >> >>>> Rtk-users at public.kitware.com >> >>>> http://public.kitware.com/mailman/listinfo/rtk-users >> >>>> >> >>> >> >> >> >> >> >> -- >> >> -- >> >> Cyril Mory, Post-doc >> >> CREATIS >> >> Leon Berard cancer treatment center >> >> 28 rue La?nnec >> >> 69373 Lyon cedex 08 FRANCE >> >> >> >> Mobile: +33 6 69 46 73 79 >> > >> > >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ucabba1 at ucl.ac.uk Fri Sep 19 07:04:49 2014 From: ucabba1 at ucl.ac.uk (Ben Champion) Date: Fri, 19 Sep 2014 12:04:49 +0100 Subject: [Rtk-users] Would you like RTK trainings ? In-Reply-To: <541AA5CA.9050306@creatis.insa-lyon.fr> References: <541AA5CA.9050306@creatis.insa-lyon.fr> Message-ID: <541C0DD1.4070203@ucl.ac.uk> Hi Cyril, Having used RTK (and ITK) for approximately 1 year now, I have learnt mainly by trial and error, and by reading the source code and wiki examples. (Aside: many thanks to the RTK community for these!) Nevertheless, I think I could benefit from some kind of RTK training for my future work. The kinds of topics that would be most interesting to me are: - theory/use of reconstruction methods other than FDK (e.g. SART, 4D ROOSTER, ...) - motion compensated reconstruction - compressed sensing in tomography - extending RTK (and contributing back to the community) That said, I would not be averse to at least some discussion of "basics of tomography", "starting to use RTK with your own data", and "practical issues in circular CBCT" and in fact it could help fill some gaps in my knowledge. Best wishes, Ben -- Doctoral Student (MRes/EngD) Centre for Medical Image Computing University College London Room 3.01 Engineering Front Building Torrington Place LONDON WC1E 7JE On 18/09/14 10:28, Cyril Mory wrote: > Hi RTK users, > > A recent question on the mailing list by Louie triggered a > conversation between us. Louie asked whether there exists some sort of > training or workshop on RTK. In a nutshell, the answer is "No, not > yet, but why not talk about it ?". > > So I'd like to start some sort of "poll" to gather the requests you > might have on this topic: > Do you need / want / would like a training on RTK ? > If so, can you be more specific on what you would like to learn ? > (basics of tomography, how to start using RTK on your data, practical > issues in circular cone beam CT, motion compensated reconstruction, > compressed sensing in tomography, ITK programming, ... this is not an > exhaustive list) > > I think this is enough questions for the time being. The rest will > depend on your answers. > > Looking forward to reading you, > From lomahu at gmail.com Fri Sep 19 09:47:58 2014 From: lomahu at gmail.com (Howard) Date: Fri, 19 Sep 2014 09:47:58 -0400 Subject: [Rtk-users] Would you like RTK trainings ? In-Reply-To: <541C0DD1.4070203@ucl.ac.uk> References: <541AA5CA.9050306@creatis.insa-lyon.fr> <541C0DD1.4070203@ucl.ac.uk> Message-ID: Hi Cyril, It would be extremely helpful to have an RTK training. As Ben listed, I have similar interests. The topics I am very interested in are the following: 1. Basic principles of reconstruction with FDK and SART 2. Coding framework in RTK 3. Practical examples using iterative reconstruction technique 4. Compressed sensing applications in reconstruction 5. Practical issues in reconstruction specially CBCT reconstruction. Thanks! -howard On Fri, Sep 19, 2014 at 7:04 AM, Ben Champion wrote: > Hi Cyril, > > Having used RTK (and ITK) for approximately 1 year now, I have learnt > mainly by trial and error, and by reading the source code and wiki > examples. (Aside: many thanks to the RTK community for these!) > > Nevertheless, I think I could benefit from some kind of RTK training for > my future work. The kinds of topics that would be most interesting to me > are: > > - theory/use of reconstruction methods other than FDK (e.g. SART, 4D > ROOSTER, ...) > - motion compensated reconstruction > - compressed sensing in tomography > - extending RTK (and contributing back to the community) > > That said, I would not be averse to at least some discussion of "basics of > tomography", "starting to use RTK with your own data", and "practical > issues in circular CBCT" and in fact it could help fill some gaps in my > knowledge. > > Best wishes, > > Ben > -- > Doctoral Student (MRes/EngD) > Centre for Medical Image Computing > University College London > Room 3.01 Engineering Front Building > Torrington Place > LONDON > WC1E 7JE > > > > On 18/09/14 10:28, Cyril Mory wrote: > >> Hi RTK users, >> >> A recent question on the mailing list by Louie triggered a conversation >> between us. Louie asked whether there exists some sort of training or >> workshop on RTK. In a nutshell, the answer is "No, not yet, but why not >> talk about it ?". >> >> So I'd like to start some sort of "poll" to gather the requests you might >> have on this topic: >> Do you need / want / would like a training on RTK ? >> If so, can you be more specific on what you would like to learn ? (basics >> of tomography, how to start using RTK on your data, practical issues in >> circular cone beam CT, motion compensated reconstruction, compressed >> sensing in tomography, ITK programming, ... this is not an exhaustive list) >> >> I think this is enough questions for the time being. The rest will depend >> on your answers. >> >> Looking forward to reading you, >> >> > _______________________________________________ > 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: