<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.na-mic.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jgumprec</id>
	<title>NAMIC Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.na-mic.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jgumprec"/>
	<link rel="alternate" type="text/html" href="https://www.na-mic.org/wiki/Special:Contributions/Jgumprec"/>
	<updated>2026-04-07T09:58:52Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=User:Gumprecht&amp;diff=65845</id>
		<title>User:Gumprecht</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=User:Gumprecht&amp;diff=65845"/>
		<updated>2011-03-30T17:50:43Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Documentation of the System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Wikipage of Jan Gumprecht =&lt;br /&gt;
&lt;br /&gt;
== About Myself ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Gumprecht Jan.jpg |thumb|Jan Gumprecht]]&lt;br /&gt;
&lt;br /&gt;
I am a student in Computer Engineering from the University of Mannheim, Germany with a specification in Optoelectronics. At the moment I am writing my diploma thesis on the project described below. This is not my first stay in North America. I studied already in Waterloo, On, Canada from September 2006 to August 2007 . You may find more information in my [[Media: Gumprecht-Jan-Resume.pdf | Resume]]&lt;br /&gt;
&lt;br /&gt;
== Contact Information ==&lt;br /&gt;
&lt;br /&gt;
If you would like to contact me feel free to write me an e-mail.&lt;br /&gt;
&lt;br /&gt;
E-mail: jgumprec (at sign) bwh.harvard.edu&lt;br /&gt;
&lt;br /&gt;
== Project - Development and Validation of an Open-Source Real-Time Freehand 3D Ultrasound Navigation System for Liver Surgery with GPGPU Acceleration==&lt;br /&gt;
&lt;br /&gt;
In my project I developed an open-source navigation system with general purpose graphics unit (GPGPU) acceleration for real-time freehand 3D-Ultrasound using conventional hardware equipment.&lt;br /&gt;
&lt;br /&gt;
The proposed software system consists of two distinct components (see graphic below). First, it records data of a tracked US-device and reconstructs volume data in real-time. Simultaneously, position and orientation data of a tracked instrument are acquired. Both the volumes and the spatial information about the tracked instrument are forwarded to the 3D simulation and navigation software [http://www.slicer.org Slicer3D].&lt;br /&gt;
&lt;br /&gt;
[[Image:SystemStructure.png | 800px ]]&lt;br /&gt;
&lt;br /&gt;
=== Documentation of the System ===&lt;br /&gt;
&lt;br /&gt;
* Download a presentation of the system [[Media:Gumprecht_Jan-4DUltrasound.pdf | here]]&lt;br /&gt;
* Download my thesis [[Media:Gumprecht_Jan-2009-Diploma_Thesis.pdf‎ |here]]&lt;br /&gt;
&lt;br /&gt;
=== Technical Information ===&lt;br /&gt;
&lt;br /&gt;
All technical Information can be found here: [[Technical Information]]&lt;br /&gt;
&lt;br /&gt;
=== Progress ===&lt;br /&gt;
&lt;br /&gt;
You can see the progress of my project [[4D Ultrasound Progress | here]]&lt;br /&gt;
&lt;br /&gt;
=== Screenshots ===&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-2.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-3.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-4.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-5.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-6.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-7.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-8.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
=== Images ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Image-1.JPG | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Image-2.JPG | 600px]]&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=User:Gumprecht&amp;diff=65844</id>
		<title>User:Gumprecht</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=User:Gumprecht&amp;diff=65844"/>
		<updated>2011-03-30T17:50:24Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Documentation of the System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Wikipage of Jan Gumprecht =&lt;br /&gt;
&lt;br /&gt;
== About Myself ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Gumprecht Jan.jpg |thumb|Jan Gumprecht]]&lt;br /&gt;
&lt;br /&gt;
I am a student in Computer Engineering from the University of Mannheim, Germany with a specification in Optoelectronics. At the moment I am writing my diploma thesis on the project described below. This is not my first stay in North America. I studied already in Waterloo, On, Canada from September 2006 to August 2007 . You may find more information in my [[Media: Gumprecht-Jan-Resume.pdf | Resume]]&lt;br /&gt;
&lt;br /&gt;
== Contact Information ==&lt;br /&gt;
&lt;br /&gt;
If you would like to contact me feel free to write me an e-mail.&lt;br /&gt;
&lt;br /&gt;
E-mail: jgumprec (at sign) bwh.harvard.edu&lt;br /&gt;
&lt;br /&gt;
== Project - Development and Validation of an Open-Source Real-Time Freehand 3D Ultrasound Navigation System for Liver Surgery with GPGPU Acceleration==&lt;br /&gt;
&lt;br /&gt;
In my project I developed an open-source navigation system with general purpose graphics unit (GPGPU) acceleration for real-time freehand 3D-Ultrasound using conventional hardware equipment.&lt;br /&gt;
&lt;br /&gt;
The proposed software system consists of two distinct components (see graphic below). First, it records data of a tracked US-device and reconstructs volume data in real-time. Simultaneously, position and orientation data of a tracked instrument are acquired. Both the volumes and the spatial information about the tracked instrument are forwarded to the 3D simulation and navigation software [http://www.slicer.org Slicer3D].&lt;br /&gt;
&lt;br /&gt;
[[Image:SystemStructure.png | 800px ]]&lt;br /&gt;
&lt;br /&gt;
=== Documentation of the System ===&lt;br /&gt;
&lt;br /&gt;
* Download the presentation [[Media:Gumprecht_Jan-4DUltrasound.pdf | here]]&lt;br /&gt;
* Download my thesis [[Media:Gumprecht_Jan-2009-Diploma_Thesis.pdf‎ |here]]&lt;br /&gt;
&lt;br /&gt;
=== Technical Information ===&lt;br /&gt;
&lt;br /&gt;
All technical Information can be found here: [[Technical Information]]&lt;br /&gt;
&lt;br /&gt;
=== Progress ===&lt;br /&gt;
&lt;br /&gt;
You can see the progress of my project [[4D Ultrasound Progress | here]]&lt;br /&gt;
&lt;br /&gt;
=== Screenshots ===&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-2.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-3.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-4.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-5.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-6.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-7.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-8.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
=== Images ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Image-1.JPG | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Image-2.JPG | 600px]]&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=File:Gumprecht_Jan-2009-Diploma_Thesis.pdf&amp;diff=65843</id>
		<title>File:Gumprecht Jan-2009-Diploma Thesis.pdf</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=File:Gumprecht_Jan-2009-Diploma_Thesis.pdf&amp;diff=65843"/>
		<updated>2011-03-30T17:47:59Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=User:Gumprecht&amp;diff=65842</id>
		<title>User:Gumprecht</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=User:Gumprecht&amp;diff=65842"/>
		<updated>2011-03-30T17:46:19Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Presentation of the System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Wikipage of Jan Gumprecht =&lt;br /&gt;
&lt;br /&gt;
== About Myself ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Gumprecht Jan.jpg |thumb|Jan Gumprecht]]&lt;br /&gt;
&lt;br /&gt;
I am a student in Computer Engineering from the University of Mannheim, Germany with a specification in Optoelectronics. At the moment I am writing my diploma thesis on the project described below. This is not my first stay in North America. I studied already in Waterloo, On, Canada from September 2006 to August 2007 . You may find more information in my [[Media: Gumprecht-Jan-Resume.pdf | Resume]]&lt;br /&gt;
&lt;br /&gt;
== Contact Information ==&lt;br /&gt;
&lt;br /&gt;
If you would like to contact me feel free to write me an e-mail.&lt;br /&gt;
&lt;br /&gt;
E-mail: jgumprec (at sign) bwh.harvard.edu&lt;br /&gt;
&lt;br /&gt;
== Project - Development and Validation of an Open-Source Real-Time Freehand 3D Ultrasound Navigation System for Liver Surgery with GPGPU Acceleration==&lt;br /&gt;
&lt;br /&gt;
In my project I developed an open-source navigation system with general purpose graphics unit (GPGPU) acceleration for real-time freehand 3D-Ultrasound using conventional hardware equipment.&lt;br /&gt;
&lt;br /&gt;
The proposed software system consists of two distinct components (see graphic below). First, it records data of a tracked US-device and reconstructs volume data in real-time. Simultaneously, position and orientation data of a tracked instrument are acquired. Both the volumes and the spatial information about the tracked instrument are forwarded to the 3D simulation and navigation software [http://www.slicer.org Slicer3D].&lt;br /&gt;
&lt;br /&gt;
[[Image:SystemStructure.png | 800px ]]&lt;br /&gt;
&lt;br /&gt;
=== Documentation of the System ===&lt;br /&gt;
&lt;br /&gt;
* Download the presentation [[Media:Gumprecht_Jan-4DUltrasound.pdf | here]]&lt;br /&gt;
* Download my thesis here&lt;br /&gt;
&lt;br /&gt;
=== Technical Information ===&lt;br /&gt;
&lt;br /&gt;
All technical Information can be found here: [[Technical Information]]&lt;br /&gt;
&lt;br /&gt;
=== Progress ===&lt;br /&gt;
&lt;br /&gt;
You can see the progress of my project [[4D Ultrasound Progress | here]]&lt;br /&gt;
&lt;br /&gt;
=== Screenshots ===&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-1.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-2.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-3.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-4.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-5.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-6.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-7.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Screenshot-8.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
=== Images ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Image-1.JPG | 600px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:4DUltrasound-Image-2.JPG | 600px]]&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41760</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41760"/>
		<updated>2009-08-20T08:36:02Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Running 4D Ultrasound */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You have to understand the following steps to use 4DUltrasound&lt;br /&gt;
&lt;br /&gt;
# Fullfill the requirements&lt;br /&gt;
# Check out code and build&lt;br /&gt;
# Prepare for use&lt;br /&gt;
# Understand how to use 4DUltrasound Tutorial&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Drawing-System_Design_Hardware.png |600px]]&lt;br /&gt;
&lt;br /&gt;
''a) Conventional computer with GPGPU graphics card and video capture board b) S-Video connection from US machine to Computer to transfer video information c) US machine d) Tracked US (2D US transducer with attached tracking sensor) e) Tracked surgical instrument f) Magnetic field generator of the tracking system g) EM tracker base station to control and to connect each tracking component h) Serial connection between EM tracker and computer to transfer position and orientation information.''&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
Tracker attached to ultrasound transducer&lt;br /&gt;
&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 400px ]]&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''.&lt;br /&gt;
&lt;br /&gt;
A video of the build process can be found [http://wiki.na-mic.org/Wiki/images/1/1f/BuildInstructions.swf here ] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Set &amp;quot;BUILD_SHARED_LIBS&amp;quot; to OFF &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
Tutorials how to prepare 4D Ultrasound for use can be found here: [[4DUltrasound_Preparation_to_use]]&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
Here you can see a video tutorial on how to use the software: [http://wiki.na-mic.org/Wiki/images/f/f9/Usage.swf]&lt;br /&gt;
&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink and you must&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run 4DUltrasound on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt -gf -tu&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
| --grab-ultrasound-frames || -gf || Grab ultrasound frames from the capture board&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --get-calibration-data || -gcd || Get calibration data&lt;br /&gt;
|-&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41759</id>
		<title>4DUltrasound Preparation to use</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41759"/>
		<updated>2009-08-20T08:24:36Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Update the Calibration file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Preparation for the use of 4D Ultrasound =&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Preparation_to_use_4D_Ultrasound &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
== Update the Calibration file ==&lt;br /&gt;
&lt;br /&gt;
The following section must be adjusted according to your setup:&lt;br /&gt;
&lt;br /&gt;
Image Settings&lt;br /&gt;
* Image Margins&lt;br /&gt;
Tracked Ultrasound Calibration&lt;br /&gt;
* Offset tracker sensor - ultrasound transducer &amp;lt;br&amp;gt; You have to measure this offset manual. The axis are aligned like in the image shown below.&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 300px ]]&lt;br /&gt;
* Tracker Sensor to Ultrasound Transducer Calibration&lt;br /&gt;
* Orientation of the sensor at calibration time&lt;br /&gt;
System settings&lt;br /&gt;
* Video Device Name&lt;br /&gt;
* Video Channel - You have to find out the correct channel of your capture board. You may use for example [http://www.videolan.org/vlc/ VLC] or [http://linux.bytesex.org/xawtv/ xawtv].&lt;br /&gt;
Ultrasound Settings&lt;br /&gt;
* Ultrasound scan depth - This properties depends on the settings made at your ultrasound machine&lt;br /&gt;
* Ultrasound scan fan height - The tutorial can be found here [http://wiki.na-mic.org/Wiki/images/5/54/FanHeight.swf here]&lt;br /&gt;
&lt;br /&gt;
== Manual Calibration ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare Slicer for Calibration ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;flash&amp;gt;file=StartUpSlicer.swf|width=1024|height=768|quality=best&amp;lt;/flash&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can watch the tutorial [http://wiki.na-mic.org/Wiki/images/e/ea/StartUpSlicer.swf here]&lt;br /&gt;
&lt;br /&gt;
=== Get Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;flash&amp;gt;file=GetCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can watch the tutorial [http://wiki.na-mic.org/Wiki/images/2/2a/GetCalibrationData.swf here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apply Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;flash&amp;gt;file=ApplyCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can watch the tutorial [http://wiki.na-mic.org/Wiki/images/0/0f/ApplyCalibrationData.swf here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Image Properties ==&lt;br /&gt;
&lt;br /&gt;
=== Image Margin ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;flash&amp;gt;file=GetImageMargins.swf‎|width=960|height=768|quality=best&amp;lt;/flash&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can watch the tutorial [http://wiki.na-mic.org/Wiki/images/8/84/GetImageMargins.swf here]&lt;br /&gt;
&lt;br /&gt;
=== Fan Height ===&lt;br /&gt;
&lt;br /&gt;
You can watch the tutorial [http://wiki.na-mic.org/Wiki/images/5/54/FanHeight.swf here]&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41758</id>
		<title>4DUltrasound Preparation to use</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41758"/>
		<updated>2009-08-20T08:23:32Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Preparation for the use of 4D Ultrasound =&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Preparation_to_use_4D_Ultrasound &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
== Update the Calibration file ==&lt;br /&gt;
&lt;br /&gt;
The following section must be adjusted according to your setup:&lt;br /&gt;
&lt;br /&gt;
Image Settings&lt;br /&gt;
* Image Margins&lt;br /&gt;
Tracked Ultrasound Calibration&lt;br /&gt;
* Offset tracker sensor - ultrasound transducer &amp;lt;br&amp;gt; You have to measure this offset manual. The axis are aligned like in the image shown below.  &lt;br /&gt;
* Tracker Sensor to Ultrasound Transducer Calibration&lt;br /&gt;
* Orientation of the sensor at calibration time&lt;br /&gt;
System settings&lt;br /&gt;
* Video Device Name&lt;br /&gt;
* Video Channel - You have to find out the correct channel of your capture board. You may use for example [http://www.videolan.org/vlc/ VLC] or [http://linux.bytesex.org/xawtv/ xawtv].&lt;br /&gt;
Ultrasound Settings&lt;br /&gt;
* Ultrasound scan depth - This properties depends on the settings made at your ultrasound machine&lt;br /&gt;
* Ultrasound scan fan height - The tutorial can be found here [http://wiki.na-mic.org/Wiki/images/5/54/FanHeight.swf here]&lt;br /&gt;
&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 400px ]]&lt;br /&gt;
&lt;br /&gt;
== Manual Calibration ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare Slicer for Calibration ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;flash&amp;gt;file=StartUpSlicer.swf|width=1024|height=768|quality=best&amp;lt;/flash&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can watch the tutorial [http://wiki.na-mic.org/Wiki/images/e/ea/StartUpSlicer.swf here]&lt;br /&gt;
&lt;br /&gt;
=== Get Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;flash&amp;gt;file=GetCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can watch the tutorial [http://wiki.na-mic.org/Wiki/images/2/2a/GetCalibrationData.swf here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apply Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;flash&amp;gt;file=ApplyCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can watch the tutorial [http://wiki.na-mic.org/Wiki/images/0/0f/ApplyCalibrationData.swf here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Image Properties ==&lt;br /&gt;
&lt;br /&gt;
=== Image Margin ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;flash&amp;gt;file=GetImageMargins.swf‎|width=960|height=768|quality=best&amp;lt;/flash&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can watch the tutorial [http://wiki.na-mic.org/Wiki/images/8/84/GetImageMargins.swf here]&lt;br /&gt;
&lt;br /&gt;
=== Fan Height ===&lt;br /&gt;
&lt;br /&gt;
You can watch the tutorial [http://wiki.na-mic.org/Wiki/images/5/54/FanHeight.swf here]&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41757</id>
		<title>4DUltrasound Preparation to use</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41757"/>
		<updated>2009-08-20T08:17:29Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Preparation for the use of 4D Ultrasound =&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Preparation_to_use_4D_Ultrasound &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
== Update the Calibration file ==&lt;br /&gt;
&lt;br /&gt;
The following section must be adjusted according to your setup:&lt;br /&gt;
&lt;br /&gt;
Image Settings&lt;br /&gt;
* Image Margins&lt;br /&gt;
Tracked Ultrasound Calibration&lt;br /&gt;
* Offset tracker sensor - ultrasound transducer &amp;lt;br&amp;gt; You have to measure this offset manual. The axis are aligned like in the image shown below.  &lt;br /&gt;
* Tracker Sensor to Ultrasound Transducer Calibration&lt;br /&gt;
* Orientation of the sensor at calibration time&lt;br /&gt;
System settings&lt;br /&gt;
* Video Device Name&lt;br /&gt;
* Video Channel&lt;br /&gt;
Ultrasound Settings&lt;br /&gt;
* Ultrasound scan depth - This properties depends on the settings made at your ultrasound machine&lt;br /&gt;
* Ultrasound scan fan height&lt;br /&gt;
&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 400px ]]&lt;br /&gt;
&lt;br /&gt;
== Manual Calibration ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare Slicer for Calibration ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;flash&amp;gt;file=StartUpSlicer.swf|width=1024|height=768|quality=best&amp;lt;/flash&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can watch the tutorial [http://wiki.na-mic.org/Wiki/images/e/ea/StartUpSlicer.swf here]&lt;br /&gt;
&lt;br /&gt;
=== Get Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;flash&amp;gt;file=GetCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can watch the tutorial [http://wiki.na-mic.org/Wiki/images/2/2a/GetCalibrationData.swf here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apply Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;flash&amp;gt;file=ApplyCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can watch the tutorial [http://wiki.na-mic.org/Wiki/images/0/0f/ApplyCalibrationData.swf here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Image Properties ==&lt;br /&gt;
&lt;br /&gt;
=== Image Margin ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;flash&amp;gt;file=GetImageMargins.swf‎|width=960|height=768|quality=best&amp;lt;/flash&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can watch the tutorial [http://wiki.na-mic.org/Wiki/images/8/84/GetImageMargins.swf here]&lt;br /&gt;
&lt;br /&gt;
=== Fan Height ===&lt;br /&gt;
&lt;br /&gt;
You can watch the tutorial [http://wiki.na-mic.org/Wiki/images/5/54/FanHeight.swf here]&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=File:FanHeight.swf&amp;diff=41756</id>
		<title>File:FanHeight.swf</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=File:FanHeight.swf&amp;diff=41756"/>
		<updated>2009-08-20T08:12:40Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41755</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41755"/>
		<updated>2009-08-20T08:08:20Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Running 4D Ultrasound */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You have to understand the following steps to use 4DUltrasound&lt;br /&gt;
&lt;br /&gt;
# Fullfill the requirements&lt;br /&gt;
# Check out code and build&lt;br /&gt;
# Prepare for use&lt;br /&gt;
# Understand how to use 4DUltrasound Tutorial&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Drawing-System_Design_Hardware.png |600px]]&lt;br /&gt;
&lt;br /&gt;
''a) Conventional computer with GPGPU graphics card and video capture board b) S-Video connection from US machine to Computer to transfer video information c) US machine d) Tracked US (2D US transducer with attached tracking sensor) e) Tracked surgical instrument f) Magnetic field generator of the tracking system g) EM tracker base station to control and to connect each tracking component h) Serial connection between EM tracker and computer to transfer position and orientation information.''&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
Tracker attached to ultrasound transducer&lt;br /&gt;
&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 400px ]]&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''.&lt;br /&gt;
&lt;br /&gt;
A video of the build process can be found [http://wiki.na-mic.org/Wiki/images/1/1f/BuildInstructions.swf here ] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Set &amp;quot;BUILD_SHARED_LIBS&amp;quot; to OFF &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
Tutorials how to prepare 4D Ultrasound for use can be found here: [[4DUltrasound_Preparation_to_use]]&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
Here you can see a video tutorial on how to use the software: [http://wiki.na-mic.org/Wiki/images/f/f9/Usage.swf]&lt;br /&gt;
&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run 4DUltrasound on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
| --grab-ultrasound-frames || -gf || Grab ultrasound frames from the capture board&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --get-calibration-data || -gcd || Get calibration data&lt;br /&gt;
|-&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41754</id>
		<title>4DUltrasound Preparation to use</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41754"/>
		<updated>2009-08-20T08:01:56Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Image Margin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Preparation for the use of 4D Ultrasound =&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Preparation_to_use_4D_Ultrasound &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
== Update the Calibration file ==&lt;br /&gt;
&lt;br /&gt;
The following section must be adjusted according to your setup:&lt;br /&gt;
&lt;br /&gt;
Image Settings&lt;br /&gt;
* Image Margins&lt;br /&gt;
Tracked Ultrasound Calibration&lt;br /&gt;
* Offset tracker sensor - ultrasound transducer &amp;lt;br&amp;gt; You have to measure this offset manual. The axis are aligned like in the image shown below.  &lt;br /&gt;
* Tracker Sensor to Ultrasound Transducer Calibration&lt;br /&gt;
* Orientation of the sensor at calibration time&lt;br /&gt;
System settings&lt;br /&gt;
* Video Device Name&lt;br /&gt;
* Video Channel&lt;br /&gt;
Ultrasound Settings&lt;br /&gt;
* Ultrasound scan depth - This properties depends on the settings made at your ultrasound machine&lt;br /&gt;
* Ultrasound scan fan height&lt;br /&gt;
&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 400px ]]&lt;br /&gt;
&lt;br /&gt;
== Manual Calibration ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare Slicer for Calibration ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=StartUpSlicer.swf|width=1024|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Get Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=GetCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Apply Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=ApplyCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Image Properties ==&lt;br /&gt;
&lt;br /&gt;
=== Image Margin ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=GetImageMargins.swf‎.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fan Height ===&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41753</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41753"/>
		<updated>2009-08-20T08:00:48Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Running 4D Ultrasound */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You have to understand the following steps to use 4DUltrasound&lt;br /&gt;
&lt;br /&gt;
# Fullfill the requirements&lt;br /&gt;
# Check out code and build&lt;br /&gt;
# Prepare for use&lt;br /&gt;
# Understand how to use 4DUltrasound Tutorial&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Drawing-System_Design_Hardware.png |600px]]&lt;br /&gt;
&lt;br /&gt;
''a) Conventional computer with GPGPU graphics card and video capture board b) S-Video connection from US machine to Computer to transfer video information c) US machine d) Tracked US (2D US transducer with attached tracking sensor) e) Tracked surgical instrument f) Magnetic field generator of the tracking system g) EM tracker base station to control and to connect each tracking component h) Serial connection between EM tracker and computer to transfer position and orientation information.''&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
Tracker attached to ultrasound transducer&lt;br /&gt;
&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 400px ]]&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''.&lt;br /&gt;
&lt;br /&gt;
A video of the build process can be found [http://wiki.na-mic.org/Wiki/images/1/1f/BuildInstructions.swf here ] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Set &amp;quot;BUILD_SHARED_LIBS&amp;quot; to OFF &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
Tutorials how to prepare 4D Ultrasound for use can be found here: [[4DUltrasound_Preparation_to_use]]&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
Here you can see a video tutorial on how to use the software: [http://wiki.na-mic.org/Wiki/images/f/f9/Usage.swf]&lt;br /&gt;
&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
| --grab-ultrasound-frames || -gf || Grab ultrasound frames from the capture board&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --get-calibration-data || -gcd || Get calibration data&lt;br /&gt;
|-&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41752</id>
		<title>4DUltrasound Preparation to use</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41752"/>
		<updated>2009-08-20T07:59:40Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Image Properties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Preparation for the use of 4D Ultrasound =&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Preparation_to_use_4D_Ultrasound &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
== Update the Calibration file ==&lt;br /&gt;
&lt;br /&gt;
The following section must be adjusted according to your setup:&lt;br /&gt;
&lt;br /&gt;
Image Settings&lt;br /&gt;
* Image Margins&lt;br /&gt;
Tracked Ultrasound Calibration&lt;br /&gt;
* Offset tracker sensor - ultrasound transducer &amp;lt;br&amp;gt; You have to measure this offset manual. The axis are aligned like in the image shown below.  &lt;br /&gt;
* Tracker Sensor to Ultrasound Transducer Calibration&lt;br /&gt;
* Orientation of the sensor at calibration time&lt;br /&gt;
System settings&lt;br /&gt;
* Video Device Name&lt;br /&gt;
* Video Channel&lt;br /&gt;
Ultrasound Settings&lt;br /&gt;
* Ultrasound scan depth - This properties depends on the settings made at your ultrasound machine&lt;br /&gt;
* Ultrasound scan fan height&lt;br /&gt;
&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 400px ]]&lt;br /&gt;
&lt;br /&gt;
== Manual Calibration ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare Slicer for Calibration ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=StartUpSlicer.swf|width=1024|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Get Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=GetCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Apply Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=ApplyCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Image Properties ==&lt;br /&gt;
&lt;br /&gt;
=== Image Margin ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=ApplyCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fan Height ===&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41751</id>
		<title>4DUltrasound Preparation to use</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41751"/>
		<updated>2009-08-20T07:43:20Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Preparation for the use of 4D Ultrasound =&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Preparation_to_use_4D_Ultrasound &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
== Update the Calibration file ==&lt;br /&gt;
&lt;br /&gt;
The following section must be adjusted according to your setup:&lt;br /&gt;
&lt;br /&gt;
Image Settings&lt;br /&gt;
* Image Margins&lt;br /&gt;
Tracked Ultrasound Calibration&lt;br /&gt;
* Offset tracker sensor - ultrasound transducer &amp;lt;br&amp;gt; You have to measure this offset manual. The axis are aligned like in the image shown below.  &lt;br /&gt;
* Tracker Sensor to Ultrasound Transducer Calibration&lt;br /&gt;
* Orientation of the sensor at calibration time&lt;br /&gt;
System settings&lt;br /&gt;
* Video Device Name&lt;br /&gt;
* Video Channel&lt;br /&gt;
Ultrasound Settings&lt;br /&gt;
* Ultrasound scan depth - This properties depends on the settings made at your ultrasound machine&lt;br /&gt;
* Ultrasound scan fan height&lt;br /&gt;
&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 400px ]]&lt;br /&gt;
&lt;br /&gt;
== Manual Calibration ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare Slicer for Calibration ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=StartUpSlicer.swf|width=1024|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Get Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=GetCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Apply Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=ApplyCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Image Properties ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=ApplyCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=File:Usage.swf&amp;diff=41750</id>
		<title>File:Usage.swf</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=File:Usage.swf&amp;diff=41750"/>
		<updated>2009-08-20T07:39:41Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=File:GetImageMargins.swf&amp;diff=41749</id>
		<title>File:GetImageMargins.swf</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=File:GetImageMargins.swf&amp;diff=41749"/>
		<updated>2009-08-20T07:31:35Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41748</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41748"/>
		<updated>2009-08-20T06:47:08Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Technical information of 4D Ultrasound */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You have to understand the following steps to use 4DUltrasound&lt;br /&gt;
&lt;br /&gt;
# Fullfill the requirements&lt;br /&gt;
# Check out code and build&lt;br /&gt;
# Prepare for use&lt;br /&gt;
# Understand how to use 4DUltrasound Tutorial&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Drawing-System_Design_Hardware.png |600px]]&lt;br /&gt;
&lt;br /&gt;
''a) Conventional computer with GPGPU graphics card and video capture board b) S-Video connection from US machine to Computer to transfer video information c) US machine d) Tracked US (2D US transducer with attached tracking sensor) e) Tracked surgical instrument f) Magnetic field generator of the tracking system g) EM tracker base station to control and to connect each tracking component h) Serial connection between EM tracker and computer to transfer position and orientation information.''&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
Tracker attached to ultrasound transducer&lt;br /&gt;
&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 400px ]]&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''.&lt;br /&gt;
&lt;br /&gt;
A video of the build process can be found [http://wiki.na-mic.org/Wiki/images/1/1f/BuildInstructions.swf here ] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Set &amp;quot;BUILD_SHARED_LIBS&amp;quot; to OFF &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
Tutorials how to prepare 4D Ultrasound for use can be found here: [[4DUltrasound_Preparation_to_use]]&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
| --grab-ultrasound-frames || -gf || Grab ultrasound frames from the capture board&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --get-calibration-data || -gcd || Get calibration data&lt;br /&gt;
|-&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41747</id>
		<title>4DUltrasound Preparation to use</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41747"/>
		<updated>2009-08-20T05:55:08Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Update the Calibration file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Preparation for the use of 4D Ultrasound =&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Preparation_to_use_4D_Ultrasound &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
== Update the Calibration file ==&lt;br /&gt;
&lt;br /&gt;
The following section must be adjusted according to your setup:&lt;br /&gt;
&lt;br /&gt;
Image Settings&lt;br /&gt;
* Image Margins&lt;br /&gt;
Tracked Ultrasound Calibration&lt;br /&gt;
* Offset tracker sensor - ultrasound transducer &amp;lt;br&amp;gt; You have to measure this offset manual. The axis are aligned like in the image shown below.  &lt;br /&gt;
* Tracker Sensor to Ultrasound Transducer Calibration&lt;br /&gt;
* Orientation of the sensor at calibration time&lt;br /&gt;
System settings&lt;br /&gt;
* Video Device Name&lt;br /&gt;
* Video Channel&lt;br /&gt;
Ultrasound Settings&lt;br /&gt;
* Ultrasound scan depth - This properties depends on the settings made at your ultrasound machine&lt;br /&gt;
* Ultrasound scan fan height&lt;br /&gt;
&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 400px ]]&lt;br /&gt;
&lt;br /&gt;
== Manual Calibration ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare Slicer for Calibration ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=StartUpSlicer.swf|width=1024|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Get Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=GetCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Apply Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=ApplyCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Image Properties ==&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41746</id>
		<title>4DUltrasound Preparation to use</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41746"/>
		<updated>2009-08-20T05:49:30Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Update the Calibration file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Preparation for the use of 4D Ultrasound =&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Preparation_to_use_4D_Ultrasound &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
== Update the Calibration file ==&lt;br /&gt;
&lt;br /&gt;
The following section must be adjusted according to your setup:&lt;br /&gt;
&lt;br /&gt;
Image Settings&lt;br /&gt;
* Image Margins&lt;br /&gt;
Tracked Ultrasound Calibration&lt;br /&gt;
* Offset tracker sensor - ultrasound transducer &amp;lt;br&amp;gt; You have to measure this offset manual. The axis are aligned like in the image shown below.  &lt;br /&gt;
* Tracker Sensor to Ultrasound Transducer Calibration&lt;br /&gt;
* Orientation of the sensor at calibration time&lt;br /&gt;
System settings&lt;br /&gt;
* Video Device Name&lt;br /&gt;
* Video Channel&lt;br /&gt;
Ultrasound Settings&lt;br /&gt;
* Ultrasound scan depth&lt;br /&gt;
* Ultrasound scan fan height&lt;br /&gt;
&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 400px ]]&lt;br /&gt;
&lt;br /&gt;
== Manual Calibration ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare Slicer for Calibration ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=StartUpSlicer.swf|width=1024|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Get Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=GetCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Apply Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=ApplyCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Image Properties ==&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41745</id>
		<title>4DUltrasound Preparation to use</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41745"/>
		<updated>2009-08-20T05:49:13Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Update the Calibration file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Preparation for the use of 4D Ultrasound =&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Preparation_to_use_4D_Ultrasound &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
== Update the Calibration file ==&lt;br /&gt;
&lt;br /&gt;
The following section must be adjusted according to your setup:&lt;br /&gt;
&lt;br /&gt;
Image Settings&lt;br /&gt;
* Image Margins&lt;br /&gt;
Tracked Ultrasound Calibration&lt;br /&gt;
* Offset tracker sensor - ultrasound transducer &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; You have to measure this offset manual. The axis are aligned like in the image shown below.  &lt;br /&gt;
* Tracker Sensor to Ultrasound Transducer Calibration&lt;br /&gt;
* Orientation of the sensor at calibration time&lt;br /&gt;
System settings&lt;br /&gt;
* Video Device Name&lt;br /&gt;
* Video Channel&lt;br /&gt;
Ultrasound Settings&lt;br /&gt;
* Ultrasound scan depth&lt;br /&gt;
* Ultrasound scan fan height&lt;br /&gt;
&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 400px ]]&lt;br /&gt;
&lt;br /&gt;
== Manual Calibration ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare Slicer for Calibration ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=StartUpSlicer.swf|width=1024|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Get Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=GetCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Apply Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=ApplyCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Image Properties ==&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41744</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41744"/>
		<updated>2009-08-20T05:34:19Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Commandline Options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Drawing-System_Design_Hardware.png |600px]]&lt;br /&gt;
&lt;br /&gt;
''a) Conventional computer with GPGPU graphics card and video capture board b) S-Video connection from US machine to Computer to transfer video information c) US machine d) Tracked US (2D US transducer with attached tracking sensor) e) Tracked surgical instrument f) Magnetic field generator of the tracking system g) EM tracker base station to control and to connect each tracking component h) Serial connection between EM tracker and computer to transfer position and orientation information.''&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
Tracker attached to ultrasound transducer&lt;br /&gt;
&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 400px ]]&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''.&lt;br /&gt;
&lt;br /&gt;
A video of the build process can be found [http://wiki.na-mic.org/Wiki/images/1/1f/BuildInstructions.swf here ] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Set &amp;quot;BUILD_SHARED_LIBS&amp;quot; to OFF &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
Tutorials how to prepare 4D Ultrasound for use can be found here: [[4DUltrasound_Preparation_to_use]]&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
| --grab-ultrasound-frames || -gf || Grab ultrasound frames from the capture board&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --get-calibration-data || -gcd || Get calibration data&lt;br /&gt;
|-&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41743</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41743"/>
		<updated>2009-08-20T05:33:59Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Commandline Options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Drawing-System_Design_Hardware.png |600px]]&lt;br /&gt;
&lt;br /&gt;
''a) Conventional computer with GPGPU graphics card and video capture board b) S-Video connection from US machine to Computer to transfer video information c) US machine d) Tracked US (2D US transducer with attached tracking sensor) e) Tracked surgical instrument f) Magnetic field generator of the tracking system g) EM tracker base station to control and to connect each tracking component h) Serial connection between EM tracker and computer to transfer position and orientation information.''&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
Tracker attached to ultrasound transducer&lt;br /&gt;
&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 400px ]]&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''.&lt;br /&gt;
&lt;br /&gt;
A video of the build process can be found [http://wiki.na-mic.org/Wiki/images/1/1f/BuildInstructions.swf here ] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Set &amp;quot;BUILD_SHARED_LIBS&amp;quot; to OFF &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
Tutorials how to prepare 4D Ultrasound for use can be found here: [[4DUltrasound_Preparation_to_use]]&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
| --grab-ultrasound-frames || -gf || Grab ultrasound frames from the capture board&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --get-calibration-data || -gcd || Get calibration data&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41742</id>
		<title>4DUltrasound Preparation to use</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41742"/>
		<updated>2009-08-20T05:29:52Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Preparation for the use of 4D Ultrasound */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Preparation for the use of 4D Ultrasound =&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Preparation_to_use_4D_Ultrasound &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
== Update the Calibration file ==&lt;br /&gt;
&lt;br /&gt;
The following section must be adjusted according to your setup:&lt;br /&gt;
&lt;br /&gt;
Image Settings&lt;br /&gt;
* Image Margins&lt;br /&gt;
Tracked Ultrasound Calibration&lt;br /&gt;
* Offset tracker sensor - ultrasound transducer&lt;br /&gt;
* Tracker Sensor to Ultrasound Transducer Calibration&lt;br /&gt;
* Orientation of the sensor at calibration time&lt;br /&gt;
System settings&lt;br /&gt;
* Video Device Name&lt;br /&gt;
* Video Channel&lt;br /&gt;
Ultrasound Settings&lt;br /&gt;
* Ultrasound scan depth&lt;br /&gt;
* Ultrasound scan fan height&lt;br /&gt;
&lt;br /&gt;
== Manual Calibration ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare Slicer for Calibration ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=StartUpSlicer.swf|width=1024|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Get Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=GetCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Apply Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=ApplyCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Image Properties ==&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41741</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41741"/>
		<updated>2009-08-20T05:28:09Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Build Instructions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Drawing-System_Design_Hardware.png |600px]]&lt;br /&gt;
&lt;br /&gt;
''a) Conventional computer with GPGPU graphics card and video capture board b) S-Video connection from US machine to Computer to transfer video information c) US machine d) Tracked US (2D US transducer with attached tracking sensor) e) Tracked surgical instrument f) Magnetic field generator of the tracking system g) EM tracker base station to control and to connect each tracking component h) Serial connection between EM tracker and computer to transfer position and orientation information.''&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
Tracker attached to ultrasound transducer&lt;br /&gt;
&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 400px ]]&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''.&lt;br /&gt;
&lt;br /&gt;
A video of the build process can be found [http://wiki.na-mic.org/Wiki/images/1/1f/BuildInstructions.swf here ] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Set &amp;quot;BUILD_SHARED_LIBS&amp;quot; to OFF &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
Tutorials how to prepare 4D Ultrasound for use can be found here: [[4DUltrasound_Preparation_to_use]]&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41740</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41740"/>
		<updated>2009-08-20T05:27:36Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Build Instructions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Drawing-System_Design_Hardware.png |600px]]&lt;br /&gt;
&lt;br /&gt;
''a) Conventional computer with GPGPU graphics card and video capture board b) S-Video connection from US machine to Computer to transfer video information c) US machine d) Tracked US (2D US transducer with attached tracking sensor) e) Tracked surgical instrument f) Magnetic field generator of the tracking system g) EM tracker base station to control and to connect each tracking component h) Serial connection between EM tracker and computer to transfer position and orientation information.''&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
Tracker attached to ultrasound transducer&lt;br /&gt;
&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 400px ]]&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''.&lt;br /&gt;
&lt;br /&gt;
A video of the build process can be found [http://wiki.na-mic.org/Wiki/index.php/File:BuildInstructions.swf here ] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Set &amp;quot;BUILD_SHARED_LIBS&amp;quot; to OFF &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
Tutorials how to prepare 4D Ultrasound for use can be found here: [[4DUltrasound_Preparation_to_use]]&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41739</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41739"/>
		<updated>2009-08-20T05:10:18Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Build Instructions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Drawing-System_Design_Hardware.png |600px]]&lt;br /&gt;
&lt;br /&gt;
''a) Conventional computer with GPGPU graphics card and video capture board b) S-Video connection from US machine to Computer to transfer video information c) US machine d) Tracked US (2D US transducer with attached tracking sensor) e) Tracked surgical instrument f) Magnetic field generator of the tracking system g) EM tracker base station to control and to connect each tracking component h) Serial connection between EM tracker and computer to transfer position and orientation information.''&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
Tracker attached to ultrasound transducer&lt;br /&gt;
&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 400px ]]&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A video of the build process can be found [http://wiki.na-mic.org/Wiki/index.php/File:BuildInstructions.swf here ] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Set &amp;quot;BUILD_SHARED_LIBS&amp;quot; to OFF &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
Tutorials how to prepare 4D Ultrasound for use can be found here: [[4DUltrasound_Preparation_to_use]]&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=File:BuildInstructions.swf&amp;diff=41738</id>
		<title>File:BuildInstructions.swf</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=File:BuildInstructions.swf&amp;diff=41738"/>
		<updated>2009-08-20T05:09:39Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41737</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41737"/>
		<updated>2009-08-20T04:58:47Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Build Instructions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Drawing-System_Design_Hardware.png |600px]]&lt;br /&gt;
&lt;br /&gt;
''a) Conventional computer with GPGPU graphics card and video capture board b) S-Video connection from US machine to Computer to transfer video information c) US machine d) Tracked US (2D US transducer with attached tracking sensor) e) Tracked surgical instrument f) Magnetic field generator of the tracking system g) EM tracker base station to control and to connect each tracking component h) Serial connection between EM tracker and computer to transfer position and orientation information.''&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
Tracker attached to ultrasound transducer&lt;br /&gt;
&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 400px ]]&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A video of the build process can be found [http://wiki.na-mic.org/Wiki/images/0/0f/ApplyCalibrationData.swf here ] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Set &amp;quot;BUILD_SHARED_LIBS&amp;quot; to OFF &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
Tutorials how to prepare 4D Ultrasound for use can be found here: [[4DUltrasound_Preparation_to_use]]&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41736</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41736"/>
		<updated>2009-08-20T04:58:25Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Build Instructions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Drawing-System_Design_Hardware.png |600px]]&lt;br /&gt;
&lt;br /&gt;
''a) Conventional computer with GPGPU graphics card and video capture board b) S-Video connection from US machine to Computer to transfer video information c) US machine d) Tracked US (2D US transducer with attached tracking sensor) e) Tracked surgical instrument f) Magnetic field generator of the tracking system g) EM tracker base station to control and to connect each tracking component h) Serial connection between EM tracker and computer to transfer position and orientation information.''&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
Tracker attached to ultrasound transducer&lt;br /&gt;
&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 400px ]]&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A video of the build process can be found [http://wiki.na-mic.org/Wiki/images/0/0f/ApplyCalibrationData.swf here ] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Set &amp;quot;BUILD_SHARED_LIBS&amp;quot; to OFF&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
Tutorials how to prepare 4D Ultrasound for use can be found here: [[4DUltrasound_Preparation_to_use]]&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41735</id>
		<title>4DUltrasound Preparation to use</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41735"/>
		<updated>2009-08-20T03:19:13Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Manual Calibration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Preparation for the use of 4D Ultrasound =&lt;br /&gt;
&lt;br /&gt;
== Update the Calibration file ==&lt;br /&gt;
&lt;br /&gt;
The following section must be adjusted according to your setup:&lt;br /&gt;
&lt;br /&gt;
Image Settings&lt;br /&gt;
* Image Margins&lt;br /&gt;
Tracked Ultrasound Calibration&lt;br /&gt;
* Offset tracker sensor - ultrasound transducer&lt;br /&gt;
* Tracker Sensor to Ultrasound Transducer Calibration&lt;br /&gt;
* Orientation of the sensor at calibration time&lt;br /&gt;
System settings&lt;br /&gt;
* Video Device Name&lt;br /&gt;
* Video Channel&lt;br /&gt;
Ultrasound Settings&lt;br /&gt;
* Ultrasound scan depth&lt;br /&gt;
* Ultrasound scan fan height&lt;br /&gt;
&lt;br /&gt;
== Manual Calibration ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare Slicer for Calibration ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=StartUpSlicer.swf|width=1024|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Get Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=GetCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Apply Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=ApplyCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Image Properties ==&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41734</id>
		<title>4DUltrasound Preparation to use</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41734"/>
		<updated>2009-08-20T03:17:24Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Apply Calibration Data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Preparation for the use of 4D Ultrasound =&lt;br /&gt;
&lt;br /&gt;
== Update the Calibration file ==&lt;br /&gt;
&lt;br /&gt;
The following section must be adjusted according to your setup:&lt;br /&gt;
&lt;br /&gt;
Image Settings&lt;br /&gt;
* Image Margins&lt;br /&gt;
Tracked Ultrasound Calibration&lt;br /&gt;
* Offset tracker sensor - ultrasound transducer&lt;br /&gt;
* Tracker Sensor to Ultrasound Transducer Calibration&lt;br /&gt;
* Orientation of the sensor at calibration time&lt;br /&gt;
System settings&lt;br /&gt;
* Video Device Name&lt;br /&gt;
* Video Channel&lt;br /&gt;
Ultrasound Settings&lt;br /&gt;
* Ultrasound scan depth&lt;br /&gt;
* Ultrasound scan fan height&lt;br /&gt;
&lt;br /&gt;
== Manual Calibration ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare Slicer for Calibration ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=StartUpSlicer.swf|width=1024|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Get Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=GetCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Apply Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
== Image Properties ==&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41733</id>
		<title>4DUltrasound Preparation to use</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41733"/>
		<updated>2009-08-20T03:16:56Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Update the Calibration file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Preparation for the use of 4D Ultrasound =&lt;br /&gt;
&lt;br /&gt;
== Update the Calibration file ==&lt;br /&gt;
&lt;br /&gt;
The following section must be adjusted according to your setup:&lt;br /&gt;
&lt;br /&gt;
Image Settings&lt;br /&gt;
* Image Margins&lt;br /&gt;
Tracked Ultrasound Calibration&lt;br /&gt;
* Offset tracker sensor - ultrasound transducer&lt;br /&gt;
* Tracker Sensor to Ultrasound Transducer Calibration&lt;br /&gt;
* Orientation of the sensor at calibration time&lt;br /&gt;
System settings&lt;br /&gt;
* Video Device Name&lt;br /&gt;
* Video Channel&lt;br /&gt;
Ultrasound Settings&lt;br /&gt;
* Ultrasound scan depth&lt;br /&gt;
* Ultrasound scan fan height&lt;br /&gt;
&lt;br /&gt;
== Manual Calibration ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare Slicer for Calibration ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=StartUpSlicer.swf|width=1024|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Get Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=GetCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Apply Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Image Properties ==&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=File:ApplyCalibrationData.swf&amp;diff=41732</id>
		<title>File:ApplyCalibrationData.swf</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=File:ApplyCalibrationData.swf&amp;diff=41732"/>
		<updated>2009-08-20T03:16:30Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41731</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41731"/>
		<updated>2009-08-20T03:12:41Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Hardware Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Drawing-System_Design_Hardware.png |600px]]&lt;br /&gt;
&lt;br /&gt;
''a) Conventional computer with GPGPU graphics card and video capture board b) S-Video connection from US machine to Computer to transfer video information c) US machine d) Tracked US (2D US transducer with attached tracking sensor) e) Tracked surgical instrument f) Magnetic field generator of the tracking system g) EM tracker base station to control and to connect each tracking component h) Serial connection between EM tracker and computer to transfer position and orientation information.''&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
Tracker attached to ultrasound transducer&lt;br /&gt;
&lt;br /&gt;
[[Image:Photo-Tracker_attached_to_Ultrasound.png | 400px ]]&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''.&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
Tutorials how to prepare 4D Ultrasound for use can be found here: [[4DUltrasound_Preparation_to_use]]&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=File:Photo-Tracker_attached_to_Ultrasound.png&amp;diff=41730</id>
		<title>File:Photo-Tracker attached to Ultrasound.png</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=File:Photo-Tracker_attached_to_Ultrasound.png&amp;diff=41730"/>
		<updated>2009-08-20T03:10:34Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41729</id>
		<title>4DUltrasound Preparation to use</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=4DUltrasound_Preparation_to_use&amp;diff=41729"/>
		<updated>2009-08-20T02:41:00Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: Created page with ' = Preparation for the use of 4D Ultrasound =  == Update the Calibration file ==  The following section must be adjusted according to your setup:  *  == Manual Calibration ==  ==…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Preparation for the use of 4D Ultrasound =&lt;br /&gt;
&lt;br /&gt;
== Update the Calibration file ==&lt;br /&gt;
&lt;br /&gt;
The following section must be adjusted according to your setup:&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
== Manual Calibration ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare Slicer for Calibration ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=StartUpSlicer.swf|width=1024|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Get Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=GetCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Apply Calibration Data ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Image Properties ==&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41728</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41728"/>
		<updated>2009-08-20T02:40:57Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Preparation to use 4D Ultrasound */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Drawing-System_Design_Hardware.png |600px]]&lt;br /&gt;
&lt;br /&gt;
''a) Conventional computer with GPGPU graphics card and video capture board b) S-Video connection from US machine to Computer to transfer video information c) US machine d) Tracked US (2D US transducer with attached tracking sensor) e) Tracked surgical instrument f) Magnetic field generator of the tracking system g) EM tracker base station to control and to connect each tracking component h) Serial connection between EM tracker and computer to transfer position and orientation information.''&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''.&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
Tutorials how to prepare 4D Ultrasound for use can be found here: [[4DUltrasound_Preparation_to_use]]&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41727</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41727"/>
		<updated>2009-08-20T02:37:57Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Preparation to use 4D Ultrasound */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Drawing-System_Design_Hardware.png |600px]]&lt;br /&gt;
&lt;br /&gt;
''a) Conventional computer with GPGPU graphics card and video capture board b) S-Video connection from US machine to Computer to transfer video information c) US machine d) Tracked US (2D US transducer with attached tracking sensor) e) Tracked surgical instrument f) Magnetic field generator of the tracking system g) EM tracker base station to control and to connect each tracking component h) Serial connection between EM tracker and computer to transfer position and orientation information.''&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''.&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
Tutorials how to prepare 4D Ultrasound for use can be found here: [[4DUltrasound_Preparation_to_use]]&lt;br /&gt;
&lt;br /&gt;
==== Editing the Calibration file ====&lt;br /&gt;
&lt;br /&gt;
==== Manual Calibration ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Prepare Slicer for Calibration =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=StartUpSlicer.swf|width=1024|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Get Calibration Data =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=GetCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Apply Calibration Data =====&lt;br /&gt;
&lt;br /&gt;
==== Image Properties ====&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41726</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41726"/>
		<updated>2009-08-20T02:27:58Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Manual Calibration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Drawing-System_Design_Hardware.png |600px]]&lt;br /&gt;
&lt;br /&gt;
''a) Conventional computer with GPGPU graphics card and video capture board b) S-Video connection from US machine to Computer to transfer video information c) US machine d) Tracked US (2D US transducer with attached tracking sensor) e) Tracked surgical instrument f) Magnetic field generator of the tracking system g) EM tracker base station to control and to connect each tracking component h) Serial connection between EM tracker and computer to transfer position and orientation information.''&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''.&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
==== Editing the Calibration file ====&lt;br /&gt;
&lt;br /&gt;
==== Manual Calibration ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Prepare Slicer for Calibration =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=StartUpSlicer.swf|width=1024|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Get Calibration Data =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=GetCalibrationData.swf|width=960|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Apply Calibration Data =====&lt;br /&gt;
&lt;br /&gt;
==== Image Properties ====&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=File:GetCalibrationData.swf&amp;diff=41725</id>
		<title>File:GetCalibrationData.swf</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=File:GetCalibrationData.swf&amp;diff=41725"/>
		<updated>2009-08-20T02:19:05Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41724</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41724"/>
		<updated>2009-08-20T02:13:41Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Prepare Slicer for Calibration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Drawing-System_Design_Hardware.png |600px]]&lt;br /&gt;
&lt;br /&gt;
''a) Conventional computer with GPGPU graphics card and video capture board b) S-Video connection from US machine to Computer to transfer video information c) US machine d) Tracked US (2D US transducer with attached tracking sensor) e) Tracked surgical instrument f) Magnetic field generator of the tracking system g) EM tracker base station to control and to connect each tracking component h) Serial connection between EM tracker and computer to transfer position and orientation information.''&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''.&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
==== Editing the Calibration file ====&lt;br /&gt;
&lt;br /&gt;
==== Manual Calibration ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Prepare Slicer for Calibration =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=StartUpSlicer.swf|width=1024|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Get Calibration Data =====&lt;br /&gt;
&lt;br /&gt;
===== Apply Calibration Data =====&lt;br /&gt;
&lt;br /&gt;
==== Image Properties ====&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41723</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41723"/>
		<updated>2009-08-20T01:46:12Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Prepare Slicer for Calibration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Drawing-System_Design_Hardware.png |600px]]&lt;br /&gt;
&lt;br /&gt;
''a) Conventional computer with GPGPU graphics card and video capture board b) S-Video connection from US machine to Computer to transfer video information c) US machine d) Tracked US (2D US transducer with attached tracking sensor) e) Tracked surgical instrument f) Magnetic field generator of the tracking system g) EM tracker base station to control and to connect each tracking component h) Serial connection between EM tracker and computer to transfer position and orientation information.''&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''.&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
==== Editing the Calibration file ====&lt;br /&gt;
&lt;br /&gt;
==== Manual Calibration ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Prepare Slicer for Calibration =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;flash&amp;gt;file=StartUpSlicer.swf|width=1024|height=768|quality=best&amp;lt;/flash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Image Properties ====&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=File:StartUpSlicer.swf&amp;diff=41722</id>
		<title>File:StartUpSlicer.swf</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=File:StartUpSlicer.swf&amp;diff=41722"/>
		<updated>2009-08-20T01:00:05Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41721</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41721"/>
		<updated>2009-08-20T00:56:30Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Manual Calibration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Drawing-System_Design_Hardware.png |600px]]&lt;br /&gt;
&lt;br /&gt;
''a) Conventional computer with GPGPU graphics card and video capture board b) S-Video connection from US machine to Computer to transfer video information c) US machine d) Tracked US (2D US transducer with attached tracking sensor) e) Tracked surgical instrument f) Magnetic field generator of the tracking system g) EM tracker base station to control and to connect each tracking component h) Serial connection between EM tracker and computer to transfer position and orientation information.''&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''.&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
==== Editing the Calibration file ====&lt;br /&gt;
&lt;br /&gt;
==== Manual Calibration ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Prepare Slicer for Calibration =====&lt;br /&gt;
&lt;br /&gt;
==== Image Properties ====&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41720</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41720"/>
		<updated>2009-08-20T00:26:00Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Drawing-System_Design_Hardware.png |600px]]&lt;br /&gt;
&lt;br /&gt;
''a) Conventional computer with GPGPU graphics card and video capture board b) S-Video connection from US machine to Computer to transfer video information c) US machine d) Tracked US (2D US transducer with attached tracking sensor) e) Tracked surgical instrument f) Magnetic field generator of the tracking system g) EM tracker base station to control and to connect each tracking component h) Serial connection between EM tracker and computer to transfer position and orientation information.''&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''.&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
==== Editing the Calibration file ====&lt;br /&gt;
&lt;br /&gt;
==== Manual Calibration ====&lt;br /&gt;
&lt;br /&gt;
==== Image Properties ====&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41719</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41719"/>
		<updated>2009-08-20T00:24:09Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Drawing-System_Design_Hardware.png |thumb|a) Conventional computer with GPGPU graphics card and video capture board b) S-Video connection from US machine to Computer to transfer video information c) US machine d) Tracked US (2D US transducer with attached tracking sensor) e) Tracked surgical instrument f) Magnetic �eld generator of the tracking system g) EM tracker base station to control and to connect each tracking component h) Serial connection between EM tracker and computer to transfer position and orientation information.]]&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''.&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
==== Editing the Calibration file ====&lt;br /&gt;
&lt;br /&gt;
==== Manual Calibration ====&lt;br /&gt;
&lt;br /&gt;
==== Image Properties ====&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=File:Drawing-System_Design_Hardware.png&amp;diff=41718</id>
		<title>File:Drawing-System Design Hardware.png</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=File:Drawing-System_Design_Hardware.png&amp;diff=41718"/>
		<updated>2009-08-20T00:20:08Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41710</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41710"/>
		<updated>2009-08-19T08:06:46Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Commandline Options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''.&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
==== Editing the Calibration file ====&lt;br /&gt;
&lt;br /&gt;
==== Manual Calibration ====&lt;br /&gt;
&lt;br /&gt;
==== Image Properties ====&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
| --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41709</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41709"/>
		<updated>2009-08-19T08:05:00Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===== Hardware Setup =====&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''.&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
==== Editing the Calibration file ====&lt;br /&gt;
&lt;br /&gt;
==== Manual Calibration ====&lt;br /&gt;
&lt;br /&gt;
==== Image Properties ====&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- | --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41708</id>
		<title>Technical Information</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Technical_Information&amp;diff=41708"/>
		<updated>2009-08-19T07:42:41Z</updated>

		<summary type="html">&lt;p&gt;Jgumprec: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Technical information of 4D Ultrasound=&lt;br /&gt;
&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/User:Gumprecht &amp;lt;= Back to project page]&lt;br /&gt;
&lt;br /&gt;
===Requirement===&lt;br /&gt;
In this section you will find requirements to run the software&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* Compiled version of Slicer 3 ''(You must compile Slicer on your own. Follow the build instructions [http://www.slicer.org/slicerWiki/index.php/Slicer3:Build_Instructions here] )''&lt;br /&gt;
* Compiled version of VTK ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/VTK-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Source Code of OpenIGTLink ''(Provided by Slicer 3 in the &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
* Compiled version of OpenIGTLink ''(Provided by Slicer 3 in &amp;quot;&amp;lt;code&amp;gt;Slicer-lib/OpenIGTLink-build&amp;lt;/code&amp;gt;&amp;quot; directory)''&lt;br /&gt;
&lt;br /&gt;
===== Modifications =====&lt;br /&gt;
* OpenIGTLink Slicer Module:&lt;br /&gt;
# Open the file vtkIGTLToMRMLImage.cxx in the source directory of the OpenIGTLinkIF module&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; in this file -&amp;gt; You hit find the following lines &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; // If you want to skip CRC check, call Unpack() without argument. &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(1); &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# Change the last line to: &amp;lt;code&amp;gt; int c = imgMsg-&amp;gt;Unpack(); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile the OpenIGTLink Module&lt;br /&gt;
## Change to the &amp;lt;code&amp;gt; Slicer-build &amp;lt;/code&amp;gt; directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* OpenIGTLink:&lt;br /&gt;
# Open the file &amp;lt;code&amp;gt; igtlMessageBase.cxx &amp;lt;/code&amp;gt; in the &amp;quot;Source&amp;quot; directory of OpenIGTLink&lt;br /&gt;
# Search for &amp;quot;crc&amp;quot; -&amp;gt; You will hit the following line &amp;lt;code&amp;gt; igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // igtl_uint64 crc = crc64(0, 0, 0LL); // initial crc &amp;lt;/code&amp;gt;&lt;br /&gt;
# Search for the next &amp;quot;crc&amp;quot; -&amp;gt; You will hit this line: &amp;lt;code&amp;gt; h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Comment out this line -&amp;gt; &amp;lt;code&amp;gt; // h-&amp;gt;crc = crc64((unsigned char*)m_Body, GetBodyPackSize(), crc); &amp;lt;/code&amp;gt;&lt;br /&gt;
# Recompile OpenIGTLink&lt;br /&gt;
## Change to the OpenIGTLink-build directory and type &amp;lt;code&amp;gt; $make &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
* NDI Aurora Tracker [http://www.ndigital.com/medical/aurora.php]&lt;br /&gt;
** 2 * 6 DOF Sensors&lt;br /&gt;
*** 1 Sensor attached to the ultrasound probe&lt;br /&gt;
*** 1 Sensor can be used to simulate a tracked surgical instrument&lt;br /&gt;
&lt;br /&gt;
* Ultrasound machine with Analog video output&lt;br /&gt;
&lt;br /&gt;
* Frame Grabber Card&lt;br /&gt;
The System has successfully been test with the following 2 frame grabber cards:&lt;br /&gt;
** Hauppauge Impact VCB Model 558 [http://wiki.na-mic.org/Wiki/index.php/Technical_Information#Capture_Card_-_Hauppauge_WIN-TV_PCI_Board_ImpactVCB_Model_558]&lt;br /&gt;
** Kuroutoshikou KRDM-CX23883&lt;br /&gt;
&lt;br /&gt;
* Optional: nVidia Cuda compatible graphics card&lt;br /&gt;
&lt;br /&gt;
===Build Instructions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to have a compiled version of Slicer and to have good knowledge about ''cmake''.&lt;br /&gt;
# '''Check out''' 4D Ultrasound from http://svn.na-mic.org/NAMICSandBox/trunk/4DUltrasound &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Configure''' via ccmake (version &amp;gt; 2.6) in your build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''You need a compiled version of VTK + OpenIGTLink as well as the source code of OpentIGTLink'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If you know how to do this, skip the next steps and procede with ''Compile'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
## Make a new directory in with the name &amp;quot;Build&amp;quot; in the 4DUltrasound dir: &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ mkdir Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change into the Build directory &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound$ cd Build &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Execute ccmake in this directory with the parent directory as parameter &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ ccmake ../ &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; If ccmake (version &amp;gt; 2.6) is not installed in your system: the executable can as well be found in: &amp;lt;em&amp;gt; .../Slicer3-lib/CMAKE-build/bin/ccmake &amp;lt;/em&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Type &amp;quot;c&amp;quot; to start the configuration -&amp;gt; You will receive an error message that VTK was not found -&amp;gt; Type &amp;quot;e&amp;quot; to exit the help message &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Change the cursor to the variable with the name &amp;quot;VTK_DIR&amp;quot; and hit ENTER &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Fill in your VTK-Build directory and hit ENTER (if you have a compiled version of Slicer you can use: &amp;lt;em&amp;gt; .../Slicer3-lib/VTK-build &amp;lt;/em&amp;gt;) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ''(In Ubuntu you must provide the absolute path no relative path will work)'' &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; to start the configuration &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; -&amp;gt; If you receive a warning, ignore it an hit &amp;quot;e&amp;quot; -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; hit &amp;quot;e&amp;quot; to ignore the next warning -&amp;gt; Fill in the VTK-Build directory again -&amp;gt; hit &amp;quot;c&amp;quot; again -&amp;gt; Ignore the Integer-Type Error hit &amp;quot;e&amp;quot; again &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the compiled version of OpenIGTLink at the ''OpenIGTLink'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Enter the path to the directory of the OpenIGTLink source code at the ''OPENIGTLINKSOURCE'' variable &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;c&amp;quot; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
## Hit &amp;quot;g&amp;quot; to generate the Make files &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
# '''Compile''' 4D Ultrasound: Type &amp;lt;em&amp;gt;$ make &amp;lt;/em&amp;gt; in your build directory&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;em&amp;gt;  .../4DUltrasound/Build$ make &amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Preparation to use 4D Ultrasound===&lt;br /&gt;
&lt;br /&gt;
==== Editing the Calibration file ====&lt;br /&gt;
&lt;br /&gt;
==== Manual Calibration ====&lt;br /&gt;
&lt;br /&gt;
==== Image Properties ====&lt;br /&gt;
&lt;br /&gt;
===Running 4D Ultrasound===&lt;br /&gt;
You need a working version of Slicer with OpenIGTLink&lt;br /&gt;
# Copy &amp;quot;CalibrationFile.txt&amp;quot; from &amp;lt;code&amp;gt; YOUR_SOURCE_DIR &amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt; YOUR_BUILD_DIR/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Run Slicer&lt;br /&gt;
# Add an &amp;quot;''activer Server Connector''&amp;quot; in the OpenIGTLink module which is waiting for data at port 18944&lt;br /&gt;
# Run Synchrograb on the same machine you run Slicer&lt;br /&gt;
  $YOUR_BUILD_DIR/bin/4DUltrasound -c CalibrationFile.txt&lt;br /&gt;
&lt;br /&gt;
====Commandline Options====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Command !! Alternative !! Description&lt;br /&gt;
|-&lt;br /&gt;
| --calibration-file xxx || -c xxx || Specify the calibration file (mandatory)&lt;br /&gt;
|-&lt;br /&gt;
| --reconstruct-volume || -rv || Enable volume reconstruction&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- | --dynamic-volumesize || -dvs || Enable dynamic size of reconstruction volume&lt;br /&gt;
|- --&amp;gt;&lt;br /&gt;
| --track-ultrasound || -tu || Enable ultrasound tracking&lt;br /&gt;
|-&lt;br /&gt;
| --track-instrument || -ti || Enable instrument tracking&lt;br /&gt;
|-&lt;br /&gt;
| --simulate-instrument || -si || Simulate instrument&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--| --oigtl-server xxx || -os xxx || Specify OpenIGTLink server (default: 'localhost')&lt;br /&gt;
|-&lt;br /&gt;
| --oigtl-port xxx || -op xxx || Specify OpenIGTLink port of server (default: 18944)&lt;br /&gt;
|-&lt;br /&gt;
| --frames-per-second xxx || -fps xxx || Number of frames per second for the ultrasound data collection (default: 30)&lt;br /&gt;
|-&lt;br /&gt;
| --video-source xxx || -vs xxx || Set video source (default: '/dev/video0') &lt;br /&gt;
|-&lt;br /&gt;
| --video-source-channel xxx || -vsc xxx || Set video source channel (default: 3)&lt;br /&gt;
|-&lt;br /&gt;
| --video-mode xxx || -vm xxx || Set video mode; Options: NTSC, PAL (default: NTSC)&lt;br /&gt;
|-&lt;br /&gt;
| --scan-depth xxx || -sd xxx || Set depth of ultrasound scan in Millimeter (default: 70mm)&lt;br /&gt;
|-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| --grab-one-frame XXX || -gof XXX || Grab one frame and store as the specified bitmap file&lt;br /&gt;
|-&lt;br /&gt;
| --verbose || -v || Print more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
{|border=&amp;quot;0&amp;quot;, cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! MUST&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ||  &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | || &lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! SHOULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Clean up Code and Make files (Remove unnecessary Koeniginen parts)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Automatically copy Calibration file into binary directory&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Fix compiler checking in cmake&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Enable differnet video modes and channels in vtkVideo4Linux2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Outsource OpenIGTLink library&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
! Priority !! COULD&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;#009900&amp;quot; width=&amp;quot;70px&amp;quot; | DONE || width=&amp;quot;600px&amp;quot;| Replace SonixGrabber with Ultrasound in source code&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| OpenIGTLink test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Tracker test feature&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;, width=&amp;quot;70px&amp;quot; | || width=&amp;quot;600px&amp;quot;| Ultrasound test feature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ultrasound device ===&lt;br /&gt;
The ultrasound images are received via a video capture card. Linux uses V4L2 to support the card.&lt;br /&gt;
&lt;br /&gt;
==== Capture Card - Hauppauge WIN-TV PCI Board ImpactVCB Model 558====&lt;br /&gt;
* [http://www.haupauge.com/site/products/data_impactvcb.html Hauppauge Homepage]&lt;br /&gt;
* Incoming images are digitized using high quality 4:2:2 ([http://en.wikipedia.org/wiki/YUV Y:U:V]) video sampling&lt;br /&gt;
===== Linux (Ubuntu 8.10 , Fedora 5)=====&lt;br /&gt;
* The card is automatically correct detected. No further configuration needed.&lt;br /&gt;
* Linux Driver: Video4Linux2 bt878&lt;br /&gt;
** &amp;quot;bt&amp;quot; stands for Brooktree the original Manufacturer. Now bought by Conexant&lt;br /&gt;
* The Linux driver (bttv) for the WinTV card is now part of the Linux kernel (version 2.6.xxx and newer).&lt;br /&gt;
* [http://www.haupauge.com/site/support/support_pci_878.html Hauppage Linux Information]&lt;br /&gt;
* Linux installation hints [http://www.haupauge.com/site/support/linux.html]&lt;br /&gt;
* Modprobe option # for specific drivers: http://tldp.org/HOWTO/BTTV/cards.html&lt;br /&gt;
** The Impact VCB has # 10&lt;br /&gt;
** enable kernel module via: &amp;quot;''$ modprobe bttv card=10''&amp;quot; or add to /etc/modprobe.conf the following line &amp;quot;''options bttv card=10 ''&amp;quot;&lt;br /&gt;
** to switch to another card first remove the module via: &amp;quot;''$ modprobe -r bttv''&amp;quot;&lt;br /&gt;
* The card uses NTSC video interlacing per default&lt;br /&gt;
===== Hardware Information =====&lt;br /&gt;
* Channel 3 delivers the s-video signal&lt;br /&gt;
** To set the channel add the following at the end of void vtkV4L2VideoSource::InitDevice(void):&lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
  int channel = 3;&lt;br /&gt;
  if (-1 == xioctl (fd,VIDIOC_S_INPUT , &amp;amp;channel))&lt;br /&gt;
    errno_exit (&amp;quot;VIDIOC_S_INPUT&amp;quot;); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Specific Hardware information: [http://www.bttv-gallery.de/] !!be carefull huge page, takes a long time to load!!&lt;br /&gt;
&lt;br /&gt;
==== Video4Linux2 ====&lt;br /&gt;
Video4Linux is part of the Linux kernel since version 2.6.xx&lt;br /&gt;
* V4L2 wiki [http://www.linuxtv.org/wiki/index.php/Main_Page]&lt;br /&gt;
* API Specificattion: [http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html]&lt;br /&gt;
* [http://linux.bytesex.org/xawtv/ xawtv] software for video preview from the guy who wrote the bt8xx driver&lt;br /&gt;
===== Old links may soon be dead =====&lt;br /&gt;
* [http://linuxtv.org/v4lwiki/index.php/Main_Page V4L Old wiki]&lt;br /&gt;
** [http://linuxtv.org/v4lwiki/index.php/Bttv_devices_%28bt848%2C_bt878%29 Driver for our Video Card]&lt;br /&gt;
* Link collection for V4L: [http://www.exploits.org/v4l]&lt;br /&gt;
* Homepage of the original developer of the bttv driver: [http://linux.bytesex.org/v4l2/] Is not up to date anymore&lt;br /&gt;
* [http://www.thedirks.org/v4l2/ Old Informaton] they might not be be up to date anymore&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Christoph Ruetz&lt;br /&gt;
** [http://wiki.ncigt.org/index.php/User:Ruetz His Project Page]&lt;br /&gt;
&lt;br /&gt;
=== Tracking device ===&lt;br /&gt;
We are using a NDI Aurora tracker. Synchrograb includes an NDI tracker class which works out of the box with the Aurora NDI tracker.&lt;br /&gt;
&lt;br /&gt;
=====Contacts=====&lt;br /&gt;
* Haiying Liu&lt;br /&gt;
&lt;br /&gt;
=== Calibration ===&lt;br /&gt;
Description: To get the correct information from the ultrasound device it has to be calibrated&amp;lt;br&amp;gt;&lt;br /&gt;
===== Contacts =====&lt;br /&gt;
* Raul San Jose&lt;br /&gt;
Information:&lt;br /&gt;
* I have serval links and information from Raul on which I have to go through&lt;br /&gt;
&lt;br /&gt;
== Slicer ==&lt;br /&gt;
I am using the trunk version of Slicer (3.3) since this has the OpenIGTLink module and the CUDA module.&lt;br /&gt;
&lt;br /&gt;
=== Python Synchrograb Module ===&lt;br /&gt;
I implemented a Pyhton module for Slicer to start Synchrograb. The module can be found in [http://svn.na-mic.org/NAMICSandBox/trunk/SynchroGrabJGumprecht/SlicerModule this] svn repository. Basically it starts a new shell and calls the Synchrograb binary within this shell. All Synchrograb commandline options are available in the module. So fare it is not part of the Slicer repository.&lt;br /&gt;
&lt;br /&gt;
=== 3D CUDA ===&lt;br /&gt;
I might not use Cuda acceleration since there is no real performance advantage at this point&lt;br /&gt;
&lt;br /&gt;
==== TO DO ====&lt;br /&gt;
* Nothing&lt;br /&gt;
&lt;br /&gt;
==== Contacts ====&lt;br /&gt;
* Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]&lt;br /&gt;
* Nicholas Harlambang: CUDA Guru&lt;br /&gt;
&lt;br /&gt;
==== Documentation: VolumeRenderingCuda Module ====&lt;br /&gt;
&lt;br /&gt;
* Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally &amp;gt; 0&lt;br /&gt;
* '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid&lt;br /&gt;
* '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value&lt;br /&gt;
* '''Composite''': Here you can select different rendering modes&lt;br /&gt;
* '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''&lt;br /&gt;
* '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* Sandbox page [http://wiki.na-mic.org/Wiki/index.php/Engineering:SandBox]&lt;br /&gt;
* [https://intweb/Sponsored_Staff_and_Volunteers  SPL Intraweb web for incoming staff]&lt;br /&gt;
&lt;br /&gt;
* [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:DocumentationWink Wink - Software for Video Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://bwhbri.partners.org/Editorial_Service/ BWH Editorial Service]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Infos on loadable Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscribe to different meetings ===&lt;br /&gt;
&lt;br /&gt;
* Journal Club&lt;br /&gt;
&lt;br /&gt;
* 1st Monday Seminar&lt;br /&gt;
&lt;br /&gt;
* Office OPRC&lt;br /&gt;
&lt;br /&gt;
* Radiology Grand Rounds&lt;br /&gt;
&lt;br /&gt;
* Cimit Forum&lt;br /&gt;
&lt;br /&gt;
=== How to &amp;quot;Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha&amp;quot; ===&lt;br /&gt;
Date: Sept. 26th 2008&lt;br /&gt;
&lt;br /&gt;
Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. &amp;lt;br&amp;gt;&lt;br /&gt;
To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Installation of Drivers ====&lt;br /&gt;
&lt;br /&gt;
* Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used&lt;br /&gt;
for the driver installation binary&lt;br /&gt;
  ~/Download/CUDA/Driver/ &lt;br /&gt;
for the tool kit installation binary&lt;br /&gt;
  ~/Download/CUDA/Toolkit/&lt;br /&gt;
and for the SDK installation binary&lt;br /&gt;
  ~/Download/CUDA/SDK/&lt;br /&gt;
* For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press &lt;br /&gt;
  a&lt;br /&gt;
Then type &lt;br /&gt;
  Type 3&lt;br /&gt;
and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.&lt;br /&gt;
* Login and change into root mode via:&lt;br /&gt;
  su&lt;br /&gt;
* Then switch to the directory where you downloaded the driver. For me this means: &lt;br /&gt;
  cd ~/Download/CUDA/Driver/&lt;br /&gt;
* Now we have to change the permissions for the driver-binary and make it executable. This works with &lt;br /&gt;
  chmod +x BINARY-NAME&lt;br /&gt;
(Replace 'BINARY-NAME' with the name of the driver binary)&lt;br /&gt;
* Now start the installation with:&lt;br /&gt;
  ./BINARY-NAME&lt;br /&gt;
I changed none of the default values during the installation&lt;br /&gt;
&lt;br /&gt;
* For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]&amp;lt;br&amp;gt; If you get the error message: &amp;quot;ld: cannot find -lglut&amp;quot;, like I did, have a look at the reference under 'IV. Known Issues'&lt;br /&gt;
&lt;br /&gt;
* In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values&lt;br /&gt;
&lt;br /&gt;
==== Enable CUDA in Slicer 3.3 Alpha ====&lt;br /&gt;
&lt;br /&gt;
* Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]&amp;lt;br&amp;gt; Below you find corrections to certains points that did not work for me the way it was explained in the manual&lt;br /&gt;
&lt;br /&gt;
* In 1.1.2 Check out the following slicer branch instead and build it:&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.slicer.org/Slicer3/trunk Slicer3&lt;br /&gt;
  ./Slicer3/Scripts/getbuildtest.tcl&lt;br /&gt;
&lt;br /&gt;
* Before you can go on with step 1.2.2 you have to Uncomment: &lt;br /&gt;
**''CudaSupport'' in Slicer3/Libs/CMakeLists.txt&lt;br /&gt;
**''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
* In step 1.2.2 &lt;br /&gt;
**you have to use your build directory (Slicer-build) as parameter for ccmake&lt;br /&gt;
**for CUDA_INSTALL_PREFIX use /usr/local/cuda&lt;br /&gt;
**for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a&lt;br /&gt;
**for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc&lt;br /&gt;
&lt;br /&gt;
* Step 1.2.3 was not necessary for me&lt;br /&gt;
&lt;br /&gt;
* Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available&lt;br /&gt;
&lt;br /&gt;
This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).&lt;/div&gt;</summary>
		<author><name>Jgumprec</name></author>
		
	</entry>
</feed>