From agomez at fing.edu.uy Mon Jun 1 15:19:19 2009 From: agomez at fing.edu.uy (=?ISO-8859-1?Q?Alvaro_G=F3mez?=) Date: Mon, 01 Jun 2009 16:19:19 -0300 Subject: [IGSTK-Users] Augmented reality Message-ID: <4A2429B7.1020802@fing.edu.uy> Hi: For an augmented reality application we need to mix video and some spatial objects. We are taking the following approach that we want to validate with you: a) A modified View class with more than one renderer. a.1) We are adding a second renderer(background_renderer) to the View. The background_renderer is used to render the video. The m_Renderer and the background_renderer are put in two different layers of the m_RenderWindow (layers 1 and 0 respectively) a.2) The View class has a method to add an object representation to the background_renderer in the same way as the AddObjectProcessing does with the m_Renderer a.3) The RefreshRender is modified to iterate and request the update also on the background objects (the objects added to the background_renderer with a.2) b) For the video we are using Imager-ImagerTool and VideoFrameSpatialObject-VideoFrameRepresentation as in the VideoFrameGrabberAndViewerWebcamWin example. c) In the AR application, the VideoFrameRepresentation is added to the background renderer of the View. d) The video is then rendered using a parallel projection (camera of the background_renderer) and the objects in the foreground are rendered with a camera (camera of the foreground m_Renderer) with parameters that match the real camera. Probably there is a better way to do the same thing or a way without having to modify the View class. Please let us know your opinion. Thanks. Alvaro From jdmcivor at interchange.ubc.ca Wed Jun 10 17:26:46 2009 From: jdmcivor at interchange.ubc.ca (Jake McIvor) Date: Wed, 10 Jun 2009 14:26:46 -0700 Subject: [IGSTK-Users] Transform Data Export Message-ID: Hey, I am developing a drill guidance application and would like to export some data for offline analysis. That data would consist of timestamps and transforms from several tracker tools or spatial objects. Ideally, I would like to start and stop data export from my application. What is the best way of implementing this? Should I be looking at using an observer, a logger, openigtlink..? Cheers, Jake From andinet.enqu at kitware.com Thu Jun 11 10:36:33 2009 From: andinet.enqu at kitware.com (Andinet Enquobahrie) Date: Thu, 11 Jun 2009 10:36:33 -0400 Subject: [IGSTK-Users] Transform Data Export In-Reply-To: References: Message-ID: <4717fcd60906110736g12e9e029od7a4619a833f0700@mail.gmail.com> Jake- One option is setting up observers to tracker tool transform events and then write out the transforms to a file. Take a look at the tracker tool tests to get insight on how to set up transform event observers Andinet On Wed, Jun 10, 2009 at 5:26 PM, Jake McIvor wrote: > Hey, > > I am developing a drill guidance application and would like to export > some data for offline analysis. ?That data would consist of timestamps > and transforms from several tracker tools or spatial objects. > Ideally, I would like to start and stop data export from my > application. ?What is the best way of implementing this? ?Should I be > looking at using an observer, a logger, openigtlink..? > > Cheers, > > Jake > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users > From zivy at isis.imac.georgetown.edu Thu Jun 11 10:56:31 2009 From: zivy at isis.imac.georgetown.edu (Ziv Yaniv) Date: Thu, 11 Jun 2009 10:56:31 -0400 Subject: [IGSTK-Users] Transform Data Export In-Reply-To: <4717fcd60906110736g12e9e029od7a4619a833f0700@mail.gmail.com> References: <4717fcd60906110736g12e9e029od7a4619a833f0700@mail.gmail.com> Message-ID: <4A311B1F.9070508@isis.imac.georgetown.edu> Hi Jake, You should take a look at the OpenIGTLinkTrackerBroadcasting example. You can easily modify it to do what you want (writing to file instead of to socket). It already works for multiple tools, with or without a reference frame. Please read the IGSTK book for the full details. All you need to do is modify the ToolUpdatedObserver class found in OpenIGTLinkTrackingBroadcaster.h. Instead of the m_Sockets and m_PositionMessage members you will have an ostream member which you write the data to, this will happen in the Execute method which you need to slightly modify. regards Ziv On Wed, Jun 10, 2009 at 5:26 PM, Jake McIvor wrote: > Hey, > > I am developing a drill guidance application and would like to export > some data for offline analysis. That data would consist of timestamps > and transforms from several tracker tools or spatial objects. > Ideally, I would like to start and stop data export from my > application. What is the best way of implementing this? Should I be > looking at using an observer, a logger, openigtlink..? > > Cheers, > > Jake -- Ziv Yaniv, PhD., Research Assistant Professor Imaging Science and Information Systems (ISIS) Center Department of Radiology Georgetown University Medical Center 2115 Wisconsin Avenue, Suite 603 Washington, DC, 20007, Phone: +1-202-687-7286 Fax: +1-202-784-3479 email: zivy at isis.georgetown.edu web: http://isiswiki.georgetown.edu/zivy/ From jdmcivor at interchange.ubc.ca Thu Jun 11 14:54:35 2009 From: jdmcivor at interchange.ubc.ca (Jake McIvor) Date: Thu, 11 Jun 2009 11:54:35 -0700 Subject: [IGSTK-Users] Transform Data Export In-Reply-To: <832_1244732196_1244732196_4A311B1F.9070508@isis.imac.georgetown.edu> References: <4717fcd60906110736g12e9e029od7a4619a833f0700@mail.gmail.com> <832_1244732196_1244732196_4A311B1F.9070508@isis.imac.georgetown.edu> Message-ID: Thanks for the guidance. I have tried using transform observers as suggested by Andinet and they work well for taking single snapshots. I will try to implement the modification of the OpenIGTLink class and let you know how it goes. I had started looking into the OpenIGTLink examples before, but had some difficulty building the sandbox. The SVN checkout of OpenIGTLink that I got was missing several files and causing problems compiling igstkTersonImager. I am not that familiar with using SVN, so it may be the settings I chose. I found the missing files here: http://svn.na-mic.org/NAMICSandBox/trunk/OpenIGTLink/ Thanks again, Jake -- Jake McIvor MASc. Candidate, Biomedical Engineering University of British Columbia On Thu, Jun 11, 2009 at 7:56 AM, Ziv Yaniv wrote: > Hi Jake, > > You should take a look at the OpenIGTLinkTrackerBroadcasting example. You > can easily modify it to do what you want (writing to file instead of to > socket). It already works for multiple tools, with or without a reference > frame. Please read the IGSTK book for the full details. > > All you need to do is modify the ToolUpdatedObserver class found in > OpenIGTLinkTrackingBroadcaster.h. Instead of the m_Sockets and > m_PositionMessage members you will have an ostream member which you write > the data to, this will happen in the Execute method which you need to > slightly modify. > > ? ? ? ? ? ?regards > ? ? ? ? ? ? ? ?Ziv > > On Wed, Jun 10, 2009 at 5:26 PM, Jake McIvor > wrote: >> >> Hey, >> >> I am developing a drill guidance application and would like to export >> some data for offline analysis. ?That data would consist of timestamps >> and transforms from several tracker tools or spatial objects. >> Ideally, I would like to start and stop data export from my >> application. ?What is the best way of implementing this? ?Should I be >> looking at using an observer, a logger, openigtlink..? >> >> Cheers, >> >> Jake > > -- > Ziv Yaniv, PhD., Research Assistant Professor > Imaging Science and Information Systems (ISIS) Center > Department of Radiology > Georgetown University Medical Center > 2115 Wisconsin Avenue, Suite 603 > Washington, DC, 20007, > > Phone: +1-202-687-7286 > Fax: +1-202-784-3479 > email: zivy at isis.georgetown.edu > web: http://isiswiki.georgetown.edu/zivy/ > From andinet.enqu at kitware.com Fri Jun 12 20:54:52 2009 From: andinet.enqu at kitware.com (Andinet Enquobahrie) Date: Fri, 12 Jun 2009 20:54:52 -0400 Subject: [IGSTK-Users] Transform Data Export In-Reply-To: References: <4717fcd60906110736g12e9e029od7a4619a833f0700@mail.gmail.com> <832_1244732196_1244732196_4A311B1F.9070508@isis.imac.georgetown.edu> Message-ID: <4717fcd60906121754i2160a156x119cad2673e4021e@mail.gmail.com> Jake- The OpenIGTLink repository that we use is http://svn.na-mic.org/NAMICSandBox/trunk/OpenIGTLink/ Download the the source tree and build it using cmake. By the way, we have copied OpenIGTLink related IGSTK classes and example from the sandbox to the main CVS in preparation for IGSTK 4.2 release. So, you might want to focus on the main CVS not the Sandbox. Andinet On Thu, Jun 11, 2009 at 2:54 PM, Jake McIvor wrote: > Thanks for the guidance. ?I have tried using transform observers as > suggested by Andinet and they work well for taking single snapshots. > I will try to implement the modification of the OpenIGTLink class and > let you know how it goes. > > I had started looking into the OpenIGTLink examples before, but had > some difficulty building the sandbox. ?The SVN checkout of OpenIGTLink > that I got was missing several files and causing problems compiling > igstkTersonImager. ?I am not that familiar with using SVN, so it may > be the settings I chose. ?I found the missing files here: > http://svn.na-mic.org/NAMICSandBox/trunk/OpenIGTLink/ > > Thanks again, > > Jake > > -- > Jake McIvor > MASc. Candidate, Biomedical Engineering > University of British Columbia > > On Thu, Jun 11, 2009 at 7:56 AM, Ziv Yaniv wrote: >> Hi Jake, >> >> You should take a look at the OpenIGTLinkTrackerBroadcasting example. You >> can easily modify it to do what you want (writing to file instead of to >> socket). It already works for multiple tools, with or without a reference >> frame. Please read the IGSTK book for the full details. >> >> All you need to do is modify the ToolUpdatedObserver class found in >> OpenIGTLinkTrackingBroadcaster.h. Instead of the m_Sockets and >> m_PositionMessage members you will have an ostream member which you write >> the data to, this will happen in the Execute method which you need to >> slightly modify. >> >> ? ? ? ? ? ?regards >> ? ? ? ? ? ? ? ?Ziv >> >> On Wed, Jun 10, 2009 at 5:26 PM, Jake McIvor >> wrote: >>> >>> Hey, >>> >>> I am developing a drill guidance application and would like to export >>> some data for offline analysis. ?That data would consist of timestamps >>> and transforms from several tracker tools or spatial objects. >>> Ideally, I would like to start and stop data export from my >>> application. ?What is the best way of implementing this? ?Should I be >>> looking at using an observer, a logger, openigtlink..? >>> >>> Cheers, >>> >>> Jake >> >> -- >> Ziv Yaniv, PhD., Research Assistant Professor >> Imaging Science and Information Systems (ISIS) Center >> Department of Radiology >> Georgetown University Medical Center >> 2115 Wisconsin Avenue, Suite 603 >> Washington, DC, 20007, >> >> Phone: +1-202-687-7286 >> Fax: +1-202-784-3479 >> email: zivy at isis.georgetown.edu >> web: http://isiswiki.georgetown.edu/zivy/ >> > From acturner01 at gmail.com Sun Jun 14 14:19:34 2009 From: acturner01 at gmail.com (Tony Turner) Date: Sun, 14 Jun 2009 12:19:34 -0600 Subject: [IGSTK-Users] real-time intra-operative 3D ultrasound research project Message-ID: <4954c13e0906141119w745bc636pa1888aa1fc7e25e3@mail.gmail.com> Greetings; I am looking for a bit of guidance regarding 3D ultrasound support within IGSTK/VTK/VTKEdge/ITK's open source software. Summary: Our lab requires 3D ultrasound for an IGSTK based research project we're working on. I have a budget for purchasing the US equipment, and developer time alloted to the US specific tasks. My questions are these: 1) Can anyone point me in the direction of someone who already produces the US equipment as described below? 2) Does IGSTK/VTK/ITK/VTKEdge already contain the base US functionality to allow me to build a demo of : ( in ~ 2 man months additional dev effort ): a) a real-time 3D dataset from the US hardware from item #1 ? ( assume US hardware calibration is a separate project ) b) 2D orthogonal slices from the 3D dataset from item #2a ? ( simple real-time display, no registering with CT/MR, etc. ) c) simple 4-up display, 3 orthogonal 2D slices, & one 3D image, all real-time ( I'm assuming we'd use VTKEdge, and CUDA here..) 3) For the parts of item #2 above that are 'yes', can you point me in the direction of others who are already active in these areas, so I might collaborate with them, as the project evolves? Details: The sofware/hardware platform for the project is: IGSTK / VTK / VTKEdge / ITK / 3DSlicer, open source Desktop CPU AMD Athlon X2 4200 Dual core Ubuntu 9.04 ( latest greatest ) NVIDIA 9500 GT GPU ( CUDA compliant ). -------------- next part -------------- An HTML attachment was scrubbed... URL: From cleary at isis.georgetown.edu Mon Jun 15 14:35:59 2009 From: cleary at isis.georgetown.edu (Kevin Cleary) Date: Mon, 15 Jun 2009 14:35:59 -0400 Subject: [IGSTK-Users] real-time intra-operative 3D ultrasound research project In-Reply-To: <4954c13e0906141119w745bc636pa1888aa1fc7e25e3@mail.gmail.com> References: <4954c13e0906141119w745bc636pa1888aa1fc7e25e3@mail.gmail.com> Message-ID: <015c01c9ede8$20cd70a0$626851e0$@georgetown.edu> Tony I am the principal investigator for the IGSTK project which is funded by NIH, so I am probably least qualified to answer your questions, but let me start the discussion: 1) We talked about your email about our lab meeting at Georgetown this morning 2) If you have experienced VTK/ITK developers your schedule may be realistic 3) We have built some of the functionality you mention but it was not all put in our release a. However I will send you separately a paper we wrote for SPIE Meidcal Imaging 2009 that shows some of this - I cannot attach it here or it will bounce I think 4) As for 3D ultrasound I am not sure who the best vendor is - we use a 2D unit from Terason 5) For more details it would be better to talk by phone 6) Can you also tell us what lab you are with and what your infrastructure is if you can share those details? Feel free to call me directly. Kevin Cleary Georgetown University 202 687 8253 From: igstk-users-bounces at public.kitware.com [mailto:igstk-users-bounces at public.kitware.com] On Behalf Of Tony Turner Sent: Sunday, June 14, 2009 2:20 PM To: igstk-users at public.kitware.com Subject: [IGSTK-Users] real-time intra-operative 3D ultrasound research project Greetings; I am looking for a bit of guidance regarding 3D ultrasound support within IGSTK/VTK/VTKEdge/ITK's open source software. Summary: Our lab requires 3D ultrasound for an IGSTK based research project we're working on. I have a budget for purchasing the US equipment, and developer time alloted to the US specific tasks. My questions are these: 1) Can anyone point me in the direction of someone who already produces the US equipment as described below? 2) Does IGSTK/VTK/ITK/VTKEdge already contain the base US functionality to allow me to build a demo of : ( in ~ 2 man months additional dev effort ): a) a real-time 3D dataset from the US hardware from item #1 ? ( assume US hardware calibration is a separate project ) b) 2D orthogonal slices from the 3D dataset from item #2a ? ( simple real-time display, no registering with CT/MR, etc. ) c) simple 4-up display, 3 orthogonal 2D slices, & one 3D image, all real-time ( I'm assuming we'd use VTKEdge, and CUDA here..) 3) For the parts of item #2 above that are 'yes', can you point me in the direction of others who are already active in these areas, so I might collaborate with them, as the project evolves? Details: The sofware/hardware platform for the project is: IGSTK / VTK / VTKEdge / ITK / 3DSlicer, open source Desktop CPU AMD Athlon X2 4200 Dual core Ubuntu 9.04 ( latest greatest ) NVIDIA 9500 GT GPU ( CUDA compliant ). -------------- next part -------------- An HTML attachment was scrubbed... URL: From taru.seth at gmail.com Thu Jun 18 15:38:10 2009 From: taru.seth at gmail.com (taruna seth) Date: Thu, 18 Jun 2009 15:38:10 -0400 Subject: [IGSTK-Users] Problem with igstkLoadedEventTransductionMacro Message-ID: <1828b2f50906181238x4f25b8cy1988f6f74c5e08b7@mail.gmail.com> Hello, I am working on an IGSTK based application using QT for the GUI. I am trying to use the igstkLoadedEventTransductionMacro for setting the Axial, Sagittal bounds but getting an error message "RegisterObservedObject not a member of class". My QT GUI main class can't be inheritied from igstk::Object. All the IGSTK examples I could refer to are with FLTK wherein the GUI class is derived from the igstk::Object class. Is there any way to use this macro with QT? I will really appreciate your help regarding this. Thanks, Taru -------------- next part -------------- An HTML attachment was scrubbed... URL: From taru.seth at gmail.com Fri Jun 19 12:49:43 2009 From: taru.seth at gmail.com (taruna seth) Date: Fri, 19 Jun 2009 12:49:43 -0400 Subject: [IGSTK-Users] Problem with igstkLoadedEventTransductionMacro Message-ID: <1828b2f50906190949q13e2dc1bpdf463939680baba8@mail.gmail.com> Hi, I fixed the problem. - Taru -------------- next part -------------- An HTML attachment was scrubbed... URL: From andinet.enqu at kitware.com Sat Jun 20 21:32:17 2009 From: andinet.enqu at kitware.com (Andinet Enquobahrie) Date: Sat, 20 Jun 2009 21:32:17 -0400 Subject: [IGSTK-Users] IGSTK 4.2 released Message-ID: <4717fcd60906201832h1d18b1a2p7ecd232267cb20c6@mail.gmail.com> On the behalf of the IGSTK developer's team, I am pleased to announce the release of IGSTK 4.2 You can download this release from the Download page: http://public.kitware.com/IGSTKWIKI/index.php/Download_IGSTK#IGSTK_4.2 New features 1. Video handling component (VideoImager) 2. Integrated framework for tracking data acquisition and pivot calibration for surgical tools 3. OpenIGTLink support 4. Scene Graph visualization framework 5. Several new examples demonstrating MicronTracker , OpenIGTLink support, video imager components and other tools. 6. Miscellaneous bug fixes Building instructions: http://public.kitware.com/IGSTKWIKI/index.php/How_to_build_IGSTK If you have any questions, please let us know. Best wishes, -Andinet -- ========================================================== Andinet A. Enquobahrie, PhD R&D Engineer Kitware Inc. 28 Corporate Drive Clifton Park, NY 12065-8662 Phone: 518-371-3971 x124 www.kitware.com From jdmcivor at interchange.ubc.ca Mon Jun 22 19:28:43 2009 From: jdmcivor at interchange.ubc.ca (Jake McIvor) Date: Mon, 22 Jun 2009 16:28:43 -0700 Subject: [IGSTK-Users] Transform Data Export In-Reply-To: <7441_1244854559_1244854559_4717fcd60906121754i2160a156x119cad2673e4021e@mail.gmail.com> References: <4717fcd60906110736g12e9e029od7a4619a833f0700@mail.gmail.com> <832_1244732196_1244732196_4A311B1F.9070508@isis.imac.georgetown.edu> <7441_1244854559_1244854559_4717fcd60906121754i2160a156x119cad2673e4021e@mail.gmail.com> Message-ID: Thanks for the assistance. I have successfully used the OpenIGTLink examples to send transforms to Slicer on another computer (cool!), and modified the broadcaster example to export data to a file. I still have to do a little debugging as it seems to miss one or two transforms occasionally compared to what the serial log says. Jake On Fri, Jun 12, 2009 at 5:54 PM, Andinet Enquobahrie wrote: > Jake- > > The OpenIGTLink repository that we use is > > http://svn.na-mic.org/NAMICSandBox/trunk/OpenIGTLink/ > > Download the the source tree and build it using cmake. > > By the way, we have copied OpenIGTLink related IGSTK classes and > example from the sandbox to the main CVS in preparation for IGSTK 4.2 > release. So, you might want to focus on the main CVS not the Sandbox. > > Andinet > > > > > > On Thu, Jun 11, 2009 at 2:54 PM, Jake McIvor wrote: >> Thanks for the guidance. ?I have tried using transform observers as >> suggested by Andinet and they work well for taking single snapshots. >> I will try to implement the modification of the OpenIGTLink class and >> let you know how it goes. >> >> I had started looking into the OpenIGTLink examples before, but had >> some difficulty building the sandbox. ?The SVN checkout of OpenIGTLink >> that I got was missing several files and causing problems compiling >> igstkTersonImager. ?I am not that familiar with using SVN, so it may >> be the settings I chose. ?I found the missing files here: >> http://svn.na-mic.org/NAMICSandBox/trunk/OpenIGTLink/ >> >> Thanks again, >> >> Jake >> >> -- >> Jake McIvor >> MASc. Candidate, Biomedical Engineering >> University of British Columbia >> >> On Thu, Jun 11, 2009 at 7:56 AM, Ziv Yaniv wrote: >>> Hi Jake, >>> >>> You should take a look at the OpenIGTLinkTrackerBroadcasting example. You >>> can easily modify it to do what you want (writing to file instead of to >>> socket). It already works for multiple tools, with or without a reference >>> frame. Please read the IGSTK book for the full details. >>> >>> All you need to do is modify the ToolUpdatedObserver class found in >>> OpenIGTLinkTrackingBroadcaster.h. Instead of the m_Sockets and >>> m_PositionMessage members you will have an ostream member which you write >>> the data to, this will happen in the Execute method which you need to >>> slightly modify. >>> >>> ? ? ? ? ? ?regards >>> ? ? ? ? ? ? ? ?Ziv >>> >>> On Wed, Jun 10, 2009 at 5:26 PM, Jake McIvor >>> wrote: >>>> >>>> Hey, >>>> >>>> I am developing a drill guidance application and would like to export >>>> some data for offline analysis. ?That data would consist of timestamps >>>> and transforms from several tracker tools or spatial objects. >>>> Ideally, I would like to start and stop data export from my >>>> application. ?What is the best way of implementing this? ?Should I be >>>> looking at using an observer, a logger, openigtlink..? >>>> >>>> Cheers, >>>> >>>> Jake >>> >>> -- >>> Ziv Yaniv, PhD., Research Assistant Professor >>> Imaging Science and Information Systems (ISIS) Center >>> Department of Radiology >>> Georgetown University Medical Center >>> 2115 Wisconsin Avenue, Suite 603 >>> Washington, DC, 20007, >>> >>> Phone: +1-202-687-7286 >>> Fax: +1-202-784-3479 >>> email: zivy at isis.georgetown.edu >>> web: http://isiswiki.georgetown.edu/zivy/ >>> >> > From yk119 at hotmail.com Mon Jun 22 22:59:50 2009 From: yk119 at hotmail.com (kai yang) Date: Tue, 23 Jun 2009 10:59:50 +0800 Subject: [IGSTK-Users] IGSTK Build Failure Message-ID: Hello, I am building a surgical navigation system from IGSTK for liver tumor surgery. After I had downloaded, configured with CMake and built in Visual Studio 8 2005 for ITK, VTK and FLTK, I started to configure IGSTK in CMake. When I set both the source and binary directories and pressed the "configure" button for IGSTK in CMake, it cames up an error message " Warning:CMake is forcing CMAKE_CXX_COMPLILER to "C:/Programe File/Microsoft Visual Studio 8/VC/bin/cl.exe" to match that imported from ITK. This is required because C++ projects must use the same compliler. If this message appears for more than one imported project, you have conflicting C++ compilers and will to re-build one of those projects. Was set to cl" So could you help me to analysis the reseason for it and how to solve it? Since I am a surgeon without any programming experience, could you explain it in a more detailed way. Thank you Kevin _________________________________________________________________ Join the Fantasy Football club and win cash prizes here! http://fantasyfootball.sg.msn.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From cleary at isis.georgetown.edu Tue Jun 23 04:51:29 2009 From: cleary at isis.georgetown.edu (Kevin Cleary) Date: Tue, 23 Jun 2009 04:51:29 -0400 Subject: [IGSTK-Users] IGSTK Build Failure In-Reply-To: References: Message-ID: <001601c9f3df$cdb6b6d0$69242470$@georgetown.edu> Hello I will ask our technical experts to answer your question, but I would also be interested in hearing some more details about your application. We have developed a system for abdominal biopsy including liver biopsy and would be happy to share our experience. Can you tell us your specific clinical goal and what institution you are with? It may take a few days for us to answer since we are at the Computer Aided Radiology and Surgery Conference in Berlin, where we are hosting a user group meeting tonight. Best regards Kevin Cleary Principal investigator for IGSTK project ------------------------------------------------------------------ Kevin Cleary, Ph.D. Work phone: 202-687-8253 Professor Work fax: 202-784-3479 Director Pager: 202-405-2367 Imaging Science and Information Systems (ISIS) Center Department of Radiology Georgetown University Medical Center Cell phone: 202-294-3409 2115 Wisconsin Avenue, Suite 603 Home phone: 301-299-0788 Washington, DC, 20007 Home fax: 301-299-0789 ISIS center: www.isis.georgetown.edu Email: cleary at georgetown.edu ------------------------------------------------------------------- From: igstk-users-bounces at public.kitware.com [mailto:igstk-users-bounces at public.kitware.com] On Behalf Of kai yang Sent: Monday, June 22, 2009 11:00 PM To: igstk-users at public.kitware.com Subject: [IGSTK-Users] IGSTK Build Failure Hello, I am building a surgical navigation system from IGSTK for liver tumor surgery. After I had downloaded, configured with CMake and built in Visual Studio 8 2005 for ITK, VTK and FLTK, I started to configure IGSTK in CMake. When I set both the source and binary directories and pressed the "configure" button for IGSTK in CMake, it cames up an error message " Warning:CMake is forcing CMAKE_CXX_COMPLILER to "C:/Programe File/Microsoft Visual Studio 8/VC/bin/cl.exe" to match that imported from ITK. This is required because C++ projects must use the same compliler. If this message appears for more than one imported project, you have conflicting C++ compilers and will to re-build one of those projects. Was set to cl" So could you help me to analysis the reseason for it and how to solve it? Since I am a surgeon without any programming experience, could you explain it in a more detailed way. Thank you Kevin _____ Chat online and in real-time with friends and family! Windows Live Messenger Checked by AVG - www.avg.com Version: 8.5.374 / Virus Database: 270.12.87/2195 - Release Date: 06/22/09 06:54:00 -------------- next part -------------- An HTML attachment was scrubbed... URL: From agomez at fing.edu.uy Tue Jun 23 13:00:56 2009 From: agomez at fing.edu.uy (=?ISO-8859-1?Q?Alvaro_G=F3mez?=) Date: Tue, 23 Jun 2009 14:00:56 -0300 Subject: [IGSTK-Users] Augmented reality Message-ID: <4A410A48.5030508@fing.edu.uy> Some time ago I posted this message: http://public.kitware.com/pipermail/igstk-users/2009-June/000677.html I would like to know if the approach described in the message is correct. If there is a better way to mix video and spatial objects, please let us know how to do it. Thanks, Alvaro From cheng at isis.georgetown.edu Tue Jun 23 16:38:44 2009 From: cheng at isis.georgetown.edu (Patrick Cheng) Date: Tue, 23 Jun 2009 16:38:44 -0400 Subject: [IGSTK-Users] Augmented reality In-Reply-To: <4A410A48.5030508@fing.edu.uy> References: <4A410A48.5030508@fing.edu.uy> Message-ID: <4A413D54.6030307@isis.georgetown.edu> Hi Alvaro, Sorry for the late reply. Your email probably fall through our eyes as we were busy preparing for the latest release. I think what you are doing is feasible. My question is why do you want to use multiple renderers? If you want to overlay object with a 2D video, you can use perspective transform to project the object on to the image (igstkPerspectiveTransform). It will be better to use a single renderer so that you have the same camera and coordinate system. Also notice that in the IGSTK coordinate system frame work, we consider View as a node in the scene graph tree. That assumes we only have one renderer in the View (one coordinate system and one camera position). Take these into consideration if you want to modify View to accommodate multiple renderers. Patrick Alvaro G?mez wrote: > Some time ago I posted this message: > http://public.kitware.com/pipermail/igstk-users/2009-June/000677.html > > I would like to know if the approach described in the message is > correct. If there is a better way to mix video and spatial objects, > please let us know how to do it. > > Thanks, > Alvaro > > > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users > > From jdmcivor at interchange.ubc.ca Wed Jun 24 20:05:17 2009 From: jdmcivor at interchange.ubc.ca (Jake McIvor) Date: Wed, 24 Jun 2009 17:05:17 -0700 Subject: [IGSTK-Users] Mesh Files from CAD Message-ID: Hey, Does anyone have a utility for converting stereo lithography files (.stl) into mesh files (.msh)? Cheers, Jake -- Jake McIvor MASc Candidate, Biomedical Engineering University of British Columbia From agomez at fing.edu.uy Thu Jun 25 13:20:34 2009 From: agomez at fing.edu.uy (=?ISO-8859-1?Q?Alvaro_G=F3mez?=) Date: Thu, 25 Jun 2009 14:20:34 -0300 Subject: [IGSTK-Users] Augmented reality In-Reply-To: <4A413D54.6030307@isis.georgetown.edu> References: <4A410A48.5030508@fing.edu.uy> <4A413D54.6030307@isis.georgetown.edu> Message-ID: <4A43B1E2.20206@fing.edu.uy> The idea of using the perspective transform seems to be the better way but I still don?t see how to use it and I don?t find examples in the IGSTK or Sandbox code. Could you give me the basic idea of how to use the igstkPerspectiveTransform or point me an example? Thanks Alvaro El d?a martes, 23 de junio de 2009 05:38:44 p.m. Patrick Cheng escribi?: > Hi Alvaro, > > > > Sorry for the late reply. Your email probably fall through our eyes as > we were busy preparing for the latest release. > > > > I think what you are doing is feasible. My question is why do you want > to use multiple renderers? > > > > If you want to overlay object with a 2D video, you can use perspective > transform to project the object on to the image > (igstkPerspectiveTransform). It will be better to use a single renderer > so that you have the same camera and coordinate system. > > > > Also notice that in the IGSTK coordinate system frame work, we consider > View as a node in the scene graph tree. That assumes we only have one > renderer in the View (one coordinate system and one camera position). > Take these into consideration if you want to modify View to accommodate > multiple renderers. > > > > Patrick > From eric_lb at hotmail.com Thu Jun 25 16:59:23 2009 From: eric_lb at hotmail.com (Eric L. B.) Date: Thu, 25 Jun 2009 20:59:23 +0000 Subject: [IGSTK-Users] Tool positions or Tools Translations? In-Reply-To: References: <4835BAC3.6070306@kitware.com> Message-ID: Hi all. I'm working in a project where I need to know the positions in 3D of each marker (reflective sphere) of a passive tool. I have some problems with this. The tool is intented to be referenced to a static tool (the reference tool provided with the tracking system). The problem is that when I try to get the transformations of each marker, there is no consistent data. My design tool have three spheres(ellipses), like this: /////////////Desing Tool03 translation[0] = 0; translation[1] = 0; translation[2] = 0; rotation.Set( 0.0, 0.0, 0.0, 1.0 ); transform.SetTranslationAndRotation(translation, rotation, errorValue, validityTimeInMilliseconds ); Tool03Ellip1->RequestSetTransformAndParent( transform, Tool03 ); translation[0] = 50; transform.SetTranslationAndRotation(translation, rotation, errorValue, validityTimeInMilliseconds ); Tool03Ellip2->RequestSetTransformAndParent( transform, Tool03 ); translation[0] = 32.07; translation[1] = 58.83; transform.SetTranslationAndRotation(translation, rotation, errorValue, validityTimeInMilliseconds ); Tool03Ellip3->RequestSetTransformAndParent( transform, Tool03 ); I set some observers to each ellipse: T3Ellip1Observer = ObserverType::New(); T3Ellip1Observer->ObserveTransformEventsFrom( Tool03Ellip1 ); T3Ellip2Observer = ObserverType::New(); T3Ellip2Observer->ObserveTransformEventsFrom( Tool03Ellip2 ); T3Ellip3Observer = ObserverType::New(); T3Ellip3Observer->ObserveTransformEventsFrom( Tool03Ellip3 ); And I get the transformations: TT3Ellip01=T3Ellip1Observer->GetTransform(); translation=TT3Ellip01.GetTranslation(); T3RotE1=TT3Ellip01.GetRotation(); ///... for each ellipse With the transformations data I try to apply the rotation and translation to each position marker taked from origin of coordinate system (reference tool), but the positions that i get seems to be incorrect. Then, I decided to take directly the translation as the position, with no rotation, and the result were better, but with positions not aligned to the coordinated system (rotated). If i apply the rotation to each marker, the result is again bad. I undesrtand that to get the transformations referenced to the static tool need to apply: T= (Mreg) (Tref^-1) (Traw) (Mcal) ... (IGSTK The book for release 2.0, Chap 8.2.5 Coordinate Transformations, pp 105) In this case, there is no Mreg and Mcal. When i try to get the referenced transformation of the ellispes, i use this code: TAbs01=TAbs01.TransformCompose(TRef.GetInverse(),TT3Ellip01); //... for each ellipse But the data is incorrect. I plot the data with matlab to emulate the movement of the tool, thats why i can see the incorrect transformations. Considering all this long process :s my question is How can i get the three marker positions??? What i need to do with the rotations??? There is something that i'm doing bad?? Some idea???? Please, I hope someone can help me. Thanks. Eric LB _________________________________________________________________ Actualiza y gana con Windows Live http://www.actualizatuperfil.com.mx/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From famousyi at hotmail.com Thu Jun 25 17:20:09 2009 From: famousyi at hotmail.com (Jason YEE) Date: Fri, 26 Jun 2009 05:20:09 +0800 Subject: [IGSTK-Users] Tool positions or Tools Translations? In-Reply-To: References: <4835BAC3.6070306@kitware.com> Message-ID: Hello Eric, I am sorry that I have no idea about your code. But as I remeber, if you want to get the position of a single marker, the API command sent to the tracking system is different. And there is just position information but no roatation information for a single marker (I use polaris I am not sure about other tracking systems). Hope it helps, Regards, Jason From: eric_lb at hotmail.com To: igstk-users at public.kitware.com Date: Thu, 25 Jun 2009 20:59:23 +0000 Subject: [IGSTK-Users] Tool positions or Tools Translations? Hi all. I'm working in a project where I need to know the positions in 3D of each marker (reflective sphere) of a passive tool. I have some problems with this. The tool is intented to be referenced to a static tool (the reference tool provided with the tracking system). The problem is that when I try to get the transformations of each marker, there is no consistent data. My design tool have three spheres(ellipses), like this: /////////////Desing Tool03 translation[0] = 0; translation[1] = 0; translation[2] = 0; rotation.Set( 0.0, 0.0, 0.0, 1.0 ); transform.SetTranslationAndRotation(translation, rotation, errorValue, validityTimeInMilliseconds ); Tool03Ellip1->RequestSetTransformAndParent( transform, Tool03 ); translation[0] = 50; transform.SetTranslationAndRotation(translation, rotation, errorValue, validityTimeInMilliseconds ); Tool03Ellip2->RequestSetTransformAndParent( transform, Tool03 ); translation[0] = 32.07; translation[1] = 58.83; transform.SetTranslationAndRotation(translation, rotation, errorValue, validityTimeInMilliseconds ); Tool03Ellip3->RequestSetTransformAndParent( transform, Tool03 ); I set some observers to each ellipse: T3Ellip1Observer = ObserverType::New(); T3Ellip1Observer->ObserveTransformEventsFrom( Tool03Ellip1 ); T3Ellip2Observer = ObserverType::New(); T3Ellip2Observer->ObserveTransformEventsFrom( Tool03Ellip2 ); T3Ellip3Observer = ObserverType::New(); T3Ellip3Observer->ObserveTransformEventsFrom( Tool03Ellip3 ); And I get the transformations: TT3Ellip01=T3Ellip1Observer->GetTransform(); translation=TT3Ellip01.GetTranslation(); T3RotE1=TT3Ellip01.GetRotation(); ///... for each ellipse With the transformations data I try to apply the rotation and translation to each position marker taked from origin of coordinate system (reference tool), but the positions that i get seems to be incorrect. Then, I decided to take directly the translation as the position, with no rotation, and the result were better, but with positions not aligned to the coordinated system (rotated). If i apply the rotation to each marker, the result is again bad. I undesrtand that to get the transformations referenced to the static tool need to apply: T= (Mreg) (Tref^-1) (Traw) (Mcal) ... (IGSTK The book for release 2.0, Chap 8.2.5 Coordinate Transformations, pp 105) In this case, there is no Mreg and Mcal. When i try to get the referenced transformation of the ellispes, i use this code: TAbs01=TAbs01.TransformCompose(TRef.GetInverse(),TT3Ellip01); //... for each ellipse But the data is incorrect. I plot the data with matlab to emulate the movement of the tool, thats why i can see the incorrect transformations. Considering all this long process :s my question is How can i get the three marker positions??? What i need to do with the rotations??? There is something that i'm doing bad?? Some idea???? Please, I hope someone can help me. Thanks. Eric LB Est?s a un clic para ganar premios con Windows Live _________________________________________________________________ More than messages?check out the rest of the Windows Live?. http://www.microsoft.com/windows/windowslive/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From taru.seth at gmail.com Fri Jun 26 12:20:55 2009 From: taru.seth at gmail.com (taruna seth) Date: Fri, 26 Jun 2009 12:20:55 -0400 Subject: [IGSTK-Users] Problem with Sagittal/Coronal views Message-ID: <1828b2f50906260920q45542274o44c654f6986e9148@mail.gmail.com> Hi, I am having trouble loading the sagittal and coronal views of the CT/MRI dicom images. For both CT and MRI, the Sagittal and Coronal images are getting loaded in the Axial 2D plane instead of showing up in their Sagittal and Coronal planes resp. I checked the Dicom header fields and noticed that the "Image Type" field is listed as either "OTHER" or "SE" for all the images in most of my datasets. Could this be causing this problem? Is there a workaround in igstk to handle this problem? Any help would be greatly appreciated. Thanks, Taruna -------------- next part -------------- An HTML attachment was scrubbed... URL: From zivy at isis.imac.georgetown.edu Mon Jun 29 10:17:09 2009 From: zivy at isis.imac.georgetown.edu (Ziv Yaniv) Date: Mon, 29 Jun 2009 10:17:09 -0400 Subject: [IGSTK-Users] Tool positions or Tools Translations? In-Reply-To: References: <4835BAC3.6070306@kitware.com> Message-ID: <4A48CCE5.3050905@isis.imac.georgetown.edu> Hi Eric, Which tracking system are you using? Currently, IGSTK does not support tracking of single markers (MicronTracker's XPoint or NDI's reflective spheres). All tracked objects consist of at least three points, with IGSTK sending the relevant API commands to the tracker based on the assumption that we are tracking a frame (coordinate system). regards Ziv -- Ziv Yaniv, PhD., Research Assistant Professor Imaging Science and Information Systems (ISIS) Center Department of Radiology Georgetown University Medical Center 2115 Wisconsin Avenue, Suite 603 Washington, DC, 20007, Phone: +1-202-687-7286 Fax: +1-202-784-3479 email: zivy at isis.georgetown.edu web: http://isiswiki.georgetown.edu/zivy/ Eric L. B. wrote: > > > Hi all. > > I'm working in a project where I need to know the positions in 3D of > each marker (reflective sphere) of a passive tool. > I have some problems with this. > The tool is intented to be referenced to a static tool (the reference > tool provided with the tracking system). > The problem is that when I try to get the transformations of each > marker, there is no consistent data. > > My design tool have three spheres(ellipses), like this: > /////////////Desing Tool03 > translation[0] = 0; > translation[1] = 0; > translation[2] = 0; > rotation.Set( 0.0, 0.0, 0.0, 1.0 ); > transform.SetTranslationAndRotation(translation, rotation, errorValue, > validityTimeInMilliseconds ); > Tool03Ellip1->RequestSetTransformAndParent( transform, Tool03 ); > > translation[0] = 50; > transform.SetTranslationAndRotation(translation, rotation, errorValue, > validityTimeInMilliseconds ); > Tool03Ellip2->RequestSetTransformAndParent( transform, Tool03 ); > > translation[0] = 32.07; > translation[1] = 58.83; > transform.SetTranslationAndRotation(translation, rotation, errorValue, > validityTimeInMilliseconds ); > Tool03Ellip3->RequestSetTransformAndParent( transform, Tool03 ); > > > I set some observers to each ellipse: > T3Ellip1Observer = ObserverType::New(); > T3Ellip1Observer->ObserveTransformEventsFrom( Tool03Ellip1 ); > T3Ellip2Observer = ObserverType::New(); > T3Ellip2Observer->ObserveTransformEventsFrom( Tool03Ellip2 ); > T3Ellip3Observer = ObserverType::New(); > T3Ellip3Observer->ObserveTransformEventsFrom( Tool03Ellip3 ); > > And I get the transformations: > TT3Ellip01=T3Ellip1Observer->GetTransform(); > translation=TT3Ellip01.GetTranslation(); > T3RotE1=TT3Ellip01.GetRotation(); > ///... for each ellipse > > With the transformations data I try to apply the rotation and > translation to each position marker taked from origin of coordinate > system (reference tool), but the positions that i get seems to be incorrect. > Then, I decided to take directly the translation as the position, with > no rotation, and the result were better, but with positions not aligned > to the coordinated system (rotated). If i apply the rotation to each > marker, the result is again bad. > > I undesrtand that to get the transformations referenced to the static > tool need to apply: > T= (Mreg) (Tref^-1) (Traw) (Mcal) ... (IGSTK The book for release > 2.0, Chap 8.2.5 Coordinate Transformations, pp 105) > In this case, there is no Mreg and Mcal. When i try to get the > referenced transformation of the ellispes, i use this code: > TAbs01=TAbs01.TransformCompose(TRef.GetInverse(),TT3Ellip01); //... > for each ellipse > But the data is incorrect. > > I plot the data with matlab to emulate the movement of the tool, thats > why i can see the incorrect transformations. > Considering all this long process :s my question is How can i get the > three marker positions??? What i need to do with the rotations??? > There is something that i'm doing bad?? Some idea???? > Please, I hope someone can help me. > > Thanks. > > > Eric LB > > > > > ------------------------------------------------------------------------ > Est?s a un clic para ganar premios con Windows Live > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users From zivy at isis.imac.georgetown.edu Mon Jun 29 11:04:45 2009 From: zivy at isis.imac.georgetown.edu (Ziv Yaniv) Date: Mon, 29 Jun 2009 11:04:45 -0400 Subject: [IGSTK-Users] Augmented reality In-Reply-To: <4A43B1E2.20206@fing.edu.uy> References: <4A410A48.5030508@fing.edu.uy> <4A413D54.6030307@isis.georgetown.edu> <4A43B1E2.20206@fing.edu.uy> Message-ID: <4A48D80D.70400@isis.imac.georgetown.edu> Hi Alvaro, Right now the igstkPerspectiveTransform is more of a place holder than a class that is in use. I implemented it as a data object for loading calibration data for perspective cameras (endoscope/microscope/X-ray). Up to this point we have not developed a framework for augmented reality in IGSTK so we don't offer an "official" solution that is better than your use of multiple renderers. Keep in mind that the coordinate system tree you are creating makes sense for your application. Adding such a framework is one of the extensions of the toolkit we will be looking into. regards Ziv -- Ziv Yaniv, PhD., Research Assistant Professor Imaging Science and Information Systems (ISIS) Center Department of Radiology Georgetown University Medical Center 2115 Wisconsin Avenue, Suite 603 Washington, DC, 20007, Phone: +1-202-687-7286 Fax: +1-202-784-3479 email: zivy at isis.georgetown.edu web: http://isiswiki.georgetown.edu/zivy/ Alvaro G?mez wrote: > > The idea of using the perspective transform seems to be the better way > but I still don?t see how to use it and I don?t find examples in the > IGSTK or Sandbox code. > > Could you give me the basic idea of how to use the > igstkPerspectiveTransform or point me an example? > > Thanks > Alvaro > > El d?a martes, 23 de junio de 2009 05:38:44 p.m. > Patrick Cheng > escribi?: >> Hi Alvaro, >> >> >> >> Sorry for the late reply. Your email probably fall through our eyes as >> we were busy preparing for the latest release. >> >> >> >> I think what you are doing is feasible. My question is why do you want >> to use multiple renderers? >> >> >> >> If you want to overlay object with a 2D video, you can use perspective >> transform to project the object on to the image >> (igstkPerspectiveTransform). It will be better to use a single >> renderer so that you have the same camera and coordinate system. >> >> >> >> Also notice that in the IGSTK coordinate system frame work, we >> consider View as a node in the scene graph tree. That assumes we only >> have one renderer in the View (one coordinate system and one camera >> position). Take these into consideration if you want to modify View to >> accommodate multiple renderers. >> >> >> >> Patrick >> > > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users > > From eric_lb at hotmail.com Mon Jun 29 12:31:29 2009 From: eric_lb at hotmail.com (Eric L. B.) Date: Mon, 29 Jun 2009 16:31:29 +0000 Subject: [IGSTK-Users] Tool positions or Tools Translations? In-Reply-To: <4A48CCE5.3050905@isis.imac.georgetown.edu> References: <4835BAC3.6070306@kitware.com> <4A48CCE5.3050905@isis.imac.georgetown.edu> Message-ID: Hello... I'm using a NDI Polaris tracking system. I know that IGSTK is not supported for single markers tracking. Thats why i'm looking for another option. I have a passive tool with three markers. With the tracking system i can get the position of one of the spheres, because the origin of the coordinate system is exactly in one sphere. With this information i want to rebuild the position of the other two spheres. Graphically, I draw the other two spheres and set observers to each sphere. With this, i think i can get the transformations that correspond with the real reflective spheres. Comparing the position returned by the observer of sphere 1 (origin of the coordinate) with the information of the tracking of the passive tool, this data math. Then i suppose that the other two positions returned by the observers for spheres 2 and 3 must match too, but its not true :( There are, in the best case, positions not corresponding with the coordinate system, they are transformated. Then, i don't know if i'm using the data correctly. The information of a transform returned by the observer is the rotation (GetRotation) and translation (GetTranslation) or is the position and rotation. How can i get the orientation of the tool?? Regards, Eric Image Analysis And Visualization Laboratory Centro de Ciencias Aplicadas y Desarrollo Tecnologico CCADET UNAM Circuito Exterior S/N, Cd. Universitaria, AP 70-186, CP 04510 Mexico, DF Tel: +(52)(55) 56 22 86 02, ext. 1130 *************************************************** > Date: Mon, 29 Jun 2009 10:17:09 -0400 > From: zivy at isis.imac.georgetown.edu > To: eric_lb at hotmail.com > CC: igstk-users at public.kitware.com > Subject: Re: [IGSTK-Users] Tool positions or Tools Translations? > > Hi Eric, > > Which tracking system are you using? > > Currently, IGSTK does not support tracking of single markers > (MicronTracker's XPoint or NDI's reflective spheres). All tracked > objects consist of at least three points, with IGSTK sending the > relevant API commands to the tracker based on the assumption that we are > tracking a frame (coordinate system). > > regards > Ziv > > > -- > Ziv Yaniv, PhD., Research Assistant Professor > Imaging Science and Information Systems (ISIS) Center > Department of Radiology > Georgetown University Medical Center > 2115 Wisconsin Avenue, Suite 603 > Washington, DC, 20007, > > Phone: +1-202-687-7286 > Fax: +1-202-784-3479 > email: zivy at isis.georgetown.edu > web: http://isiswiki.georgetown.edu/zivy/ > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > Powered by www.kitware.com > > > > Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html > > > > Follow this link to subscribe/unsubscribe: > > http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users > > _________________________________________________________________ Si no est? en Windows Live, nunca pas? http://www.actualizatuperfil.com.mx/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From jdmcivor at interchange.ubc.ca Mon Jun 29 13:28:57 2009 From: jdmcivor at interchange.ubc.ca (Jake McIvor) Date: Mon, 29 Jun 2009 10:28:57 -0700 Subject: [IGSTK-Users] Tool positions or Tools Translations? In-Reply-To: <7612_1246293178_1246293178_14798_1246293175_1246293175_SNT112-W269A7A891D48DBE8A2248583300@phx.gbl> References: <4835BAC3.6070306@kitware.com> <4A48CCE5.3050905@isis.imac.georgetown.edu> <7612_1246293178_1246293178_14798_1246293175_1246293175_SNT112-W269A7A891D48DBE8A2248583300@phx.gbl> Message-ID: Hey Eric, Can you clarify something? Is there any relative motion between your passive markers, or are they fixed to a rigid body? If they are fixed like a 'normal' wireless tool, you should be able to setup your scene graph in IGSTK to match the settings in the .rom file. I think you want to use the RequestComputeTransformTo() method instead of the GetTransform() method. The argument should be whatever your reference is (I think you were using a static reference tool). The GetTransform() method only returns the transform to an objects parent, which in this case would be your tool, and the transform you defined. Although it is possible to get single (stray) marker position data from Polaris, as others have mentioned, IGSTK doesn't really support it. I believe the difficulty is because there is no way to keep track of which marker is which. So, if you just want to recreate where the markers were as you moved a wireless tool, you should be able to change your method as above. If you want to look at the actual positions of the markers, it will be more difficult. Hope that helps, Jake -- Jake McIvor MASc Candidate, Biomedical Engineering University of British Columbia On 6/29/09, Eric L. B. wrote: > > > > > > Hello... > > I'm using a NDI Polaris tracking system. > > I know that IGSTK is not supported for single markers tracking. Thats why > i'm looking for another option. > > I have a passive tool with three markers. With the tracking system i can get > the position of one of the spheres, because the origin of the coordinate > system is exactly in one sphere. > > With this information i want to rebuild the position of the other two > spheres. Graphically, I draw the other two spheres and set observers to each > sphere. With this, i think i can get the transformations that correspond > with the real reflective spheres. > > Comparing the position returned by the observer of sphere 1 (origin of the > coordinate) with the information of the tracking of the passive tool, this > data math. Then i suppose that the other two positions returned by the > observers for spheres 2 and 3 must match too, but its not true :( There are, > in the best case, positions not corresponding with the coordinate system, > they are transformated. > > Then, i don't know if i'm using the data correctly. The information of a > transform returned by the observer is the rotation (GetRotation) and > translation (GetTranslation) or is the position and rotation. > > How can i get the orientation of the tool?? > > > > Regards, > > Eric > > > > > > Image Analysis And Visualization Laboratory > Centro de Ciencias Aplicadas y Desarrollo Tecnologico CCADET UNAM > Circuito Exterior S/N, Cd. Universitaria, > AP 70-186, CP 04510 Mexico, DF > Tel: +(52)(55) 56 22 86 02, ext. 1130 > > > > > > > *************************************************** >> Date: Mon, 29 Jun 2009 10:17:09 -0400 >> From: zivy at isis.imac.georgetown.edu >> To: eric_lb at hotmail.com >> CC: igstk-users at public.kitware.com >> Subject: Re: [IGSTK-Users] Tool positions or Tools Translations? >> >> Hi Eric, >> >> Which tracking system are you using? >> >> Currently, IGSTK does not support tracking of single markers >> (MicronTracker's XPoint or NDI's reflective spheres). All tracked >> objects consist of at least three points, with IGSTK sending the >> relevant API commands to the tracker based on the assumption that we are >> tracking a frame (coordinate system). >> >> regards >> Ziv >> >> > -- >> Ziv Yaniv, PhD., Research Assistant Professor >> Imaging Science and Information Systems (ISIS) Center >> Department of Radiology >> Georgetown University Medical Center >> 2115 Wisconsin Avenue, Suite 603 >> Washington, DC, 20007, >> >> Phone: +1-202-687-7286 >> Fax: +1-202-784-3479 >> email: zivy at isis.georgetown.edu >> web: http://isiswiki.georgetown.edu/zivy/ >> > > ------------------------------------------------------------------------ >> > >> > _______________________________________________ >> > Powered by www.kitware.com >> > >> > Visit other Kitware open-source projects at >> > http://www.kitware.com/opensource/opensource.html >> > >> > Follow this link to subscribe/unsubscribe: >> > http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users >> >> > > _________________________________________________________________ > Si no est? en Windows Live, nunca pas? > http://www.actualizatuperfil.com.mx/ From eric_lb at hotmail.com Mon Jun 29 16:57:05 2009 From: eric_lb at hotmail.com (Eric L. B.) Date: Mon, 29 Jun 2009 20:57:05 +0000 Subject: [IGSTK-Users] Tool positions or Tools Translations? In-Reply-To: References: <4835BAC3.6070306@kitware.com> <4A48CCE5.3050905@isis.imac.georgetown.edu> <7612_1246293178_1246293178_14798_1246293175_1246293175_SNT112-W269A7A891D48DBE8A2248583300@phx.gbl> Message-ID: Hello Jake... There is no relative motion between markers, they are fixed like a rigid body. In the scene graph, the position of the spheres match the settings in the tool geometry file. I use a static reference tool. Can you explain me more about the RequestComputeTransformTo() method??? i can't find information helpfull. I've only found that there is two methods with this name: void RequestComputeTransformTo(const CoordinateSystem* targetCoordSys); // in IGSTKCoordinateSystem.h void RequestComputeTransformTo(const TTarget & target); // in IGSTKCoordinateSystemDelegator.h Wich is the difference with GetTransform() or where can i get more information about it??? In our project, the purpose of to get the positions of the three markers is to know the orientation and position of the plane generated by these three points. This plane represents an image that moves fixed to the passive tool. hope this information can help to give you an idea :P Thanks, Eric Image Analysis And Visualization Laboratory Centro de Ciencias Aplicadas y Desarrollo Tecnologico CCADET Universidad Nacional Aut?noma de M?xico Circuito Exterior S/N, Cd. Universitaria, AP 70-186, CP 04510 M?xico, DF Tel: +(52)(55) 56 22 86 02, ext. 1130 > Date: Mon, 29 Jun 2009 10:28:57 -0700 > Subject: Re: [IGSTK-Users] Tool positions or Tools Translations? > From: jdmcivor at interchange.ubc.ca > To: eric_lb at hotmail.com; igstk-users at public.kitware.com > > Hey Eric, > > Can you clarify something? Is there any relative motion between your > passive markers, or are they fixed to a rigid body? > > If they are fixed like a 'normal' wireless tool, you should be able to > setup your scene graph in IGSTK to match the settings in the .rom > file. I think you want to use the RequestComputeTransformTo() method > instead of the GetTransform() method. The argument should be whatever > your reference is (I think you were using a static reference tool). > The GetTransform() method only returns the transform to an objects > parent, which in this case would be your tool, and the transform you > defined. > > Although it is possible to get single (stray) marker position data > from Polaris, as others have mentioned, IGSTK doesn't really support > it. I believe the difficulty is because there is no way to keep track > of which marker is which. > > So, if you just want to recreate where the markers were as you moved a > wireless tool, you should be able to change your method as above. If > you want to look at the actual positions of the markers, it will be > more difficult. > > Hope that helps, > > Jake > > -- > Jake McIvor > MASc Candidate, Biomedical Engineering > University of British Columbia > > _________________________________________________________________ Y t?, ?ya actualizaste tu Perfil? http://www.actualizatuperfil.com.mx/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From jdmcivor at interchange.ubc.ca Mon Jun 29 18:00:38 2009 From: jdmcivor at interchange.ubc.ca (Jake McIvor) Date: Mon, 29 Jun 2009 15:00:38 -0700 Subject: [IGSTK-Users] Tool positions or Tools Translations? In-Reply-To: <19661_1246309029_1246309029_SNT112-W453239B25AD1268E7648BB83300@phx.gbl> References: <4835BAC3.6070306@kitware.com> <4A48CCE5.3050905@isis.imac.georgetown.edu> <7612_1246293178_1246293178_14798_1246293175_1246293175_SNT112-W269A7A891D48DBE8A2248583300@phx.gbl> <19661_1246309029_1246309029_SNT112-W453239B25AD1268E7648BB83300@phx.gbl> Message-ID: Hey Eric, Okay, I think I understand what you are trying to do now. You are using a wireless Polaris tool with 3 passive markers, and interested in figuring out the location and orientation of the plane defined by the center of the three markers. The RequestComputeTransformTo() method is part of the CoordinateSystem class. It is described in chapter 8 of the IGSTK book. It will compute the transform between any two coordinate systems as long as they are connected by a scene graph. The GetTransform() method only returns the transform to the parent. There is an example of how to use it with a transform observer in the Needle Biopsy example (Chapter 22): // Connect observer typedef igstk::TransformObserver ObserverType; ObserverType::Pointer transformObserver = ObserverType::New(); transformObserver->ObserveTransformEventsFrom( m_ActiveTool ); transformObserver->Clear(); // Request for transform m_ActiveTool->RequestComputeTransformTo( m_WorldReference ); // Check the recipient if ( transformObserver->GotTransform() ) { // Retreive the transform igstk::Transform transform = transformObserver->GetTransform() ; } In your case, you'd swap m_ActiveTool with the ellipsoid spatial object and m_WorldReference with your static reference tool. There may be an easier way, however. You said that the local coordinate system of your tool is centered at one of the markers. If the other two markers are defined to be in the xy plane, and perhaps defined along the x or y axis, then the normal axis of your plane will be aligned with the z-axis of the local coordinate system. You could then use the transform (position + orientation) information of the tool itself without worrying about calculating the position of the markers and then calculating the plane based on the marker positions... Cheers, Jake On Mon, Jun 29, 2009 at 1:57 PM, Eric L. B. wrote: > > Hello Jake... > > There is no relative motion between markers, they are fixed?like a rigid > body. > In the scene graph, the position of the spheres match the settings in the > tool geometry file. > I?use a static reference tool. > Can?you explain me more about the RequestComputeTransformTo() method??? i > can't find information helpfull. > I've only found that there is two methods with this name: > void RequestComputeTransformTo(const CoordinateSystem* targetCoordSys); // > in IGSTKCoordinateSystem.h > void RequestComputeTransformTo(const TTarget & target); // in > IGSTKCoordinateSystemDelegator.h > > > Wich is the difference with GetTransform() or where can i get more > information about it??? > In our project, the purpose of to get the positions of the three markers is > to know the orientation and position of the plane generated by?these three > points. > This plane represents an image that moves fixed to the passive tool. hope > this information can help to give you an idea :P > > > Thanks, > > Eric > > Image Analysis And Visualization Laboratory > Centro de Ciencias Aplicadas y Desarrollo Tecnologico CCADET > Universidad Nacional Aut?noma de M?xico > Circuito Exterior S/N, Cd. Universitaria, > AP 70-186, CP 04510 M?xico, DF > Tel: +(52)(55) 56 22 86 02, ext. 1130 > > > > > > >> Date: Mon, 29 Jun 2009 10:28:57 -0700 >> Subject: Re: [IGSTK-Users] Tool positions or Tools Translations? >> From: jdmcivor at interchange.ubc.ca >> To: eric_lb at hotmail.com; igstk-users at public.kitware.com >> >> Hey Eric, >> >> Can you clarify something? Is there any relative motion between your >> passive markers, or are they fixed to a rigid body? >> >> If they are fixed like a 'normal' wireless tool, you should be able to >> setup your scene graph in IGSTK to match the settings in the .rom >> file. I think you want to use the RequestComputeTransformTo() method >> instead of the GetTransform() method. The argument should be whatever >> your reference is (I think you were using a static reference tool). >> The GetTransform() method only returns the transform to an objects >> parent, which in this case would be your tool, and the transform you >> defined. >> >> Although it is possible to get single (stray) marker position data >> from Polaris, as others have mentioned, IGSTK doesn't really support >> it. I believe the difficulty is because there is no way to keep track >> of which marker is which. >> >> So, if you just want to recreate where the markers were as you moved a >> wireless tool, you should be able to change your method as above. If >> you want to look at the actual positions of the markers, it will be >> more difficult. >> >> Hope that helps, >> >> Jake >> >> -- >> Jake McIvor >> MASc Candidate, Biomedical Engineering >> University of British Columbia >> >> > > > ________________________________ > Tu vida, tus amigos y lo que te interesa est? en Perfil de Windows Live. > Actual?zalo. From michel.audette at kitware.com Tue Jun 30 10:13:50 2009 From: michel.audette at kitware.com (Michel Audette) Date: Tue, 30 Jun 2009 10:13:50 -0400 Subject: [IGSTK-Users] Problem with Sagittal/Coronal views In-Reply-To: References: <1828b2f50906260920q45542274o44c654f6986e9148@mail.gmail.com> <1828b2f50906280913y5c4e7f37ve45dc910af0b1950@mail.gmail.com> <1828b2f50906290629t52cf020v5f12e5cc954f65f2@mail.gmail.com> <1828b2f50906290815i75112168j81aa8e73498a0edf@mail.gmail.com> Message-ID: Hi Taruna, I had a look at your images with the aeskulap viewer, and they don't appear to comprise a volume in the usual sense. They seem to be a collection of individual 1-slice images of differing orientations and modalities. If you have a volume that has the same issues, please report back. Best wishes, Michel On Mon, Jun 29, 2009 at 11:22 AM, Michel Audette wrote: > Hi Taruna, > > thanks for your email. I'll report back shortly. > > Best wishes, > > Michel > > On Mon, Jun 29, 2009 at 11:15 AM, taruna seth wrote: >> >> Hi Michel, >> >> I think my previous mail (below)?went without the attachment. I am resending >> it incase you didn't get it earlier. >> >> Thanks, >> Taruna >> ---------- Forwarded message ---------- >> From: taruna seth >> Date: Mon, Jun 29, 2009 at 9:29 AM >> Subject: Re: [IGSTK-Users] Problem with Sagittal/Coronal views >> To: Michel Audette >> >> >> Hello Michel, >> >> Sorry for the delay in my mail. I got the mri images directly from the >> hospital in a CD. I am sending you?a subset of?my MRI dataset via this email >> (MRI_TestSubSet.rar) . ?I have anonymized some of the fields in the dcm >> files using a test version of a Sante Dicom Editor S/W so all the images in >> this test subset have?some extra?information displayed on the top but it >> doesn't affect anything. I tested my?program?using these images, it works >> fine but still shows everything in the axial view. >> >> I am a little bit reluctant to send?the data?through the website (yousendit) >> because of privacy concerns. >> I tried another public dataset (knee-mri)?that is available at : >> http://www.barre.nom.fr/medical/samples/files/MR-MONO2-16-knee.gz >> I am having the same problem with this dataset too. >> >> Please let me know if this information is sufficient for you or if there is >> anything else that needs to be provided from my side. >> >> Thank you for your time and attention to this matter. Looking forward to >> hear from you. >> >> Thanks, >> Taruna >> >> On Sun, Jun 28, 2009 at 4:21 PM, Michel Audette >> wrote: >>> >>> Hello Taruna, >>> >>> if you have a DICOM server, let me know if I can access it with some >>> sort of public password. Alternately, you could use something like >>> yousendit.com, if the zipped or tarzipped volume is within their >>> limit. >>> >>> Best wishes, >>> >>> Michel >>> >>> On Sun, Jun 28, 2009 at 12:13 PM, taruna seth wrote: >>> > >>> > Hi Michel, >>> > >>> > Thank you for your?mail. I can try to send you a subset of the dataset >>> > via >>> > email at your current address (michel.audette at kitware.com) later today. >>> > Please let me know if this is ok with you or if you would like me to >>> > mail >>> > it/upload it at a different location. The complete dataset is very big >>> > so I >>> > wouldn't be able to send the entire thing via email. >>> > >>> > Thank you again. >>> > >>> > Thanks, >>> > Taruna >>> > >>> > On Sat, Jun 27, 2009 at 4:44 PM, Michel Audette >>> > >>> > wrote: >>> >> >>> >> Hi Taruna, >>> >> >>> >> I would like to have a look at your data and try to reproduce the >>> >> problem. Please let me know how to proceed. >>> >> >>> >> Best wishes, >>> >> >>> >> Michel >>> >> >>> >> On Fri, Jun 26, 2009 at 12:20 PM, taruna seth >>> >> wrote: >>> >> > Hi, >>> >> > >>> >> > I am?having trouble loading the sagittal and coronal views of the >>> >> > CT/MRI >>> >> > dicom images. For both CT and MRI, the Sagittal and Coronal?images >>> >> > are >>> >> > getting loaded in the Axial 2D plane instead of showing up in their >>> >> > Sagittal >>> >> > and Coronal planes resp. >>> >> > >>> >> > I checked the?Dicom header?fields and noticed that the "Image Type" >>> >> > field?is >>> >> > listed as either "OTHER" or "SE" for all the images in most of my >>> >> > datasets. >>> >> > Could this be causing this problem? Is there a workaround in igstk to >>> >> > handle >>> >> > this problem? >>> >> > >>> >> > Any help would be greatly appreciated. >>> >> > >>> >> > Thanks, >>> >> > Taruna >>> >> > _______________________________________________ >>> >> > Powered by www.kitware.com >>> >> > >>> >> > Visit other Kitware open-source projects at >>> >> > http://www.kitware.com/opensource/opensource.html >>> >> > >>> >> > Follow this link to subscribe/unsubscribe: >>> >> > http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users >>> >> > >>> >> >>> >> >>> >> >>> >> -- >>> >> Michel Audette, Ph.D. >>> >> R & D Engineer, >>> >> Kitware Inc., >>> >> Chapel Hill, N.C. >>> > >>> > >>> >>> >>> >>> -- >>> Michel Audette, Ph.D. >>> R & D Engineer, >>> Kitware Inc., >>> Chapel Hill, N.C. >> >> >> > > > > -- > Michel Audette, Ph.D. > R & D Engineer, > Kitware Inc., > Chapel Hill, N.C. > -- Michel Audette, Ph.D. R & D Engineer, Kitware Inc., Chapel Hill, N.C. From agomez at fing.edu.uy Mon Jun 1 15:19:19 2009 From: agomez at fing.edu.uy (=?ISO-8859-1?Q?Alvaro_G=F3mez?=) Date: Mon, 01 Jun 2009 16:19:19 -0300 Subject: [IGSTK-Users] Augmented reality Message-ID: <4A2429B7.1020802@fing.edu.uy> Hi: For an augmented reality application we need to mix video and some spatial objects. We are taking the following approach that we want to validate with you: a) A modified View class with more than one renderer. a.1) We are adding a second renderer(background_renderer) to the View. The background_renderer is used to render the video. The m_Renderer and the background_renderer are put in two different layers of the m_RenderWindow (layers 1 and 0 respectively) a.2) The View class has a method to add an object representation to the background_renderer in the same way as the AddObjectProcessing does with the m_Renderer a.3) The RefreshRender is modified to iterate and request the update also on the background objects (the objects added to the background_renderer with a.2) b) For the video we are using Imager-ImagerTool and VideoFrameSpatialObject-VideoFrameRepresentation as in the VideoFrameGrabberAndViewerWebcamWin example. c) In the AR application, the VideoFrameRepresentation is added to the background renderer of the View. d) The video is then rendered using a parallel projection (camera of the background_renderer) and the objects in the foreground are rendered with a camera (camera of the foreground m_Renderer) with parameters that match the real camera. Probably there is a better way to do the same thing or a way without having to modify the View class. Please let us know your opinion. Thanks. Alvaro From jdmcivor at interchange.ubc.ca Wed Jun 10 17:26:46 2009 From: jdmcivor at interchange.ubc.ca (Jake McIvor) Date: Wed, 10 Jun 2009 14:26:46 -0700 Subject: [IGSTK-Users] Transform Data Export Message-ID: Hey, I am developing a drill guidance application and would like to export some data for offline analysis. That data would consist of timestamps and transforms from several tracker tools or spatial objects. Ideally, I would like to start and stop data export from my application. What is the best way of implementing this? Should I be looking at using an observer, a logger, openigtlink..? Cheers, Jake From andinet.enqu at kitware.com Thu Jun 11 10:36:33 2009 From: andinet.enqu at kitware.com (Andinet Enquobahrie) Date: Thu, 11 Jun 2009 10:36:33 -0400 Subject: [IGSTK-Users] Transform Data Export In-Reply-To: References: Message-ID: <4717fcd60906110736g12e9e029od7a4619a833f0700@mail.gmail.com> Jake- One option is setting up observers to tracker tool transform events and then write out the transforms to a file. Take a look at the tracker tool tests to get insight on how to set up transform event observers Andinet On Wed, Jun 10, 2009 at 5:26 PM, Jake McIvor wrote: > Hey, > > I am developing a drill guidance application and would like to export > some data for offline analysis. ?That data would consist of timestamps > and transforms from several tracker tools or spatial objects. > Ideally, I would like to start and stop data export from my > application. ?What is the best way of implementing this? ?Should I be > looking at using an observer, a logger, openigtlink..? > > Cheers, > > Jake > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users > From zivy at isis.imac.georgetown.edu Thu Jun 11 10:56:31 2009 From: zivy at isis.imac.georgetown.edu (Ziv Yaniv) Date: Thu, 11 Jun 2009 10:56:31 -0400 Subject: [IGSTK-Users] Transform Data Export In-Reply-To: <4717fcd60906110736g12e9e029od7a4619a833f0700@mail.gmail.com> References: <4717fcd60906110736g12e9e029od7a4619a833f0700@mail.gmail.com> Message-ID: <4A311B1F.9070508@isis.imac.georgetown.edu> Hi Jake, You should take a look at the OpenIGTLinkTrackerBroadcasting example. You can easily modify it to do what you want (writing to file instead of to socket). It already works for multiple tools, with or without a reference frame. Please read the IGSTK book for the full details. All you need to do is modify the ToolUpdatedObserver class found in OpenIGTLinkTrackingBroadcaster.h. Instead of the m_Sockets and m_PositionMessage members you will have an ostream member which you write the data to, this will happen in the Execute method which you need to slightly modify. regards Ziv On Wed, Jun 10, 2009 at 5:26 PM, Jake McIvor wrote: > Hey, > > I am developing a drill guidance application and would like to export > some data for offline analysis. That data would consist of timestamps > and transforms from several tracker tools or spatial objects. > Ideally, I would like to start and stop data export from my > application. What is the best way of implementing this? Should I be > looking at using an observer, a logger, openigtlink..? > > Cheers, > > Jake -- Ziv Yaniv, PhD., Research Assistant Professor Imaging Science and Information Systems (ISIS) Center Department of Radiology Georgetown University Medical Center 2115 Wisconsin Avenue, Suite 603 Washington, DC, 20007, Phone: +1-202-687-7286 Fax: +1-202-784-3479 email: zivy at isis.georgetown.edu web: http://isiswiki.georgetown.edu/zivy/ From jdmcivor at interchange.ubc.ca Thu Jun 11 14:54:35 2009 From: jdmcivor at interchange.ubc.ca (Jake McIvor) Date: Thu, 11 Jun 2009 11:54:35 -0700 Subject: [IGSTK-Users] Transform Data Export In-Reply-To: <832_1244732196_1244732196_4A311B1F.9070508@isis.imac.georgetown.edu> References: <4717fcd60906110736g12e9e029od7a4619a833f0700@mail.gmail.com> <832_1244732196_1244732196_4A311B1F.9070508@isis.imac.georgetown.edu> Message-ID: Thanks for the guidance. I have tried using transform observers as suggested by Andinet and they work well for taking single snapshots. I will try to implement the modification of the OpenIGTLink class and let you know how it goes. I had started looking into the OpenIGTLink examples before, but had some difficulty building the sandbox. The SVN checkout of OpenIGTLink that I got was missing several files and causing problems compiling igstkTersonImager. I am not that familiar with using SVN, so it may be the settings I chose. I found the missing files here: http://svn.na-mic.org/NAMICSandBox/trunk/OpenIGTLink/ Thanks again, Jake -- Jake McIvor MASc. Candidate, Biomedical Engineering University of British Columbia On Thu, Jun 11, 2009 at 7:56 AM, Ziv Yaniv wrote: > Hi Jake, > > You should take a look at the OpenIGTLinkTrackerBroadcasting example. You > can easily modify it to do what you want (writing to file instead of to > socket). It already works for multiple tools, with or without a reference > frame. Please read the IGSTK book for the full details. > > All you need to do is modify the ToolUpdatedObserver class found in > OpenIGTLinkTrackingBroadcaster.h. Instead of the m_Sockets and > m_PositionMessage members you will have an ostream member which you write > the data to, this will happen in the Execute method which you need to > slightly modify. > > ? ? ? ? ? ?regards > ? ? ? ? ? ? ? ?Ziv > > On Wed, Jun 10, 2009 at 5:26 PM, Jake McIvor > wrote: >> >> Hey, >> >> I am developing a drill guidance application and would like to export >> some data for offline analysis. ?That data would consist of timestamps >> and transforms from several tracker tools or spatial objects. >> Ideally, I would like to start and stop data export from my >> application. ?What is the best way of implementing this? ?Should I be >> looking at using an observer, a logger, openigtlink..? >> >> Cheers, >> >> Jake > > -- > Ziv Yaniv, PhD., Research Assistant Professor > Imaging Science and Information Systems (ISIS) Center > Department of Radiology > Georgetown University Medical Center > 2115 Wisconsin Avenue, Suite 603 > Washington, DC, 20007, > > Phone: +1-202-687-7286 > Fax: +1-202-784-3479 > email: zivy at isis.georgetown.edu > web: http://isiswiki.georgetown.edu/zivy/ > From andinet.enqu at kitware.com Fri Jun 12 20:54:52 2009 From: andinet.enqu at kitware.com (Andinet Enquobahrie) Date: Fri, 12 Jun 2009 20:54:52 -0400 Subject: [IGSTK-Users] Transform Data Export In-Reply-To: References: <4717fcd60906110736g12e9e029od7a4619a833f0700@mail.gmail.com> <832_1244732196_1244732196_4A311B1F.9070508@isis.imac.georgetown.edu> Message-ID: <4717fcd60906121754i2160a156x119cad2673e4021e@mail.gmail.com> Jake- The OpenIGTLink repository that we use is http://svn.na-mic.org/NAMICSandBox/trunk/OpenIGTLink/ Download the the source tree and build it using cmake. By the way, we have copied OpenIGTLink related IGSTK classes and example from the sandbox to the main CVS in preparation for IGSTK 4.2 release. So, you might want to focus on the main CVS not the Sandbox. Andinet On Thu, Jun 11, 2009 at 2:54 PM, Jake McIvor wrote: > Thanks for the guidance. ?I have tried using transform observers as > suggested by Andinet and they work well for taking single snapshots. > I will try to implement the modification of the OpenIGTLink class and > let you know how it goes. > > I had started looking into the OpenIGTLink examples before, but had > some difficulty building the sandbox. ?The SVN checkout of OpenIGTLink > that I got was missing several files and causing problems compiling > igstkTersonImager. ?I am not that familiar with using SVN, so it may > be the settings I chose. ?I found the missing files here: > http://svn.na-mic.org/NAMICSandBox/trunk/OpenIGTLink/ > > Thanks again, > > Jake > > -- > Jake McIvor > MASc. Candidate, Biomedical Engineering > University of British Columbia > > On Thu, Jun 11, 2009 at 7:56 AM, Ziv Yaniv wrote: >> Hi Jake, >> >> You should take a look at the OpenIGTLinkTrackerBroadcasting example. You >> can easily modify it to do what you want (writing to file instead of to >> socket). It already works for multiple tools, with or without a reference >> frame. Please read the IGSTK book for the full details. >> >> All you need to do is modify the ToolUpdatedObserver class found in >> OpenIGTLinkTrackingBroadcaster.h. Instead of the m_Sockets and >> m_PositionMessage members you will have an ostream member which you write >> the data to, this will happen in the Execute method which you need to >> slightly modify. >> >> ? ? ? ? ? ?regards >> ? ? ? ? ? ? ? ?Ziv >> >> On Wed, Jun 10, 2009 at 5:26 PM, Jake McIvor >> wrote: >>> >>> Hey, >>> >>> I am developing a drill guidance application and would like to export >>> some data for offline analysis. ?That data would consist of timestamps >>> and transforms from several tracker tools or spatial objects. >>> Ideally, I would like to start and stop data export from my >>> application. ?What is the best way of implementing this? ?Should I be >>> looking at using an observer, a logger, openigtlink..? >>> >>> Cheers, >>> >>> Jake >> >> -- >> Ziv Yaniv, PhD., Research Assistant Professor >> Imaging Science and Information Systems (ISIS) Center >> Department of Radiology >> Georgetown University Medical Center >> 2115 Wisconsin Avenue, Suite 603 >> Washington, DC, 20007, >> >> Phone: +1-202-687-7286 >> Fax: +1-202-784-3479 >> email: zivy at isis.georgetown.edu >> web: http://isiswiki.georgetown.edu/zivy/ >> > From acturner01 at gmail.com Sun Jun 14 14:19:34 2009 From: acturner01 at gmail.com (Tony Turner) Date: Sun, 14 Jun 2009 12:19:34 -0600 Subject: [IGSTK-Users] real-time intra-operative 3D ultrasound research project Message-ID: <4954c13e0906141119w745bc636pa1888aa1fc7e25e3@mail.gmail.com> Greetings; I am looking for a bit of guidance regarding 3D ultrasound support within IGSTK/VTK/VTKEdge/ITK's open source software. Summary: Our lab requires 3D ultrasound for an IGSTK based research project we're working on. I have a budget for purchasing the US equipment, and developer time alloted to the US specific tasks. My questions are these: 1) Can anyone point me in the direction of someone who already produces the US equipment as described below? 2) Does IGSTK/VTK/ITK/VTKEdge already contain the base US functionality to allow me to build a demo of : ( in ~ 2 man months additional dev effort ): a) a real-time 3D dataset from the US hardware from item #1 ? ( assume US hardware calibration is a separate project ) b) 2D orthogonal slices from the 3D dataset from item #2a ? ( simple real-time display, no registering with CT/MR, etc. ) c) simple 4-up display, 3 orthogonal 2D slices, & one 3D image, all real-time ( I'm assuming we'd use VTKEdge, and CUDA here..) 3) For the parts of item #2 above that are 'yes', can you point me in the direction of others who are already active in these areas, so I might collaborate with them, as the project evolves? Details: The sofware/hardware platform for the project is: IGSTK / VTK / VTKEdge / ITK / 3DSlicer, open source Desktop CPU AMD Athlon X2 4200 Dual core Ubuntu 9.04 ( latest greatest ) NVIDIA 9500 GT GPU ( CUDA compliant ). -------------- next part -------------- An HTML attachment was scrubbed... URL: From cleary at isis.georgetown.edu Mon Jun 15 14:35:59 2009 From: cleary at isis.georgetown.edu (Kevin Cleary) Date: Mon, 15 Jun 2009 14:35:59 -0400 Subject: [IGSTK-Users] real-time intra-operative 3D ultrasound research project In-Reply-To: <4954c13e0906141119w745bc636pa1888aa1fc7e25e3@mail.gmail.com> References: <4954c13e0906141119w745bc636pa1888aa1fc7e25e3@mail.gmail.com> Message-ID: <015c01c9ede8$20cd70a0$626851e0$@georgetown.edu> Tony I am the principal investigator for the IGSTK project which is funded by NIH, so I am probably least qualified to answer your questions, but let me start the discussion: 1) We talked about your email about our lab meeting at Georgetown this morning 2) If you have experienced VTK/ITK developers your schedule may be realistic 3) We have built some of the functionality you mention but it was not all put in our release a. However I will send you separately a paper we wrote for SPIE Meidcal Imaging 2009 that shows some of this - I cannot attach it here or it will bounce I think 4) As for 3D ultrasound I am not sure who the best vendor is - we use a 2D unit from Terason 5) For more details it would be better to talk by phone 6) Can you also tell us what lab you are with and what your infrastructure is if you can share those details? Feel free to call me directly. Kevin Cleary Georgetown University 202 687 8253 From: igstk-users-bounces at public.kitware.com [mailto:igstk-users-bounces at public.kitware.com] On Behalf Of Tony Turner Sent: Sunday, June 14, 2009 2:20 PM To: igstk-users at public.kitware.com Subject: [IGSTK-Users] real-time intra-operative 3D ultrasound research project Greetings; I am looking for a bit of guidance regarding 3D ultrasound support within IGSTK/VTK/VTKEdge/ITK's open source software. Summary: Our lab requires 3D ultrasound for an IGSTK based research project we're working on. I have a budget for purchasing the US equipment, and developer time alloted to the US specific tasks. My questions are these: 1) Can anyone point me in the direction of someone who already produces the US equipment as described below? 2) Does IGSTK/VTK/ITK/VTKEdge already contain the base US functionality to allow me to build a demo of : ( in ~ 2 man months additional dev effort ): a) a real-time 3D dataset from the US hardware from item #1 ? ( assume US hardware calibration is a separate project ) b) 2D orthogonal slices from the 3D dataset from item #2a ? ( simple real-time display, no registering with CT/MR, etc. ) c) simple 4-up display, 3 orthogonal 2D slices, & one 3D image, all real-time ( I'm assuming we'd use VTKEdge, and CUDA here..) 3) For the parts of item #2 above that are 'yes', can you point me in the direction of others who are already active in these areas, so I might collaborate with them, as the project evolves? Details: The sofware/hardware platform for the project is: IGSTK / VTK / VTKEdge / ITK / 3DSlicer, open source Desktop CPU AMD Athlon X2 4200 Dual core Ubuntu 9.04 ( latest greatest ) NVIDIA 9500 GT GPU ( CUDA compliant ). -------------- next part -------------- An HTML attachment was scrubbed... URL: From taru.seth at gmail.com Thu Jun 18 15:38:10 2009 From: taru.seth at gmail.com (taruna seth) Date: Thu, 18 Jun 2009 15:38:10 -0400 Subject: [IGSTK-Users] Problem with igstkLoadedEventTransductionMacro Message-ID: <1828b2f50906181238x4f25b8cy1988f6f74c5e08b7@mail.gmail.com> Hello, I am working on an IGSTK based application using QT for the GUI. I am trying to use the igstkLoadedEventTransductionMacro for setting the Axial, Sagittal bounds but getting an error message "RegisterObservedObject not a member of class". My QT GUI main class can't be inheritied from igstk::Object. All the IGSTK examples I could refer to are with FLTK wherein the GUI class is derived from the igstk::Object class. Is there any way to use this macro with QT? I will really appreciate your help regarding this. Thanks, Taru -------------- next part -------------- An HTML attachment was scrubbed... URL: From taru.seth at gmail.com Fri Jun 19 12:49:43 2009 From: taru.seth at gmail.com (taruna seth) Date: Fri, 19 Jun 2009 12:49:43 -0400 Subject: [IGSTK-Users] Problem with igstkLoadedEventTransductionMacro Message-ID: <1828b2f50906190949q13e2dc1bpdf463939680baba8@mail.gmail.com> Hi, I fixed the problem. - Taru -------------- next part -------------- An HTML attachment was scrubbed... URL: From andinet.enqu at kitware.com Sat Jun 20 21:32:17 2009 From: andinet.enqu at kitware.com (Andinet Enquobahrie) Date: Sat, 20 Jun 2009 21:32:17 -0400 Subject: [IGSTK-Users] IGSTK 4.2 released Message-ID: <4717fcd60906201832h1d18b1a2p7ecd232267cb20c6@mail.gmail.com> On the behalf of the IGSTK developer's team, I am pleased to announce the release of IGSTK 4.2 You can download this release from the Download page: http://public.kitware.com/IGSTKWIKI/index.php/Download_IGSTK#IGSTK_4.2 New features 1. Video handling component (VideoImager) 2. Integrated framework for tracking data acquisition and pivot calibration for surgical tools 3. OpenIGTLink support 4. Scene Graph visualization framework 5. Several new examples demonstrating MicronTracker , OpenIGTLink support, video imager components and other tools. 6. Miscellaneous bug fixes Building instructions: http://public.kitware.com/IGSTKWIKI/index.php/How_to_build_IGSTK If you have any questions, please let us know. Best wishes, -Andinet -- ========================================================== Andinet A. Enquobahrie, PhD R&D Engineer Kitware Inc. 28 Corporate Drive Clifton Park, NY 12065-8662 Phone: 518-371-3971 x124 www.kitware.com From jdmcivor at interchange.ubc.ca Mon Jun 22 19:28:43 2009 From: jdmcivor at interchange.ubc.ca (Jake McIvor) Date: Mon, 22 Jun 2009 16:28:43 -0700 Subject: [IGSTK-Users] Transform Data Export In-Reply-To: <7441_1244854559_1244854559_4717fcd60906121754i2160a156x119cad2673e4021e@mail.gmail.com> References: <4717fcd60906110736g12e9e029od7a4619a833f0700@mail.gmail.com> <832_1244732196_1244732196_4A311B1F.9070508@isis.imac.georgetown.edu> <7441_1244854559_1244854559_4717fcd60906121754i2160a156x119cad2673e4021e@mail.gmail.com> Message-ID: Thanks for the assistance. I have successfully used the OpenIGTLink examples to send transforms to Slicer on another computer (cool!), and modified the broadcaster example to export data to a file. I still have to do a little debugging as it seems to miss one or two transforms occasionally compared to what the serial log says. Jake On Fri, Jun 12, 2009 at 5:54 PM, Andinet Enquobahrie wrote: > Jake- > > The OpenIGTLink repository that we use is > > http://svn.na-mic.org/NAMICSandBox/trunk/OpenIGTLink/ > > Download the the source tree and build it using cmake. > > By the way, we have copied OpenIGTLink related IGSTK classes and > example from the sandbox to the main CVS in preparation for IGSTK 4.2 > release. So, you might want to focus on the main CVS not the Sandbox. > > Andinet > > > > > > On Thu, Jun 11, 2009 at 2:54 PM, Jake McIvor wrote: >> Thanks for the guidance. ?I have tried using transform observers as >> suggested by Andinet and they work well for taking single snapshots. >> I will try to implement the modification of the OpenIGTLink class and >> let you know how it goes. >> >> I had started looking into the OpenIGTLink examples before, but had >> some difficulty building the sandbox. ?The SVN checkout of OpenIGTLink >> that I got was missing several files and causing problems compiling >> igstkTersonImager. ?I am not that familiar with using SVN, so it may >> be the settings I chose. ?I found the missing files here: >> http://svn.na-mic.org/NAMICSandBox/trunk/OpenIGTLink/ >> >> Thanks again, >> >> Jake >> >> -- >> Jake McIvor >> MASc. Candidate, Biomedical Engineering >> University of British Columbia >> >> On Thu, Jun 11, 2009 at 7:56 AM, Ziv Yaniv wrote: >>> Hi Jake, >>> >>> You should take a look at the OpenIGTLinkTrackerBroadcasting example. You >>> can easily modify it to do what you want (writing to file instead of to >>> socket). It already works for multiple tools, with or without a reference >>> frame. Please read the IGSTK book for the full details. >>> >>> All you need to do is modify the ToolUpdatedObserver class found in >>> OpenIGTLinkTrackingBroadcaster.h. Instead of the m_Sockets and >>> m_PositionMessage members you will have an ostream member which you write >>> the data to, this will happen in the Execute method which you need to >>> slightly modify. >>> >>> ? ? ? ? ? ?regards >>> ? ? ? ? ? ? ? ?Ziv >>> >>> On Wed, Jun 10, 2009 at 5:26 PM, Jake McIvor >>> wrote: >>>> >>>> Hey, >>>> >>>> I am developing a drill guidance application and would like to export >>>> some data for offline analysis. ?That data would consist of timestamps >>>> and transforms from several tracker tools or spatial objects. >>>> Ideally, I would like to start and stop data export from my >>>> application. ?What is the best way of implementing this? ?Should I be >>>> looking at using an observer, a logger, openigtlink..? >>>> >>>> Cheers, >>>> >>>> Jake >>> >>> -- >>> Ziv Yaniv, PhD., Research Assistant Professor >>> Imaging Science and Information Systems (ISIS) Center >>> Department of Radiology >>> Georgetown University Medical Center >>> 2115 Wisconsin Avenue, Suite 603 >>> Washington, DC, 20007, >>> >>> Phone: +1-202-687-7286 >>> Fax: +1-202-784-3479 >>> email: zivy at isis.georgetown.edu >>> web: http://isiswiki.georgetown.edu/zivy/ >>> >> > From yk119 at hotmail.com Mon Jun 22 22:59:50 2009 From: yk119 at hotmail.com (kai yang) Date: Tue, 23 Jun 2009 10:59:50 +0800 Subject: [IGSTK-Users] IGSTK Build Failure Message-ID: Hello, I am building a surgical navigation system from IGSTK for liver tumor surgery. After I had downloaded, configured with CMake and built in Visual Studio 8 2005 for ITK, VTK and FLTK, I started to configure IGSTK in CMake. When I set both the source and binary directories and pressed the "configure" button for IGSTK in CMake, it cames up an error message " Warning:CMake is forcing CMAKE_CXX_COMPLILER to "C:/Programe File/Microsoft Visual Studio 8/VC/bin/cl.exe" to match that imported from ITK. This is required because C++ projects must use the same compliler. If this message appears for more than one imported project, you have conflicting C++ compilers and will to re-build one of those projects. Was set to cl" So could you help me to analysis the reseason for it and how to solve it? Since I am a surgeon without any programming experience, could you explain it in a more detailed way. Thank you Kevin _________________________________________________________________ Join the Fantasy Football club and win cash prizes here! http://fantasyfootball.sg.msn.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From cleary at isis.georgetown.edu Tue Jun 23 04:51:29 2009 From: cleary at isis.georgetown.edu (Kevin Cleary) Date: Tue, 23 Jun 2009 04:51:29 -0400 Subject: [IGSTK-Users] IGSTK Build Failure In-Reply-To: References: Message-ID: <001601c9f3df$cdb6b6d0$69242470$@georgetown.edu> Hello I will ask our technical experts to answer your question, but I would also be interested in hearing some more details about your application. We have developed a system for abdominal biopsy including liver biopsy and would be happy to share our experience. Can you tell us your specific clinical goal and what institution you are with? It may take a few days for us to answer since we are at the Computer Aided Radiology and Surgery Conference in Berlin, where we are hosting a user group meeting tonight. Best regards Kevin Cleary Principal investigator for IGSTK project ------------------------------------------------------------------ Kevin Cleary, Ph.D. Work phone: 202-687-8253 Professor Work fax: 202-784-3479 Director Pager: 202-405-2367 Imaging Science and Information Systems (ISIS) Center Department of Radiology Georgetown University Medical Center Cell phone: 202-294-3409 2115 Wisconsin Avenue, Suite 603 Home phone: 301-299-0788 Washington, DC, 20007 Home fax: 301-299-0789 ISIS center: www.isis.georgetown.edu Email: cleary at georgetown.edu ------------------------------------------------------------------- From: igstk-users-bounces at public.kitware.com [mailto:igstk-users-bounces at public.kitware.com] On Behalf Of kai yang Sent: Monday, June 22, 2009 11:00 PM To: igstk-users at public.kitware.com Subject: [IGSTK-Users] IGSTK Build Failure Hello, I am building a surgical navigation system from IGSTK for liver tumor surgery. After I had downloaded, configured with CMake and built in Visual Studio 8 2005 for ITK, VTK and FLTK, I started to configure IGSTK in CMake. When I set both the source and binary directories and pressed the "configure" button for IGSTK in CMake, it cames up an error message " Warning:CMake is forcing CMAKE_CXX_COMPLILER to "C:/Programe File/Microsoft Visual Studio 8/VC/bin/cl.exe" to match that imported from ITK. This is required because C++ projects must use the same compliler. If this message appears for more than one imported project, you have conflicting C++ compilers and will to re-build one of those projects. Was set to cl" So could you help me to analysis the reseason for it and how to solve it? Since I am a surgeon without any programming experience, could you explain it in a more detailed way. Thank you Kevin _____ Chat online and in real-time with friends and family! Windows Live Messenger Checked by AVG - www.avg.com Version: 8.5.374 / Virus Database: 270.12.87/2195 - Release Date: 06/22/09 06:54:00 -------------- next part -------------- An HTML attachment was scrubbed... URL: From agomez at fing.edu.uy Tue Jun 23 13:00:56 2009 From: agomez at fing.edu.uy (=?ISO-8859-1?Q?Alvaro_G=F3mez?=) Date: Tue, 23 Jun 2009 14:00:56 -0300 Subject: [IGSTK-Users] Augmented reality Message-ID: <4A410A48.5030508@fing.edu.uy> Some time ago I posted this message: http://public.kitware.com/pipermail/igstk-users/2009-June/000677.html I would like to know if the approach described in the message is correct. If there is a better way to mix video and spatial objects, please let us know how to do it. Thanks, Alvaro From cheng at isis.georgetown.edu Tue Jun 23 16:38:44 2009 From: cheng at isis.georgetown.edu (Patrick Cheng) Date: Tue, 23 Jun 2009 16:38:44 -0400 Subject: [IGSTK-Users] Augmented reality In-Reply-To: <4A410A48.5030508@fing.edu.uy> References: <4A410A48.5030508@fing.edu.uy> Message-ID: <4A413D54.6030307@isis.georgetown.edu> Hi Alvaro, Sorry for the late reply. Your email probably fall through our eyes as we were busy preparing for the latest release. I think what you are doing is feasible. My question is why do you want to use multiple renderers? If you want to overlay object with a 2D video, you can use perspective transform to project the object on to the image (igstkPerspectiveTransform). It will be better to use a single renderer so that you have the same camera and coordinate system. Also notice that in the IGSTK coordinate system frame work, we consider View as a node in the scene graph tree. That assumes we only have one renderer in the View (one coordinate system and one camera position). Take these into consideration if you want to modify View to accommodate multiple renderers. Patrick Alvaro G?mez wrote: > Some time ago I posted this message: > http://public.kitware.com/pipermail/igstk-users/2009-June/000677.html > > I would like to know if the approach described in the message is > correct. If there is a better way to mix video and spatial objects, > please let us know how to do it. > > Thanks, > Alvaro > > > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users > > From jdmcivor at interchange.ubc.ca Wed Jun 24 20:05:17 2009 From: jdmcivor at interchange.ubc.ca (Jake McIvor) Date: Wed, 24 Jun 2009 17:05:17 -0700 Subject: [IGSTK-Users] Mesh Files from CAD Message-ID: Hey, Does anyone have a utility for converting stereo lithography files (.stl) into mesh files (.msh)? Cheers, Jake -- Jake McIvor MASc Candidate, Biomedical Engineering University of British Columbia From agomez at fing.edu.uy Thu Jun 25 13:20:34 2009 From: agomez at fing.edu.uy (=?ISO-8859-1?Q?Alvaro_G=F3mez?=) Date: Thu, 25 Jun 2009 14:20:34 -0300 Subject: [IGSTK-Users] Augmented reality In-Reply-To: <4A413D54.6030307@isis.georgetown.edu> References: <4A410A48.5030508@fing.edu.uy> <4A413D54.6030307@isis.georgetown.edu> Message-ID: <4A43B1E2.20206@fing.edu.uy> The idea of using the perspective transform seems to be the better way but I still don?t see how to use it and I don?t find examples in the IGSTK or Sandbox code. Could you give me the basic idea of how to use the igstkPerspectiveTransform or point me an example? Thanks Alvaro El d?a martes, 23 de junio de 2009 05:38:44 p.m. Patrick Cheng escribi?: > Hi Alvaro, > > > > Sorry for the late reply. Your email probably fall through our eyes as > we were busy preparing for the latest release. > > > > I think what you are doing is feasible. My question is why do you want > to use multiple renderers? > > > > If you want to overlay object with a 2D video, you can use perspective > transform to project the object on to the image > (igstkPerspectiveTransform). It will be better to use a single renderer > so that you have the same camera and coordinate system. > > > > Also notice that in the IGSTK coordinate system frame work, we consider > View as a node in the scene graph tree. That assumes we only have one > renderer in the View (one coordinate system and one camera position). > Take these into consideration if you want to modify View to accommodate > multiple renderers. > > > > Patrick > From eric_lb at hotmail.com Thu Jun 25 16:59:23 2009 From: eric_lb at hotmail.com (Eric L. B.) Date: Thu, 25 Jun 2009 20:59:23 +0000 Subject: [IGSTK-Users] Tool positions or Tools Translations? In-Reply-To: References: <4835BAC3.6070306@kitware.com> Message-ID: Hi all. I'm working in a project where I need to know the positions in 3D of each marker (reflective sphere) of a passive tool. I have some problems with this. The tool is intented to be referenced to a static tool (the reference tool provided with the tracking system). The problem is that when I try to get the transformations of each marker, there is no consistent data. My design tool have three spheres(ellipses), like this: /////////////Desing Tool03 translation[0] = 0; translation[1] = 0; translation[2] = 0; rotation.Set( 0.0, 0.0, 0.0, 1.0 ); transform.SetTranslationAndRotation(translation, rotation, errorValue, validityTimeInMilliseconds ); Tool03Ellip1->RequestSetTransformAndParent( transform, Tool03 ); translation[0] = 50; transform.SetTranslationAndRotation(translation, rotation, errorValue, validityTimeInMilliseconds ); Tool03Ellip2->RequestSetTransformAndParent( transform, Tool03 ); translation[0] = 32.07; translation[1] = 58.83; transform.SetTranslationAndRotation(translation, rotation, errorValue, validityTimeInMilliseconds ); Tool03Ellip3->RequestSetTransformAndParent( transform, Tool03 ); I set some observers to each ellipse: T3Ellip1Observer = ObserverType::New(); T3Ellip1Observer->ObserveTransformEventsFrom( Tool03Ellip1 ); T3Ellip2Observer = ObserverType::New(); T3Ellip2Observer->ObserveTransformEventsFrom( Tool03Ellip2 ); T3Ellip3Observer = ObserverType::New(); T3Ellip3Observer->ObserveTransformEventsFrom( Tool03Ellip3 ); And I get the transformations: TT3Ellip01=T3Ellip1Observer->GetTransform(); translation=TT3Ellip01.GetTranslation(); T3RotE1=TT3Ellip01.GetRotation(); ///... for each ellipse With the transformations data I try to apply the rotation and translation to each position marker taked from origin of coordinate system (reference tool), but the positions that i get seems to be incorrect. Then, I decided to take directly the translation as the position, with no rotation, and the result were better, but with positions not aligned to the coordinated system (rotated). If i apply the rotation to each marker, the result is again bad. I undesrtand that to get the transformations referenced to the static tool need to apply: T= (Mreg) (Tref^-1) (Traw) (Mcal) ... (IGSTK The book for release 2.0, Chap 8.2.5 Coordinate Transformations, pp 105) In this case, there is no Mreg and Mcal. When i try to get the referenced transformation of the ellispes, i use this code: TAbs01=TAbs01.TransformCompose(TRef.GetInverse(),TT3Ellip01); //... for each ellipse But the data is incorrect. I plot the data with matlab to emulate the movement of the tool, thats why i can see the incorrect transformations. Considering all this long process :s my question is How can i get the three marker positions??? What i need to do with the rotations??? There is something that i'm doing bad?? Some idea???? Please, I hope someone can help me. Thanks. Eric LB _________________________________________________________________ Actualiza y gana con Windows Live http://www.actualizatuperfil.com.mx/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From famousyi at hotmail.com Thu Jun 25 17:20:09 2009 From: famousyi at hotmail.com (Jason YEE) Date: Fri, 26 Jun 2009 05:20:09 +0800 Subject: [IGSTK-Users] Tool positions or Tools Translations? In-Reply-To: References: <4835BAC3.6070306@kitware.com> Message-ID: Hello Eric, I am sorry that I have no idea about your code. But as I remeber, if you want to get the position of a single marker, the API command sent to the tracking system is different. And there is just position information but no roatation information for a single marker (I use polaris I am not sure about other tracking systems). Hope it helps, Regards, Jason From: eric_lb at hotmail.com To: igstk-users at public.kitware.com Date: Thu, 25 Jun 2009 20:59:23 +0000 Subject: [IGSTK-Users] Tool positions or Tools Translations? Hi all. I'm working in a project where I need to know the positions in 3D of each marker (reflective sphere) of a passive tool. I have some problems with this. The tool is intented to be referenced to a static tool (the reference tool provided with the tracking system). The problem is that when I try to get the transformations of each marker, there is no consistent data. My design tool have three spheres(ellipses), like this: /////////////Desing Tool03 translation[0] = 0; translation[1] = 0; translation[2] = 0; rotation.Set( 0.0, 0.0, 0.0, 1.0 ); transform.SetTranslationAndRotation(translation, rotation, errorValue, validityTimeInMilliseconds ); Tool03Ellip1->RequestSetTransformAndParent( transform, Tool03 ); translation[0] = 50; transform.SetTranslationAndRotation(translation, rotation, errorValue, validityTimeInMilliseconds ); Tool03Ellip2->RequestSetTransformAndParent( transform, Tool03 ); translation[0] = 32.07; translation[1] = 58.83; transform.SetTranslationAndRotation(translation, rotation, errorValue, validityTimeInMilliseconds ); Tool03Ellip3->RequestSetTransformAndParent( transform, Tool03 ); I set some observers to each ellipse: T3Ellip1Observer = ObserverType::New(); T3Ellip1Observer->ObserveTransformEventsFrom( Tool03Ellip1 ); T3Ellip2Observer = ObserverType::New(); T3Ellip2Observer->ObserveTransformEventsFrom( Tool03Ellip2 ); T3Ellip3Observer = ObserverType::New(); T3Ellip3Observer->ObserveTransformEventsFrom( Tool03Ellip3 ); And I get the transformations: TT3Ellip01=T3Ellip1Observer->GetTransform(); translation=TT3Ellip01.GetTranslation(); T3RotE1=TT3Ellip01.GetRotation(); ///... for each ellipse With the transformations data I try to apply the rotation and translation to each position marker taked from origin of coordinate system (reference tool), but the positions that i get seems to be incorrect. Then, I decided to take directly the translation as the position, with no rotation, and the result were better, but with positions not aligned to the coordinated system (rotated). If i apply the rotation to each marker, the result is again bad. I undesrtand that to get the transformations referenced to the static tool need to apply: T= (Mreg) (Tref^-1) (Traw) (Mcal) ... (IGSTK The book for release 2.0, Chap 8.2.5 Coordinate Transformations, pp 105) In this case, there is no Mreg and Mcal. When i try to get the referenced transformation of the ellispes, i use this code: TAbs01=TAbs01.TransformCompose(TRef.GetInverse(),TT3Ellip01); //... for each ellipse But the data is incorrect. I plot the data with matlab to emulate the movement of the tool, thats why i can see the incorrect transformations. Considering all this long process :s my question is How can i get the three marker positions??? What i need to do with the rotations??? There is something that i'm doing bad?? Some idea???? Please, I hope someone can help me. Thanks. Eric LB Est?s a un clic para ganar premios con Windows Live _________________________________________________________________ More than messages?check out the rest of the Windows Live?. http://www.microsoft.com/windows/windowslive/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From taru.seth at gmail.com Fri Jun 26 12:20:55 2009 From: taru.seth at gmail.com (taruna seth) Date: Fri, 26 Jun 2009 12:20:55 -0400 Subject: [IGSTK-Users] Problem with Sagittal/Coronal views Message-ID: <1828b2f50906260920q45542274o44c654f6986e9148@mail.gmail.com> Hi, I am having trouble loading the sagittal and coronal views of the CT/MRI dicom images. For both CT and MRI, the Sagittal and Coronal images are getting loaded in the Axial 2D plane instead of showing up in their Sagittal and Coronal planes resp. I checked the Dicom header fields and noticed that the "Image Type" field is listed as either "OTHER" or "SE" for all the images in most of my datasets. Could this be causing this problem? Is there a workaround in igstk to handle this problem? Any help would be greatly appreciated. Thanks, Taruna -------------- next part -------------- An HTML attachment was scrubbed... URL: From zivy at isis.imac.georgetown.edu Mon Jun 29 10:17:09 2009 From: zivy at isis.imac.georgetown.edu (Ziv Yaniv) Date: Mon, 29 Jun 2009 10:17:09 -0400 Subject: [IGSTK-Users] Tool positions or Tools Translations? In-Reply-To: References: <4835BAC3.6070306@kitware.com> Message-ID: <4A48CCE5.3050905@isis.imac.georgetown.edu> Hi Eric, Which tracking system are you using? Currently, IGSTK does not support tracking of single markers (MicronTracker's XPoint or NDI's reflective spheres). All tracked objects consist of at least three points, with IGSTK sending the relevant API commands to the tracker based on the assumption that we are tracking a frame (coordinate system). regards Ziv -- Ziv Yaniv, PhD., Research Assistant Professor Imaging Science and Information Systems (ISIS) Center Department of Radiology Georgetown University Medical Center 2115 Wisconsin Avenue, Suite 603 Washington, DC, 20007, Phone: +1-202-687-7286 Fax: +1-202-784-3479 email: zivy at isis.georgetown.edu web: http://isiswiki.georgetown.edu/zivy/ Eric L. B. wrote: > > > Hi all. > > I'm working in a project where I need to know the positions in 3D of > each marker (reflective sphere) of a passive tool. > I have some problems with this. > The tool is intented to be referenced to a static tool (the reference > tool provided with the tracking system). > The problem is that when I try to get the transformations of each > marker, there is no consistent data. > > My design tool have three spheres(ellipses), like this: > /////////////Desing Tool03 > translation[0] = 0; > translation[1] = 0; > translation[2] = 0; > rotation.Set( 0.0, 0.0, 0.0, 1.0 ); > transform.SetTranslationAndRotation(translation, rotation, errorValue, > validityTimeInMilliseconds ); > Tool03Ellip1->RequestSetTransformAndParent( transform, Tool03 ); > > translation[0] = 50; > transform.SetTranslationAndRotation(translation, rotation, errorValue, > validityTimeInMilliseconds ); > Tool03Ellip2->RequestSetTransformAndParent( transform, Tool03 ); > > translation[0] = 32.07; > translation[1] = 58.83; > transform.SetTranslationAndRotation(translation, rotation, errorValue, > validityTimeInMilliseconds ); > Tool03Ellip3->RequestSetTransformAndParent( transform, Tool03 ); > > > I set some observers to each ellipse: > T3Ellip1Observer = ObserverType::New(); > T3Ellip1Observer->ObserveTransformEventsFrom( Tool03Ellip1 ); > T3Ellip2Observer = ObserverType::New(); > T3Ellip2Observer->ObserveTransformEventsFrom( Tool03Ellip2 ); > T3Ellip3Observer = ObserverType::New(); > T3Ellip3Observer->ObserveTransformEventsFrom( Tool03Ellip3 ); > > And I get the transformations: > TT3Ellip01=T3Ellip1Observer->GetTransform(); > translation=TT3Ellip01.GetTranslation(); > T3RotE1=TT3Ellip01.GetRotation(); > ///... for each ellipse > > With the transformations data I try to apply the rotation and > translation to each position marker taked from origin of coordinate > system (reference tool), but the positions that i get seems to be incorrect. > Then, I decided to take directly the translation as the position, with > no rotation, and the result were better, but with positions not aligned > to the coordinated system (rotated). If i apply the rotation to each > marker, the result is again bad. > > I undesrtand that to get the transformations referenced to the static > tool need to apply: > T= (Mreg) (Tref^-1) (Traw) (Mcal) ... (IGSTK The book for release > 2.0, Chap 8.2.5 Coordinate Transformations, pp 105) > In this case, there is no Mreg and Mcal. When i try to get the > referenced transformation of the ellispes, i use this code: > TAbs01=TAbs01.TransformCompose(TRef.GetInverse(),TT3Ellip01); //... > for each ellipse > But the data is incorrect. > > I plot the data with matlab to emulate the movement of the tool, thats > why i can see the incorrect transformations. > Considering all this long process :s my question is How can i get the > three marker positions??? What i need to do with the rotations??? > There is something that i'm doing bad?? Some idea???? > Please, I hope someone can help me. > > Thanks. > > > Eric LB > > > > > ------------------------------------------------------------------------ > Est?s a un clic para ganar premios con Windows Live > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users From zivy at isis.imac.georgetown.edu Mon Jun 29 11:04:45 2009 From: zivy at isis.imac.georgetown.edu (Ziv Yaniv) Date: Mon, 29 Jun 2009 11:04:45 -0400 Subject: [IGSTK-Users] Augmented reality In-Reply-To: <4A43B1E2.20206@fing.edu.uy> References: <4A410A48.5030508@fing.edu.uy> <4A413D54.6030307@isis.georgetown.edu> <4A43B1E2.20206@fing.edu.uy> Message-ID: <4A48D80D.70400@isis.imac.georgetown.edu> Hi Alvaro, Right now the igstkPerspectiveTransform is more of a place holder than a class that is in use. I implemented it as a data object for loading calibration data for perspective cameras (endoscope/microscope/X-ray). Up to this point we have not developed a framework for augmented reality in IGSTK so we don't offer an "official" solution that is better than your use of multiple renderers. Keep in mind that the coordinate system tree you are creating makes sense for your application. Adding such a framework is one of the extensions of the toolkit we will be looking into. regards Ziv -- Ziv Yaniv, PhD., Research Assistant Professor Imaging Science and Information Systems (ISIS) Center Department of Radiology Georgetown University Medical Center 2115 Wisconsin Avenue, Suite 603 Washington, DC, 20007, Phone: +1-202-687-7286 Fax: +1-202-784-3479 email: zivy at isis.georgetown.edu web: http://isiswiki.georgetown.edu/zivy/ Alvaro G?mez wrote: > > The idea of using the perspective transform seems to be the better way > but I still don?t see how to use it and I don?t find examples in the > IGSTK or Sandbox code. > > Could you give me the basic idea of how to use the > igstkPerspectiveTransform or point me an example? > > Thanks > Alvaro > > El d?a martes, 23 de junio de 2009 05:38:44 p.m. > Patrick Cheng > escribi?: >> Hi Alvaro, >> >> >> >> Sorry for the late reply. Your email probably fall through our eyes as >> we were busy preparing for the latest release. >> >> >> >> I think what you are doing is feasible. My question is why do you want >> to use multiple renderers? >> >> >> >> If you want to overlay object with a 2D video, you can use perspective >> transform to project the object on to the image >> (igstkPerspectiveTransform). It will be better to use a single >> renderer so that you have the same camera and coordinate system. >> >> >> >> Also notice that in the IGSTK coordinate system frame work, we >> consider View as a node in the scene graph tree. That assumes we only >> have one renderer in the View (one coordinate system and one camera >> position). Take these into consideration if you want to modify View to >> accommodate multiple renderers. >> >> >> >> Patrick >> > > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users > > From eric_lb at hotmail.com Mon Jun 29 12:31:29 2009 From: eric_lb at hotmail.com (Eric L. B.) Date: Mon, 29 Jun 2009 16:31:29 +0000 Subject: [IGSTK-Users] Tool positions or Tools Translations? In-Reply-To: <4A48CCE5.3050905@isis.imac.georgetown.edu> References: <4835BAC3.6070306@kitware.com> <4A48CCE5.3050905@isis.imac.georgetown.edu> Message-ID: Hello... I'm using a NDI Polaris tracking system. I know that IGSTK is not supported for single markers tracking. Thats why i'm looking for another option. I have a passive tool with three markers. With the tracking system i can get the position of one of the spheres, because the origin of the coordinate system is exactly in one sphere. With this information i want to rebuild the position of the other two spheres. Graphically, I draw the other two spheres and set observers to each sphere. With this, i think i can get the transformations that correspond with the real reflective spheres. Comparing the position returned by the observer of sphere 1 (origin of the coordinate) with the information of the tracking of the passive tool, this data math. Then i suppose that the other two positions returned by the observers for spheres 2 and 3 must match too, but its not true :( There are, in the best case, positions not corresponding with the coordinate system, they are transformated. Then, i don't know if i'm using the data correctly. The information of a transform returned by the observer is the rotation (GetRotation) and translation (GetTranslation) or is the position and rotation. How can i get the orientation of the tool?? Regards, Eric Image Analysis And Visualization Laboratory Centro de Ciencias Aplicadas y Desarrollo Tecnologico CCADET UNAM Circuito Exterior S/N, Cd. Universitaria, AP 70-186, CP 04510 Mexico, DF Tel: +(52)(55) 56 22 86 02, ext. 1130 *************************************************** > Date: Mon, 29 Jun 2009 10:17:09 -0400 > From: zivy at isis.imac.georgetown.edu > To: eric_lb at hotmail.com > CC: igstk-users at public.kitware.com > Subject: Re: [IGSTK-Users] Tool positions or Tools Translations? > > Hi Eric, > > Which tracking system are you using? > > Currently, IGSTK does not support tracking of single markers > (MicronTracker's XPoint or NDI's reflective spheres). All tracked > objects consist of at least three points, with IGSTK sending the > relevant API commands to the tracker based on the assumption that we are > tracking a frame (coordinate system). > > regards > Ziv > > > -- > Ziv Yaniv, PhD., Research Assistant Professor > Imaging Science and Information Systems (ISIS) Center > Department of Radiology > Georgetown University Medical Center > 2115 Wisconsin Avenue, Suite 603 > Washington, DC, 20007, > > Phone: +1-202-687-7286 > Fax: +1-202-784-3479 > email: zivy at isis.georgetown.edu > web: http://isiswiki.georgetown.edu/zivy/ > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > Powered by www.kitware.com > > > > Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html > > > > Follow this link to subscribe/unsubscribe: > > http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users > > _________________________________________________________________ Si no est? en Windows Live, nunca pas? http://www.actualizatuperfil.com.mx/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From jdmcivor at interchange.ubc.ca Mon Jun 29 13:28:57 2009 From: jdmcivor at interchange.ubc.ca (Jake McIvor) Date: Mon, 29 Jun 2009 10:28:57 -0700 Subject: [IGSTK-Users] Tool positions or Tools Translations? In-Reply-To: <7612_1246293178_1246293178_14798_1246293175_1246293175_SNT112-W269A7A891D48DBE8A2248583300@phx.gbl> References: <4835BAC3.6070306@kitware.com> <4A48CCE5.3050905@isis.imac.georgetown.edu> <7612_1246293178_1246293178_14798_1246293175_1246293175_SNT112-W269A7A891D48DBE8A2248583300@phx.gbl> Message-ID: Hey Eric, Can you clarify something? Is there any relative motion between your passive markers, or are they fixed to a rigid body? If they are fixed like a 'normal' wireless tool, you should be able to setup your scene graph in IGSTK to match the settings in the .rom file. I think you want to use the RequestComputeTransformTo() method instead of the GetTransform() method. The argument should be whatever your reference is (I think you were using a static reference tool). The GetTransform() method only returns the transform to an objects parent, which in this case would be your tool, and the transform you defined. Although it is possible to get single (stray) marker position data from Polaris, as others have mentioned, IGSTK doesn't really support it. I believe the difficulty is because there is no way to keep track of which marker is which. So, if you just want to recreate where the markers were as you moved a wireless tool, you should be able to change your method as above. If you want to look at the actual positions of the markers, it will be more difficult. Hope that helps, Jake -- Jake McIvor MASc Candidate, Biomedical Engineering University of British Columbia On 6/29/09, Eric L. B. wrote: > > > > > > Hello... > > I'm using a NDI Polaris tracking system. > > I know that IGSTK is not supported for single markers tracking. Thats why > i'm looking for another option. > > I have a passive tool with three markers. With the tracking system i can get > the position of one of the spheres, because the origin of the coordinate > system is exactly in one sphere. > > With this information i want to rebuild the position of the other two > spheres. Graphically, I draw the other two spheres and set observers to each > sphere. With this, i think i can get the transformations that correspond > with the real reflective spheres. > > Comparing the position returned by the observer of sphere 1 (origin of the > coordinate) with the information of the tracking of the passive tool, this > data math. Then i suppose that the other two positions returned by the > observers for spheres 2 and 3 must match too, but its not true :( There are, > in the best case, positions not corresponding with the coordinate system, > they are transformated. > > Then, i don't know if i'm using the data correctly. The information of a > transform returned by the observer is the rotation (GetRotation) and > translation (GetTranslation) or is the position and rotation. > > How can i get the orientation of the tool?? > > > > Regards, > > Eric > > > > > > Image Analysis And Visualization Laboratory > Centro de Ciencias Aplicadas y Desarrollo Tecnologico CCADET UNAM > Circuito Exterior S/N, Cd. Universitaria, > AP 70-186, CP 04510 Mexico, DF > Tel: +(52)(55) 56 22 86 02, ext. 1130 > > > > > > > *************************************************** >> Date: Mon, 29 Jun 2009 10:17:09 -0400 >> From: zivy at isis.imac.georgetown.edu >> To: eric_lb at hotmail.com >> CC: igstk-users at public.kitware.com >> Subject: Re: [IGSTK-Users] Tool positions or Tools Translations? >> >> Hi Eric, >> >> Which tracking system are you using? >> >> Currently, IGSTK does not support tracking of single markers >> (MicronTracker's XPoint or NDI's reflective spheres). All tracked >> objects consist of at least three points, with IGSTK sending the >> relevant API commands to the tracker based on the assumption that we are >> tracking a frame (coordinate system). >> >> regards >> Ziv >> >> > -- >> Ziv Yaniv, PhD., Research Assistant Professor >> Imaging Science and Information Systems (ISIS) Center >> Department of Radiology >> Georgetown University Medical Center >> 2115 Wisconsin Avenue, Suite 603 >> Washington, DC, 20007, >> >> Phone: +1-202-687-7286 >> Fax: +1-202-784-3479 >> email: zivy at isis.georgetown.edu >> web: http://isiswiki.georgetown.edu/zivy/ >> > > ------------------------------------------------------------------------ >> > >> > _______________________________________________ >> > Powered by www.kitware.com >> > >> > Visit other Kitware open-source projects at >> > http://www.kitware.com/opensource/opensource.html >> > >> > Follow this link to subscribe/unsubscribe: >> > http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users >> >> > > _________________________________________________________________ > Si no est? en Windows Live, nunca pas? > http://www.actualizatuperfil.com.mx/ From eric_lb at hotmail.com Mon Jun 29 16:57:05 2009 From: eric_lb at hotmail.com (Eric L. B.) Date: Mon, 29 Jun 2009 20:57:05 +0000 Subject: [IGSTK-Users] Tool positions or Tools Translations? In-Reply-To: References: <4835BAC3.6070306@kitware.com> <4A48CCE5.3050905@isis.imac.georgetown.edu> <7612_1246293178_1246293178_14798_1246293175_1246293175_SNT112-W269A7A891D48DBE8A2248583300@phx.gbl> Message-ID: Hello Jake... There is no relative motion between markers, they are fixed like a rigid body. In the scene graph, the position of the spheres match the settings in the tool geometry file. I use a static reference tool. Can you explain me more about the RequestComputeTransformTo() method??? i can't find information helpfull. I've only found that there is two methods with this name: void RequestComputeTransformTo(const CoordinateSystem* targetCoordSys); // in IGSTKCoordinateSystem.h void RequestComputeTransformTo(const TTarget & target); // in IGSTKCoordinateSystemDelegator.h Wich is the difference with GetTransform() or where can i get more information about it??? In our project, the purpose of to get the positions of the three markers is to know the orientation and position of the plane generated by these three points. This plane represents an image that moves fixed to the passive tool. hope this information can help to give you an idea :P Thanks, Eric Image Analysis And Visualization Laboratory Centro de Ciencias Aplicadas y Desarrollo Tecnologico CCADET Universidad Nacional Aut?noma de M?xico Circuito Exterior S/N, Cd. Universitaria, AP 70-186, CP 04510 M?xico, DF Tel: +(52)(55) 56 22 86 02, ext. 1130 > Date: Mon, 29 Jun 2009 10:28:57 -0700 > Subject: Re: [IGSTK-Users] Tool positions or Tools Translations? > From: jdmcivor at interchange.ubc.ca > To: eric_lb at hotmail.com; igstk-users at public.kitware.com > > Hey Eric, > > Can you clarify something? Is there any relative motion between your > passive markers, or are they fixed to a rigid body? > > If they are fixed like a 'normal' wireless tool, you should be able to > setup your scene graph in IGSTK to match the settings in the .rom > file. I think you want to use the RequestComputeTransformTo() method > instead of the GetTransform() method. The argument should be whatever > your reference is (I think you were using a static reference tool). > The GetTransform() method only returns the transform to an objects > parent, which in this case would be your tool, and the transform you > defined. > > Although it is possible to get single (stray) marker position data > from Polaris, as others have mentioned, IGSTK doesn't really support > it. I believe the difficulty is because there is no way to keep track > of which marker is which. > > So, if you just want to recreate where the markers were as you moved a > wireless tool, you should be able to change your method as above. If > you want to look at the actual positions of the markers, it will be > more difficult. > > Hope that helps, > > Jake > > -- > Jake McIvor > MASc Candidate, Biomedical Engineering > University of British Columbia > > _________________________________________________________________ Y t?, ?ya actualizaste tu Perfil? http://www.actualizatuperfil.com.mx/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From jdmcivor at interchange.ubc.ca Mon Jun 29 18:00:38 2009 From: jdmcivor at interchange.ubc.ca (Jake McIvor) Date: Mon, 29 Jun 2009 15:00:38 -0700 Subject: [IGSTK-Users] Tool positions or Tools Translations? In-Reply-To: <19661_1246309029_1246309029_SNT112-W453239B25AD1268E7648BB83300@phx.gbl> References: <4835BAC3.6070306@kitware.com> <4A48CCE5.3050905@isis.imac.georgetown.edu> <7612_1246293178_1246293178_14798_1246293175_1246293175_SNT112-W269A7A891D48DBE8A2248583300@phx.gbl> <19661_1246309029_1246309029_SNT112-W453239B25AD1268E7648BB83300@phx.gbl> Message-ID: Hey Eric, Okay, I think I understand what you are trying to do now. You are using a wireless Polaris tool with 3 passive markers, and interested in figuring out the location and orientation of the plane defined by the center of the three markers. The RequestComputeTransformTo() method is part of the CoordinateSystem class. It is described in chapter 8 of the IGSTK book. It will compute the transform between any two coordinate systems as long as they are connected by a scene graph. The GetTransform() method only returns the transform to the parent. There is an example of how to use it with a transform observer in the Needle Biopsy example (Chapter 22): // Connect observer typedef igstk::TransformObserver ObserverType; ObserverType::Pointer transformObserver = ObserverType::New(); transformObserver->ObserveTransformEventsFrom( m_ActiveTool ); transformObserver->Clear(); // Request for transform m_ActiveTool->RequestComputeTransformTo( m_WorldReference ); // Check the recipient if ( transformObserver->GotTransform() ) { // Retreive the transform igstk::Transform transform = transformObserver->GetTransform() ; } In your case, you'd swap m_ActiveTool with the ellipsoid spatial object and m_WorldReference with your static reference tool. There may be an easier way, however. You said that the local coordinate system of your tool is centered at one of the markers. If the other two markers are defined to be in the xy plane, and perhaps defined along the x or y axis, then the normal axis of your plane will be aligned with the z-axis of the local coordinate system. You could then use the transform (position + orientation) information of the tool itself without worrying about calculating the position of the markers and then calculating the plane based on the marker positions... Cheers, Jake On Mon, Jun 29, 2009 at 1:57 PM, Eric L. B. wrote: > > Hello Jake... > > There is no relative motion between markers, they are fixed?like a rigid > body. > In the scene graph, the position of the spheres match the settings in the > tool geometry file. > I?use a static reference tool. > Can?you explain me more about the RequestComputeTransformTo() method??? i > can't find information helpfull. > I've only found that there is two methods with this name: > void RequestComputeTransformTo(const CoordinateSystem* targetCoordSys); // > in IGSTKCoordinateSystem.h > void RequestComputeTransformTo(const TTarget & target); // in > IGSTKCoordinateSystemDelegator.h > > > Wich is the difference with GetTransform() or where can i get more > information about it??? > In our project, the purpose of to get the positions of the three markers is > to know the orientation and position of the plane generated by?these three > points. > This plane represents an image that moves fixed to the passive tool. hope > this information can help to give you an idea :P > > > Thanks, > > Eric > > Image Analysis And Visualization Laboratory > Centro de Ciencias Aplicadas y Desarrollo Tecnologico CCADET > Universidad Nacional Aut?noma de M?xico > Circuito Exterior S/N, Cd. Universitaria, > AP 70-186, CP 04510 M?xico, DF > Tel: +(52)(55) 56 22 86 02, ext. 1130 > > > > > > >> Date: Mon, 29 Jun 2009 10:28:57 -0700 >> Subject: Re: [IGSTK-Users] Tool positions or Tools Translations? >> From: jdmcivor at interchange.ubc.ca >> To: eric_lb at hotmail.com; igstk-users at public.kitware.com >> >> Hey Eric, >> >> Can you clarify something? Is there any relative motion between your >> passive markers, or are they fixed to a rigid body? >> >> If they are fixed like a 'normal' wireless tool, you should be able to >> setup your scene graph in IGSTK to match the settings in the .rom >> file. I think you want to use the RequestComputeTransformTo() method >> instead of the GetTransform() method. The argument should be whatever >> your reference is (I think you were using a static reference tool). >> The GetTransform() method only returns the transform to an objects >> parent, which in this case would be your tool, and the transform you >> defined. >> >> Although it is possible to get single (stray) marker position data >> from Polaris, as others have mentioned, IGSTK doesn't really support >> it. I believe the difficulty is because there is no way to keep track >> of which marker is which. >> >> So, if you just want to recreate where the markers were as you moved a >> wireless tool, you should be able to change your method as above. If >> you want to look at the actual positions of the markers, it will be >> more difficult. >> >> Hope that helps, >> >> Jake >> >> -- >> Jake McIvor >> MASc Candidate, Biomedical Engineering >> University of British Columbia >> >> > > > ________________________________ > Tu vida, tus amigos y lo que te interesa est? en Perfil de Windows Live. > Actual?zalo. From michel.audette at kitware.com Tue Jun 30 10:13:50 2009 From: michel.audette at kitware.com (Michel Audette) Date: Tue, 30 Jun 2009 10:13:50 -0400 Subject: [IGSTK-Users] Problem with Sagittal/Coronal views In-Reply-To: References: <1828b2f50906260920q45542274o44c654f6986e9148@mail.gmail.com> <1828b2f50906280913y5c4e7f37ve45dc910af0b1950@mail.gmail.com> <1828b2f50906290629t52cf020v5f12e5cc954f65f2@mail.gmail.com> <1828b2f50906290815i75112168j81aa8e73498a0edf@mail.gmail.com> Message-ID: Hi Taruna, I had a look at your images with the aeskulap viewer, and they don't appear to comprise a volume in the usual sense. They seem to be a collection of individual 1-slice images of differing orientations and modalities. If you have a volume that has the same issues, please report back. Best wishes, Michel On Mon, Jun 29, 2009 at 11:22 AM, Michel Audette wrote: > Hi Taruna, > > thanks for your email. I'll report back shortly. > > Best wishes, > > Michel > > On Mon, Jun 29, 2009 at 11:15 AM, taruna seth wrote: >> >> Hi Michel, >> >> I think my previous mail (below)?went without the attachment. I am resending >> it incase you didn't get it earlier. >> >> Thanks, >> Taruna >> ---------- Forwarded message ---------- >> From: taruna seth >> Date: Mon, Jun 29, 2009 at 9:29 AM >> Subject: Re: [IGSTK-Users] Problem with Sagittal/Coronal views >> To: Michel Audette >> >> >> Hello Michel, >> >> Sorry for the delay in my mail. I got the mri images directly from the >> hospital in a CD. I am sending you?a subset of?my MRI dataset via this email >> (MRI_TestSubSet.rar) . ?I have anonymized some of the fields in the dcm >> files using a test version of a Sante Dicom Editor S/W so all the images in >> this test subset have?some extra?information displayed on the top but it >> doesn't affect anything. I tested my?program?using these images, it works >> fine but still shows everything in the axial view. >> >> I am a little bit reluctant to send?the data?through the website (yousendit) >> because of privacy concerns. >> I tried another public dataset (knee-mri)?that is available at : >> http://www.barre.nom.fr/medical/samples/files/MR-MONO2-16-knee.gz >> I am having the same problem with this dataset too. >> >> Please let me know if this information is sufficient for you or if there is >> anything else that needs to be provided from my side. >> >> Thank you for your time and attention to this matter. Looking forward to >> hear from you. >> >> Thanks, >> Taruna >> >> On Sun, Jun 28, 2009 at 4:21 PM, Michel Audette >> wrote: >>> >>> Hello Taruna, >>> >>> if you have a DICOM server, let me know if I can access it with some >>> sort of public password. Alternately, you could use something like >>> yousendit.com, if the zipped or tarzipped volume is within their >>> limit. >>> >>> Best wishes, >>> >>> Michel >>> >>> On Sun, Jun 28, 2009 at 12:13 PM, taruna seth wrote: >>> > >>> > Hi Michel, >>> > >>> > Thank you for your?mail. I can try to send you a subset of the dataset >>> > via >>> > email at your current address (michel.audette at kitware.com) later today. >>> > Please let me know if this is ok with you or if you would like me to >>> > mail >>> > it/upload it at a different location. The complete dataset is very big >>> > so I >>> > wouldn't be able to send the entire thing via email. >>> > >>> > Thank you again. >>> > >>> > Thanks, >>> > Taruna >>> > >>> > On Sat, Jun 27, 2009 at 4:44 PM, Michel Audette >>> > >>> > wrote: >>> >> >>> >> Hi Taruna, >>> >> >>> >> I would like to have a look at your data and try to reproduce the >>> >> problem. Please let me know how to proceed. >>> >> >>> >> Best wishes, >>> >> >>> >> Michel >>> >> >>> >> On Fri, Jun 26, 2009 at 12:20 PM, taruna seth >>> >> wrote: >>> >> > Hi, >>> >> > >>> >> > I am?having trouble loading the sagittal and coronal views of the >>> >> > CT/MRI >>> >> > dicom images. For both CT and MRI, the Sagittal and Coronal?images >>> >> > are >>> >> > getting loaded in the Axial 2D plane instead of showing up in their >>> >> > Sagittal >>> >> > and Coronal planes resp. >>> >> > >>> >> > I checked the?Dicom header?fields and noticed that the "Image Type" >>> >> > field?is >>> >> > listed as either "OTHER" or "SE" for all the images in most of my >>> >> > datasets. >>> >> > Could this be causing this problem? Is there a workaround in igstk to >>> >> > handle >>> >> > this problem? >>> >> > >>> >> > Any help would be greatly appreciated. >>> >> > >>> >> > Thanks, >>> >> > Taruna >>> >> > _______________________________________________ >>> >> > Powered by www.kitware.com >>> >> > >>> >> > Visit other Kitware open-source projects at >>> >> > http://www.kitware.com/opensource/opensource.html >>> >> > >>> >> > Follow this link to subscribe/unsubscribe: >>> >> > http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users >>> >> > >>> >> >>> >> >>> >> >>> >> -- >>> >> Michel Audette, Ph.D. >>> >> R & D Engineer, >>> >> Kitware Inc., >>> >> Chapel Hill, N.C. >>> > >>> > >>> >>> >>> >>> -- >>> Michel Audette, Ph.D. >>> R & D Engineer, >>> Kitware Inc., >>> Chapel Hill, N.C. >> >> >> > > > > -- > Michel Audette, Ph.D. > R & D Engineer, > Kitware Inc., > Chapel Hill, N.C. > -- Michel Audette, Ph.D. R & D Engineer, Kitware Inc., Chapel Hill, N.C.