<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.na-mic.org/w/index.php?action=history&amp;feed=atom&amp;title=2009_Winter_Project_Week_vtkITK_Pipeline</id>
	<title>2009 Winter Project Week vtkITK Pipeline - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.na-mic.org/w/index.php?action=history&amp;feed=atom&amp;title=2009_Winter_Project_Week_vtkITK_Pipeline"/>
	<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=2009_Winter_Project_Week_vtkITK_Pipeline&amp;action=history"/>
	<updated>2026-05-16T23:57:59Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=2009_Winter_Project_Week_vtkITK_Pipeline&amp;diff=35057&amp;oldid=prev</id>
		<title>Pieper: /* Key Investigators */</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=2009_Winter_Project_Week_vtkITK_Pipeline&amp;diff=35057&amp;oldid=prev"/>
		<updated>2009-01-31T20:24:33Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Key Investigators&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 20:24, 31 January 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l41&quot; &gt;Line 41:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 41:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;h1&amp;gt;Progress&amp;lt;/h1&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;h1&amp;gt;Progress&amp;lt;/h1&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Several discussions were held with various developers and other experts and we decided the approaches given in the example would work pretty well for image filter use cases.  The approach shown here has the advantage that image metadata is handled explicitly, making it easier to understand and debug than approaches that rely on macros or helper classes.  A disadvantage is the need for a memcopy in the current implementations.  We will continue to consider ways to avoid this.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Pieper</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=2009_Winter_Project_Week_vtkITK_Pipeline&amp;diff=32835&amp;oldid=prev</id>
		<title>Pieper: New page: {| |Project Week Main Page ]] |}   __NOTOC__   ===Key Investigators=== * Steve Pieper, Isomics, Inc. * Jim Miller, ...</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=2009_Winter_Project_Week_vtkITK_Pipeline&amp;diff=32835&amp;oldid=prev"/>
		<updated>2008-12-05T13:56:24Z</updated>

		<summary type="html">&lt;p&gt;New page: {| |&lt;a href=&quot;/wiki/File:NAMIC-SLC.jpg&quot; title=&quot;File:NAMIC-SLC.jpg&quot;&gt;thumb|320px|Return to [[2009_Winter_Project_Week|Project Week Main Page&lt;/a&gt; ]] |}   __NOTOC__   ===Key Investigators=== * Steve Pieper, Isomics, Inc. * Jim Miller, ...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{|&lt;br /&gt;
|[[Image:NAMIC-SLC.jpg|thumb|320px|Return to [[2009_Winter_Project_Week|Project Week Main Page]] ]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Key Investigators===&lt;br /&gt;
* Steve Pieper, Isomics, Inc.&lt;br /&gt;
* Jim Miller, GE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 20px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 27%; float: left; padding-right: 3%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Objective&amp;lt;/h1&amp;gt;&lt;br /&gt;
There are several places in slicer where we need to use ITK classes in the context of interactive 3D visualizations implemented as VTK pipelines.  Examples include the LevelTracing and Wand effects in the Editor Module and the DistanceTransformModel Module.&lt;br /&gt;
&lt;br /&gt;
Historically, the vtkITK library in slicer, originally developed in the ITK project, has provided a framework for this by implementing generic superclasses to connect the pipelines.  However this interface is not actively developed and it recent tests indicate that pipelines are not correctly updated using the current builds of VTK and ITK (see example below).&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to develop a good standard pattern for classes that use ITK in their implementation.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 27%; float: left; padding-right: 3%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Approach, Plan&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will review some recently written classes including the [http://viewvc.slicer.org/viewcvs.cgi/trunk/Libs/vtkITK/vtkITKDistanceTransform.cxx?rev=8019&amp;amp;view=markup vtkITKDistanceTransform] and [http://viewvc.slicer.org/viewcvs.cgi/trunk/Libs/vtkITK/vtkITKWandImageFilter.cxx?rev=7807&amp;amp;view=markup vtkITKWandImageFilter] to see if they can be used as a template.&lt;br /&gt;
&lt;br /&gt;
Questions:&lt;br /&gt;
* these classes construct the itk image directly from the buffer pointer - should that be encapsulated for general use (perhaps with existing importer or exporter classes)?&lt;br /&gt;
* the final step in the execute function is a memcpy - is there a way to avoid this?&lt;br /&gt;
&lt;br /&gt;
We also need to write some tests to ensure that these pipeline mechanisms keep functioning as new versions of VTK and ITK are rolled out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 40%; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Progress&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
########### test script #############&lt;br /&gt;
&lt;br /&gt;
set ellip [vtkImageEllipsoidSource New]&lt;br /&gt;
set gad [vtkITKGradientAnisotropicDiffusionImageFilter New]&lt;br /&gt;
&lt;br /&gt;
$gad SetInput [$ellip GetOutput]&lt;br /&gt;
&lt;br /&gt;
$ellip SetInValue 200&lt;br /&gt;
[$gad GetOutput] Update&lt;br /&gt;
puts [[$gad GetOutput] GetScalarRange]&lt;br /&gt;
puts [$ellip GetMTime]&lt;br /&gt;
puts [[$gad GetOutput] GetMTime]&lt;br /&gt;
&lt;br /&gt;
$ellip SetInValue 100&lt;br /&gt;
[$gad GetOutput] Update&lt;br /&gt;
puts [[$gad GetOutput] GetScalarRange]&lt;br /&gt;
puts [$ellip GetMTime]&lt;br /&gt;
puts [[$gad GetOutput] GetMTime]&lt;br /&gt;
&lt;br /&gt;
######## sample session #######&lt;br /&gt;
&lt;br /&gt;
(Slicer3-build) 66 % source /pieper/hacks/vtkITK.tcl&lt;br /&gt;
 0.0 200.0&lt;br /&gt;
5323593&lt;br /&gt;
5323959&lt;br /&gt;
 0.0 200.0&lt;br /&gt;
5323966&lt;br /&gt;
5323959 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pieper</name></author>
		
	</entry>
</feed>