<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Anatomical Travelogue Research &#187; Image processing</title>
	<atom:link href="http://www.anatomicaltravel.com/research/category/image-processing/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.anatomicaltravel.com/research</link>
	<description>Bringing you case studies and free tools in 3D animation, video compositing, and image processing.</description>
	<lastBuildDate>Tue, 10 Aug 2010 18:31:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Fragment fun</title>
		<link>http://www.anatomicaltravel.com/research/2010/06/fragment-fun/</link>
		<comments>http://www.anatomicaltravel.com/research/2010/06/fragment-fun/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 22:37:18 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[Fusion]]></category>
		<category><![CDATA[Image processing]]></category>
		<category><![CDATA[Volume Rendering]]></category>
		<category><![CDATA[3D filtering]]></category>
		<category><![CDATA[comparison]]></category>
		<category><![CDATA[Teaser]]></category>

		<guid isPermaLink="false">http://www.anatomicaltravel.com/research/?p=1662</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">
<div id="attachment_1663" class="wp-caption aligncenter" style="width: 610px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/Screengrab_C_A02_.jpg"><img class="size-full wp-image-1663  " style="border: 0pt none;" title="Because we couldn't wait for fuses" src="http://www.anatomicaltravel.com/research/wp-content/uploads/Screengrab_C_A02_.jpg" alt="Because we couldn't wait for fuses" width="600" height="461" /></a><p class="wp-caption-text">New shader(s) coming soon</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.anatomicaltravel.com/research/2010/06/fragment-fun/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Color Blindness</title>
		<link>http://www.anatomicaltravel.com/research/2010/02/color-blindness/</link>
		<comments>http://www.anatomicaltravel.com/research/2010/02/color-blindness/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 05:56:55 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[Fusion]]></category>
		<category><![CDATA[Graphics General]]></category>
		<category><![CDATA[Image processing]]></category>

		<guid isPermaLink="false">http://www.anatomicaltravel.com/research/?p=1326</guid>
		<description><![CDATA[A sizable segment of the population suffers from color blindness, enough so that it&#8217;s worth considering the implications on color palettes and usability.  This tool allows you to simulate the ways that various color vision deficiencies will affect you imagery.  I&#8217;ve noticed that some of the images we create probably won&#8217;t read very well to [...]]]></description>
			<content:encoded><![CDATA[<p>A sizable segment of the population suffers from color blindness, enough so that it&#8217;s worth considering the implications on color palettes and usability.  This tool allows you to simulate the ways that various color vision deficiencies will affect you imagery.  I&#8217;ve noticed that some of the images we create probably won&#8217;t read very well to some people, and this easily lets us check if we&#8217;ve created something that could be ambiguous.</p>
<p style="text-align: center;">
<div id="attachment_1571" class="wp-caption aligncenter" style="width: 170px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/ColorBlind_onblack.png"><img class="size-full wp-image-1571 " style="border: 0pt none;" title="ColorBlind fuse" src="http://www.anatomicaltravel.com/research/wp-content/uploads/ColorBlind_onblack.png" alt="ColorBlind fuse" width="160" height="120" /></a><p class="wp-caption-text">ColorBlind fuse</p></div>
<p><span id="more-1326"></span></p>
<p style="text-align: left;">It&#8217;s not a perfect simulation, since it only does a linear color transform, not accounting for local color frequency, and it doesn&#8217;t account for any output specific color shifts.  Nothing unusual when it comes to color, of course.  Typical things to consider, colors may look different on an LCD screen compared to web offset printing.</p>
<p style="text-align: left;">You can use this as a viewer macro, though I may at some point make a proper Cg viewshader.</p>
<p style="text-align: left;"><a href="http://www.anatomicaltravel.com/research/downloads/ColorBlind.fuse">Download ColorBlind Fuse 1.0</a><a href="http://www.anatomicaltravel.com/research/downloads/ColorBlind.fuse"><img class="alignnone" style="border: 0pt none; vertical-align: middle; margin-left: 10px;" title="Download ColorBlind Fuse" alt="Download ColorBlind Fuse" src="/research/images/download.gif" alt="" width="14" height="16" /></a></p>
<p style="text-align: left;">
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://www.anatomicaltravel.com/research/2010/02/color-blindness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Color Matrix Transform</title>
		<link>http://www.anatomicaltravel.com/research/2009/10/color-matrix-transform/</link>
		<comments>http://www.anatomicaltravel.com/research/2009/10/color-matrix-transform/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 00:55:51 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[Fusion]]></category>
		<category><![CDATA[Graphics General]]></category>
		<category><![CDATA[Image processing]]></category>
		<category><![CDATA[Fuse]]></category>

		<guid isPermaLink="false">http://www.anatomicaltravel.com/research/?p=1555</guid>
		<description><![CDATA[Fusion 6 added a Color Matrix tool that lets you enter your own matrix by hand, but the biggest problem with it is the lack of any methods to modify it with.  You can&#8217;t even assign controllers to it.
Fuses, however,  let you use handy methods to modify a matrix.  I&#8217;ve used some of them to [...]]]></description>
			<content:encoded><![CDATA[<p>Fusion 6 added a Color Matrix tool that lets you enter your own matrix by hand, but the biggest problem with it is the lack of any methods to modify it with.  You can&#8217;t even assign controllers to it.</p>
<p>Fuses, however,  let you use handy methods to modify a matrix.  I&#8217;ve used some of them to create an RGB equivalent of the 3D Transform tool.  It has a similar UI, just as 3TT does, but this modifies RGB, not XYZ or UVW.</p>
<p style="text-align: center;">
<div id="attachment_1571" class="wp-caption aligncenter" style="width: 170px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/ColorMatrixTransform_onblack.png"><img class="size-full wp-image-1571 " style="border: 0pt none;" title="ColorMatrixTransform_onblack" src="http://www.anatomicaltravel.com/research/wp-content/uploads/ColorMatrixTransform_onblack.png" alt="Color Matrix Tranform fuse" width="160" height="120" /></a><p class="wp-caption-text">Color Matrix Transform fuse</p></div>
<p><span id="more-1555"></span></p>
<p>Why would you want to do this?  Imagine that your RGB isn&#8217;t color, but UVW coordinates from a 3D render pass.  Now you can do texture transformations by using this tool to modify the mapping.  Also, if you have comps where you&#8217;re converting XYZ to RGB, you can use this to post-edit the tranformation, so you can apply spatial transformations in the form of XYZ -&gt; RGB -&gt; ColorMatrixTransform -&gt; XYZ.</p>
<p>In the future I might add an input and output similar to the Color Matrix tool so you can insert a matrix found elsewhere, as well as generate an output matrix you can read off, but for the time being, input matrices can processed by the Color Matrix tool just prior to the ColorMatrixTranform tool, just remember to use 32bit float colors.</p>
<p>If you&#8217;re a bit confused as to what the tool is doing, try viewing the results in the 3D Histogram SubV.   Really helps you get your bearings.</p>
<a href="http://www.anatomicaltravel.com/research/downloads/ColorMatrixTransform2.Fuse">Download ColorMatrix Transform 1.03</a><a href="http://www.anatomicaltravel.com/research/downloads/ColorMatrixTransform2.Fuse"><img class="alignnone" style="border: 0pt none; vertical-align: middle; margin-left: 10px;" title="Download ColorMatrix Transform" alt="Download ColorMatrix Transform" src="/research/images/download.gif" alt="" width="14" height="16" /></a>
]]></content:encoded>
			<wfw:commentRss>http://www.anatomicaltravel.com/research/2009/10/color-matrix-transform/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ColorToMonoToColor</title>
		<link>http://www.anatomicaltravel.com/research/2009/10/colortomonotocolor/</link>
		<comments>http://www.anatomicaltravel.com/research/2009/10/colortomonotocolor/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 00:04:56 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[Fusion]]></category>
		<category><![CDATA[Image processing]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Fuse]]></category>

		<guid isPermaLink="false">http://www.anatomicaltravel.com/research/?p=1560</guid>
		<description><![CDATA[Two more Fuses, this time some really simple ones that convert multi-channel images to mono-channel and back again.   Color is overrated, in general, and I find myself getting a lot of use out of these.

Why would you use this?  Memory savings, mostly.  An alpha-only image takes 1/4 the RAM of an RGBA image.   For scalar [...]]]></description>
			<content:encoded><![CDATA[<p>Two more Fuses, this time some really simple ones that convert multi-channel images to mono-channel and back again.   Color is overrated, in general, and I find myself getting a lot of use out of these.</p>
<div id="attachment_1563" class="wp-caption aligncenter" style="width: 170px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/ColorToMono_onblack.png"><img class="size-full wp-image-1563 " style="border: 0pt none;" title="ColorToMono_onblack" src="http://www.anatomicaltravel.com/research/wp-content/uploads/ColorToMono_onblack.png" alt="Color to Mono" width="160" height="120" /></a><p class="wp-caption-text">Color to Mono</p></div>
<div id="attachment_1564" class="wp-caption aligncenter" style="width: 170px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/MonoToColor_onblack.png"><img class="size-full wp-image-1564 " style="border: 0pt none;" title="MonoToColor_onblack" src="http://www.anatomicaltravel.com/research/wp-content/uploads/MonoToColor_onblack.png" alt="Mono to Color" width="160" height="120" /></a><p class="wp-caption-text">Mono to Color</p></div>
<p><span id="more-1560"></span></p>
<p>Why would you use this?  Memory savings, mostly.  An alpha-only image takes 1/4 the RAM of an RGBA image.   For scalar data operations, or masks, or any time where you don&#8217;t need vectors, you can store more data in cache and thus make everything fast and smooth.</p>
<p>The latest builds of Fusion also support mono-channel textures in 3D, so in cases where your video card doesn&#8217;t have a lot of memory, this can be even more useful.</p>
<p>Why not just use a Bmp to convert to mono?  Well, it&#8217;s a different class output, so it keeps trying to connect to mask inputs.  And you can&#8217;t set a Bmp to passthrough and get color data out.  You get nothing.  Furthermore, having Bmp&#8217;s littered around your flow is ugly.</p>
<p>Converting from mono back to color could be done by masking off a BG set to white, right?  But you&#8217;d have to keep making that BG be the same size, depth, etc as your incoming mask, and that&#8217;s not convenient.  And it uglies up your flow, too.</p>
<p style="text-align: left;"><a href="http://www.anatomicaltravel.com/research/downloads/ColorToMono.Fuse">Download ColorToMono 1.0</a><a href="http://www.anatomicaltravel.com/research/downloads/ColorToMono.Fuse"><img class="alignnone" style="border: 0pt none; vertical-align: middle; margin-left: 10px;" title="Download ColorToMono" alt="Download ColorToMono" src="/research/images/download.gif" alt="" width="14" height="16" /></a></p>
<p style="text-align: left;"><a href="http://www.anatomicaltravel.com/research/downloads/MonoToColor.Fuse">Download MonoToColor 1.0</a><a href="http://www.anatomicaltravel.com/research/downloads/MonoToColor.Fuse"><img class="alignnone" style="border: 0pt none; vertical-align: middle; margin-left: 10px;" title="Download MonoToColor" alt="Download MonoToColor" src="/research/images/download.gif" alt="" width="14" height="16" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.anatomicaltravel.com/research/2009/10/colortomonotocolor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updates from SIGGraph</title>
		<link>http://www.anatomicaltravel.com/research/2009/08/updates-from-siggraph/</link>
		<comments>http://www.anatomicaltravel.com/research/2009/08/updates-from-siggraph/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 00:46:19 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[Graphics General]]></category>
		<category><![CDATA[Image processing]]></category>
		<category><![CDATA[Medical imaging]]></category>
		<category><![CDATA[Volume Rendering]]></category>
		<category><![CDATA[SIGGraph]]></category>

		<guid isPermaLink="false">http://www.anatomicaltravel.com/research/?p=1463</guid>
		<description><![CDATA[We&#8217;ve seen some pretty cool things at SIGGraph so far&#8230;
Gel Sight is a retrographic surface imaging technique that was wonderfully elegant in it&#8217;s simplicity and effectiveness.  They also gave out free samples&#8230;

Nvidia had a stereographic interactive realtime rendering of the full 13GB Visible Human dataset being rendered in CUDA on 3 Quadroplexi.  Very impressive.  The [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve seen some pretty cool things at SIGGraph so far&#8230;</p>
<div class="wp-caption alignnone" style="width: 490px"><a href="http://www.mit.edu/~kimo/gelsight/faq.html"><img class=" " style="border: 0pt none;" title="Gel Sight" src="http://people.csail.mit.edu/kimo/gelsight/images/overview.jpg" alt="Gel Sight" width="480" height="124" /></a><p class="wp-caption-text">Gel Sight</p></div>
<p style="text-align: justify;">Gel Sight is a retrographic surface imaging technique that was wonderfully elegant in it&#8217;s simplicity and effectiveness.  They also gave out free samples&#8230;</p>
<p style="text-align: justify;">
<div id="attachment_1470" class="wp-caption alignnone" style="width: 310px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/08062009169.jpg"><img class="size-medium wp-image-1470 " style="border: 0pt none;" title="Cuda raycasting 13GB of cryomacrotome goodness (in stereo)" src="http://www.anatomicaltravel.com/research/wp-content/uploads/08062009169-300x225.jpg" alt="Cuda raycasting 13GB of cryomacrotome goodness (in stereo)" width="300" height="225" /></a><p class="wp-caption-text">Cuda raycasting 13GB of cryomacrotome goodness (in stereo)</p></div>
<p><a href="http://www.nvidia.com/object/cuda_home.html#">Nvidia </a>had a stereographic interactive realtime rendering of the full 13GB Visible Human dataset being rendered in CUDA on 3 Quadroplexi.  Very impressive.  The glasses used were the new Nvidia active shutter glasses, and were very effective.</p>
<div class="wp-caption alignnone" style="width: 320px"><a href="http://touchco.com/"><img style="border: 0pt none;" title="Resistive multitouch in many form factors" src="http://touchco.com/ifsr_hand.jpg" alt="" width="310" height="233" /></a><p class="wp-caption-text">Resistive multitouch in many form factors</p></div>
<p><a href="http://www.touchco.com">A new startup</a> out of NYU showed a novel resistive multitouch device.  Very effective, low cost, and suitable to many applications.</p>
<p>UPDATE: Sorry about the broken link, Touchco was bought up by Amazon, so pretty much all of the cool applications they had in mind are replaced by the Kindle 3.</p>
<div id="attachment_1471" class="wp-caption alignnone" style="width: 310px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/08062009171.jpg"><img class="size-medium wp-image-1471 " style="border: 0pt none;" title="VLC madness courtesy 2 Fusion-io cards" src="http://www.anatomicaltravel.com/research/wp-content/uploads/08062009171-300x225.jpg" alt="VLC madness courtesy 2 Fusion-io cards" width="300" height="225" /></a><p class="wp-caption-text">VLC madness courtesy 2 Fusion-io cards</p></div>
<p><a title="Fusion-io" href="http://www.fusionio.com/Default.aspx">Fusion-io</a> showed their new &#8220;budget&#8221; nonvolatile storage adapter, the ioXtreme.   $900 gets you 80GB, with a read speed o 700MB/s.  The IO&#8217;s aren&#8217;t very high, much less their enterprise solutions, but that doesn&#8217;t matter if you are reading sequential data.  The booth was pretty crazy, too, one of the better live hardware demos I&#8217;ve seen in a while.  I&#8217;ll get some pictures tomorrow.  VLC never looked so impressive&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anatomicaltravel.com/research/2009/08/updates-from-siggraph/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KrazyKey &#8211; pixel by pixel keying, with the goodness of CUDA</title>
		<link>http://www.anatomicaltravel.com/research/2009/07/krazykey-keying-with-cuda/</link>
		<comments>http://www.anatomicaltravel.com/research/2009/07/krazykey-keying-with-cuda/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 15:16:41 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Fusion]]></category>
		<category><![CDATA[Image processing]]></category>

		<guid isPermaLink="false">http://www.anatomicaltravel.com/research/?p=1355</guid>
		<description><![CDATA[We&#8217;ve been adding CUDA support to many of our custom tools lately and finding speed-ups of 40x in some cases. This tool is an example of an idea that would be totally impractical (hence the krazy) without a highly parallel GPU-based approach. The algorithm takes each pixel in the input image, and finds the shortest distance [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve been adding <a href="http://www.nvidia.com/object/cuda_home.html">CUDA</a> support to many of our custom tools lately and finding speed-ups of 40x in some cases. This tool is an example of an idea that would be totally impractical (hence the <em>krazy</em>) without a highly parallel GPU-based approach. The algorithm takes each pixel in the input image, and finds the shortest distance (in RGB space) from it to the pixels in the &#8220;selection&#8221; image. This requires an <em>every-pixel-to-every-pixel</em> distance calculation, with the final shortest distance value compared to a threshold to determine whether or not to mask the pixel.</p>
<p style="text-align: center;"><img class="size-full wp-image-1372" style="border: 0pt none;" title="Krazy Key tilepic" src="http://www.anatomicaltravel.com/research/wp-content/uploads/Krazykey_onblack0000.png" alt="Krazy Key, enriched with CUDA" width="160" height="120" /><br />
<a href="http://www.anatomicaltravel.com/research/downloads/AT-KrazyKey-1-0.zip">Download KrazyKey 1.0</a><a href="http://www.anatomicaltravel.com/research/downloads/AT-KrazyKey-1-0.zip"><img class="alignnone" style="border: 0pt none; vertical-align: middle; margin-left: 10px;" title="Download KrazyKey" alt="Download KrazyKey" src="/research/images/download.gif" alt="" width="14" height="16" /></a></p>
<p style="text-align: left;"><span id="more-1355"></span></p>
<p>A keying operation masks out a subset of the RGB color cube. This subset is usually a contiguous region within the cube, with the final masking weights related in some way to the parameters of the shape&#8217;s geometry.</p>
<p>As an example, the ChromaKeyer makes an octahedron, but not a regular one; think of it as a box aligned to the color cube, but with 2 corners truncated along the white/black &#8220;desaturated&#8221; axis. Primatte uses a a regular polyhedron but with the vertices repositioned to enclose the appropriate bounding region.  The main algorithm uses 128 faces in a closed shape. In both these cases, forcing the sampling of a contiguous region may include color coordinates that you don&#8217;t want, no matter how complex the shape within the RGB cube.</p>
<p>KrazyKey does not create a polyhedron at all, but uses a point cloud to define the sampling region.  It can thus enclose ANY color set at all, regardless of shape, and does not have to be contiguous.  This means that any keying operation can be performed with just one KrazyKey, whereas you might need a few Primattes, or dozens of ChromaKeyers.</p>
<p>Chad put together a demo comp that shows the subset of the color cube used by several common keying methods compared to what&#8217;s possible with KrazyKey.</p>
<p style="text-align: center;">
<div id="attachment_1403" class="wp-caption aligncenter" style="width: 610px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/KeyCompare_RedCyan_A01_1.jpg"><img class="size-full wp-image-1403" style="border: 0pt none;" title="Comparing keying geometries" src="http://www.anatomicaltravel.com/research/wp-content/uploads/KeyCompare_RedCyan_A01_1.jpg" alt="Comparing keying geometries (red/cyan)" width="600" height="225" /></a><p class="wp-caption-text">Comparing keying geometries (red/cyan)</p></div>
<p>KrazyKey&#8217;s interface is pretty simple:</p>
<p>You input two images, the first<em> (Input) </em>is the image you want the key applied to, and the second <em>(Selection)</em> is the set of colors you want to compare against.  Any pixels with an alpha of zero are ignored, which reduces the number of compared, but also allows you to mask out which portions of the color set to use. The <em>Selection</em> image is collapsed to a 1D vector, as any spatial information in the <em>Selection </em>image is useless.</p>
<p>The <em>Threshold</em> specifies the maximum distance between the <em>Input </em>pixel and its closest color from the <em>Selection </em>image.  If the closest distance is greater than this value, the pixel returns black.  Remember, this is operating in float 3D space, so the maximum distance between 2 colors in a clamped 0-1 color cube is sqrt(3).  In unclamped colors, the distances could be much larger.</p>
<p><em>Rectify Output</em> returns the absolute value of the distances.  Otherwise, the tool will output both positive and negative distances for each of the components of the vector.  Without this option, integer images would return black instead of the correct distances if negative.  We strongly recommend using KKey with float inputs.</p>
<p>The final option, <em>Use cuda</em>, is where the magic happens. If you don&#8217;t have CUDA, the tool will failover to a CPU only version, and will thus be slower, but that allows it to be more render-farm friendly.   This toggle is also good for benchmarking your CUDA hardware.</p>
<p style="text-align: center;"><a href="http://www.anatomicaltravel.com/research/downloads/Key_Compare_C_B01_.comp">Download Comparing keyer geometry </a><a href="http://www.anatomicaltravel.com/research/downloads/Key_Compare_C_B01_.comp"><img class="alignnone" style="border: 0pt none; vertical-align: middle; margin-left: 10px;" title="Download Comparing keyer geometry" alt="Download Comparing keyer geometry" src="/research/images/download.gif" alt="" width="14" height="16" /></a></p>
<p style="text-align: center;"><a href="http://www.anatomicaltravel.com/research/downloads/KrazyKey_KeyingPhoto_C_A01_.zip">Download KrazyKey keying example </a><a href="http://www.anatomicaltravel.com/research/downloads/KrazyKey_KeyingPhoto_C_A01_.zip"><img class="alignnone" style="border: 0pt none; vertical-align: middle; margin-left: 10px;" title="Download KrazyKey keying example" alt="Download KrazyKey keying example" src="/research/images/download.gif" alt="" width="14" height="16" /></a></p>
<p style="text-align: left;">So give the tool a try and leave some feedback in the comments section.  We&#8217;re also curious about the performance of various CUDA hardware, so let us know what kind of speed improvements you&#8217;re getting.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anatomicaltravel.com/research/2009/07/krazykey-keying-with-cuda/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Accidental calculus (and temporal kernels)</title>
		<link>http://www.anatomicaltravel.com/research/2009/05/accidental-calculus-and-temporal-kernels/</link>
		<comments>http://www.anatomicaltravel.com/research/2009/05/accidental-calculus-and-temporal-kernels/#comments</comments>
		<pubDate>Fri, 29 May 2009 19:09:25 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[Fusion]]></category>
		<category><![CDATA[Graphics General]]></category>
		<category><![CDATA[Image processing]]></category>
		<category><![CDATA[3D filtering]]></category>
		<category><![CDATA[filtering]]></category>
		<category><![CDATA[Silly tests]]></category>

		<guid isPermaLink="false">http://www.anatomicaltravel.com/research/?p=1297</guid>
		<description><![CDATA[I was working on a little job today with a 2D temporally variant scalar field.
You know, B&#38;W footage.
I needed to find the parts of the data that were changing the most and compare them to the overall data and the maximum delta.
What I ended up with, once Ben pointed it out to me, was a [...]]]></description>
			<content:encoded><![CDATA[<p>I was working on a little job today with a 2D temporally variant scalar field.</p>
<p>You know, B&amp;W footage.</p>
<p>I needed to find the parts of the data that were changing the most and compare them to the overall data and the maximum delta.</p>
<p>What I ended up with, once Ben pointed it out to me, was a simple example of calculus laid out in a couple tools.   The simplest case is just taking the frames I have and interpolating the same number of frames, so there&#8217;s no missing samples.  It&#8217;s silly, really.</p>
<p>But you can try it with other sampling, so there&#8217;s also an example of a Sobel filter, with a 1D kernel perpendicular to the normal 2D one.  Cute really.</p>
<p>If you checked out my <a href="http://www.anatomicaltravel.com/research/2009/05/interactive-smoothing/" title="Interactive Smoothing">interactive smoothing</a> comp, you can see how I used a Sobel filter to make the forward facing laser pointer by looking at the differentiation of the R and G channels over time.  Same idea, just different way of expressing the temporal dimension.</p>
<p>I&#8217;m tossing in a Laplacian filter too, just for fun, it&#8217;s not useful for the calculus part, but it was easy to do, and shows how you can change the kernel to make different effects.  It&#8217;s possible to also evaluate 2D or 3D kernels this way, too.  The temporal offsets can be combined with spatial offsets so you could make a 3D blur filter, or a 3D sharpen.  Or a 3D Unsharp Mask, as I&#8217;ve also included.</p>
<a href="http://www.anatomicaltravel.com/research/downloads/calculus_temporalkernels_example.comp">Download 3D filtering sample (simple calculus and temporal filter examples) </a><a href="http://www.anatomicaltravel.com/research/downloads/calculus_temporalkernels_example.comp"><img class="alignnone" style="border: 0pt none; vertical-align: middle; margin-left: 10px;" title="Download 3D filtering sample (simple calculus and temporal filter examples)" alt="Download 3D filtering sample (simple calculus and temporal filter examples)" src="/research/images/download.gif" alt="" width="14" height="16" /></a>
]]></content:encoded>
			<wfw:commentRss>http://www.anatomicaltravel.com/research/2009/05/accidental-calculus-and-temporal-kernels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to make a virtual colonoscopy</title>
		<link>http://www.anatomicaltravel.com/research/2009/05/how-to-make-a-virtual-colonoscopy/</link>
		<comments>http://www.anatomicaltravel.com/research/2009/05/how-to-make-a-virtual-colonoscopy/#comments</comments>
		<pubDate>Thu, 07 May 2009 23:05:18 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[Image processing]]></category>
		<category><![CDATA[Medical imaging]]></category>
		<category><![CDATA[Add new tag]]></category>
		<category><![CDATA[cancer]]></category>
		<category><![CDATA[colon]]></category>
		<category><![CDATA[CT]]></category>

		<guid isPermaLink="false">http://www.anatomicaltravel.com/research/?p=1284</guid>
		<description><![CDATA[We were recently commissioned to do some visualizations for a virtual colonoscopy procedure.   Also known as a colonography.   If you&#8217;re unfamiliar with the process, Wikipedia has enough information to give you a general overview. While there is a lot of information on the internet about the scanning process itself and what the patient [...]]]></description>
			<content:encoded><![CDATA[<p>We were recently commissioned to do some visualizations for a virtual colonoscopy procedure.   Also known as a colonography.   If you&#8217;re unfamiliar with the process, Wikipedia has <a href="http://en.wikipedia.org/wiki/Virtual_colonoscopy">enough information</a> to give you a general overview. While there is a lot of information on the internet about the scanning process itself and what the patient will experience, there isn&#8217;t much about the ways in which the CT data can be analyzed once it is acquired.  So here&#8217;s a brief overview of what we at Anatomical Travelogue did with it.</p>
<p style="text-align: center;">
<div id="attachment_1272" class="wp-caption aligncenter" style="width: 610px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/vct_colonoscopystill_a01.jpg"><img class="size-full wp-image-1272" style="border: 0pt none;" title="Colonoscopy Still" src="http://www.anatomicaltravel.com/research/wp-content/uploads/vct_colonoscopystill_a01.jpg" alt="Screengrab from the realtime colonoscopy demo" width="600" height="600" /></a><p class="wp-caption-text">Screengrab from the realtime colonoscopy demo</p></div>
<p><span id="more-1284"></span></p>
<p><strong>The CT</strong></p>
<p>Here we have an axial projection of the CT, (commonly known as CAT, for <em>computed axial tomography</em>).  The video shows a series moving through the Z axis from the anus to the top of the diaphragm / base of heart.  I&#8217;ve gone ahead and adjusted the brightness and gamma so it is easier to see on a normal computer monitor.</p>
<p style="text-align: center;"><br /><img src="http://www.anatomicaltravel.com/research/wp-content/uploads/ct-gammacorrected-axial-series-wm-thumb.jpg" alt="media" /><br />
</p>
<p style="text-align: left;">What we can see here is that the patient was lying supine, and the contrast enhanced fluids in the colon are collected on the bottom surfaces of the colon.  Sometimes the patient is scanned twice, once supine, once prone to make sure that all surfaces are imaged, but we found that the contrast between the walls of the colon and the fluid was sufficient to make out any &#8220;submerged&#8221; surface details to the same resolution as in the upper &#8220;air exposed&#8221; surfaces.</p>
<p style="text-align: left;"><strong>Segmentation</strong></p>
<p style="text-align: left;">Ok, so the next steps are to remove the fluid from the colon, and to segment the colon lumen.  The values in the CT are sufficient for this, the lighter values are the fluid, the darker values are air, and the middle greys are the colon itself.  We have to isolate the colon from the bones, lungs, small intestines, etc. which share similar values, but they are spatially much different, so we can exclude them that way. The image below shows the result of this, a single axial slice of the CT on the left, the fluid removed in the center, and the segmentation mask of the colon lumen on the right.</p>
<p style="text-align: center;">
<div id="attachment_899" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/colon_segmentation_compare_1.jpg"><img class="size-medium wp-image-899" style="border: 0pt none;" title="colon_segmentation_compare_1" src="http://www.anatomicaltravel.com/research/wp-content/uploads/colon_segmentation_compare_1-300x100.jpg" alt="Segmentation results for colon lumen.  Left: Original CT; Center: Fluid removed; Right: Lumen segment" width="300" height="100" /></a><p class="wp-caption-text">Segmentation results for colon lumen.  Left: Original CT; Center: Fluid removed; Right: Lumen segment</p></div>
<p><strong>Normals</strong></p>
<p>The CT dataset can now be processed to get some additional visualization data out of it.  We clean up some of the noise in the scan, and then extract gradients from the data which will be used as normals at the threshold interface of the colon lumen.   Essentially, we&#8217;re determining where a voxel is &#8220;facing&#8221;.  This vector is encoded as color, where red represents the X axis, green represents the Y axis, and blue represents the Z axis.</p>
<p style="text-align: center;">
<div id="attachment_966" class="wp-caption aligncenter" style="width: 604px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/normalaxis_angie_colonlumen_labeled_a01.jpg"><img style="border: 0pt none;" title="normalaxis_angie_colonlumen_labeled_a01" src="http://www.anatomicaltravel.com/research/wp-content/uploads/normalaxis_angie_colonlumen_labeled_a01.jpg" alt="Encoding normal direction to color" width="594" height="244" /></a><p class="wp-caption-text">Encoding normal direction to color</p></div>
<p style="text-align: left;">The image below shows the normals we calculated, as well as those values multiplied by the CT values.</p>
<div id="attachment_901" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/colon_normals_compare_.jpg"><img class="size-medium wp-image-901" style="border: 0pt none;" title="colon_normals_compare_" src="http://www.anatomicaltravel.com/research/wp-content/uploads/colon_normals_compare_-300x146.jpg" alt="Left: Normals as RGB (not yet normalized); Right: Multiplied by the CT intensities" width="300" height="146" /></a><p class="wp-caption-text">Left: Normals as RGB (not yet normalized); Right: Multiplied by the CT intensities</p></div>
<p style="text-align: left;">And this video shows these images stacked on top of one another with a little perspective added to show the depth.</p>
<p style="text-align: center;"><br /><img src="http://www.anatomicaltravel.com/research/wp-content/uploads/colon-normaltrails-thumb-a01-.jpg" alt="media" /><br />
</p>
<p style="text-align: left;">And here&#8217;s a video with just the normals on the colon segment itself.</p>
<p style="text-align: center;"><br /><img src="http://www.anatomicaltravel.com/research/wp-content/uploads/colon-normaltrails-lumen-thumb-b03-.jpg" alt="media" /><br />
</p>
<p style="text-align: left;">
<p style="text-align: left;"><strong>Isosurface</strong></p>
<p style="text-align: left;">From the lumen segmentation, we extract a polygonal isosurface.  The resulting mesh is scaled to the correct real-world size according to the CT scan itself.</p>
<p style="text-align: left;">
<p style="text-align: center;">
<div id="attachment_905" class="wp-caption aligncenter" style="width: 277px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/colon_isosurface.jpg"><img class="size-medium wp-image-905" style="border: 0pt none;" title="colon_isosurface" src="http://www.anatomicaltravel.com/research/wp-content/uploads/colon_isosurface-267x300.jpg" alt="Marching cubes extraction of the lumen, scaled to real world units" width="267" height="300" /></a><p class="wp-caption-text">Marching cubes extraction of the lumen, scaled to real world units</p></div>
<p style="text-align: left;">
<p style="text-align: left;"><strong>Rationalization</strong></p>
<p style="text-align: left;">The isosurface is then rationalized to a curve network.  Along the length of the colon, longitudinal lines are created as well as cross-sectional lines.</p>
<p style="text-align: left;">
<div id="attachment_906" class="wp-caption aligncenter" style="width: 277px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/colon_curvenetwork_hqs.jpg"><img class="size-medium wp-image-906" style="border: 0pt none;" title="colon_curvenetwork_hqs" src="http://www.anatomicaltravel.com/research/wp-content/uploads/colon_curvenetwork_hqs-267x300.jpg" alt="Rationalized curve network of lumen" width="267" height="300" /></a><p class="wp-caption-text">Rationalized curve network of colon lumen</p></div>
<p><strong>Centerline Finding<br />
</strong></p>
<p style="text-align: left;">The curves generated from the rationalization can then be averaged together to find the centerline of the colon, which will be used as a camera path and as the base of our unwrapping process.</p>
<p style="text-align: left;">
<div id="attachment_907" class="wp-caption aligncenter" style="width: 277px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/colon_centerline.jpg"><img class="size-medium wp-image-907" style="border: 0pt none;" title="colon_centerline" src="http://www.anatomicaltravel.com/research/wp-content/uploads/colon_centerline-267x300.jpg" alt="Centerline path (thickened to show more clearly)" width="267" height="300" /></a><p class="wp-caption-text">Centerline path (thickened to show more clearly)</p></div>
<p>We normalized the spline and took some measurements off it.  In this case, the colon measured 1866 mm.</p>
<p><strong>Unwrapping</strong></p>
<p>So now we have all the information we need to do a basic unwrapping.  We create a new voxel array XYZ where X is the length along the centerline spline, Y is the complete rotation of the vector perpendicular to tangent of the centerline curve, and Z is the distance from the centerline curve.</p>
<div id="attachment_933" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/axisimage_a02_labeled.jpg"><img class="size-medium wp-image-933" style="border: 0pt none;" title="axisimage_a02_labeled" src="http://www.anatomicaltravel.com/research/wp-content/uploads/axisimage_a02_labeled-300x178.jpg" alt="How the voxels are sampled" width="300" height="178" /></a><p class="wp-caption-text">How the voxels are sampled</p></div>
<p>Or put another way, it looks something like this:</p>
<p style="text-align: center;">
<div id="attachment_937" class="wp-caption aligncenter" style="width: 267px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/colon_unfurl_.jpg"><img class="size-full wp-image-937" style="border: 0pt none;" title="colon_unfurl_" src="http://www.anatomicaltravel.com/research/wp-content/uploads/colon_unfurl_.jpg" alt="Conceptually what is happening" width="257" height="310" /></a><p class="wp-caption-text">Conceptually what is happening</p></div>
<p>This lookup was applied twice, once to the CT normal (gradient) volume and once to a unit cube of the dataset.   We also created a 1D array where the length along the spline intersected the dataset unit cube.</p>
<p>Here is a video showing the result from the CT normals.  The black voxels are outside the bounds of the dataset.  I&#8217;ve resized it such that each voxel is 3.5 mm in size.</p>
<br /><img src="http://www.anatomicaltravel.com/research/wp-content/uploads/unwrapped-normals-wm-thumb.jpg" alt="media" /><br />

<p>And here is a still image where the density and normal values from the CT have been accumulated to generate a &#8220;surface&#8221; based on the unwrapping of the colon.  This isn&#8217;t an isosurface, we&#8217;re still looking at voxels at this point, but as a 2D projection, it creates a nice &#8220;map&#8221; of the colon.</p>
<p style="text-align: left;">
<div id="attachment_927" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/colon_normals_unwrap_nodepthcue_accumulated_.jpg"><img class="size-medium wp-image-927" style="border: 0pt none;" title="colon_normals_unwrap_nodepthcue_accumulated_" src="http://www.anatomicaltravel.com/research/wp-content/uploads/colon_normals_unwrap_nodepthcue_accumulated_-300x17.jpg" alt="test" width="300" height="17" /></a><p class="wp-caption-text">Unwrapped normals, accumulated at the density of the CT.  Each voxel is 1mm in X.</p></div>
<p style="text-align: left;">By applying a depth cue to the voxels based on distance from centerline, however, we make it a bit easier to read.   The colors show where the surface is facing, so that red is dextral (on the right), blue is superior, and green is posterior.   Something to notice&#8230; where the horizontal bands of color shift downward or upward, that is where the colon bends, or at a rectal valve.  Conversely, where you see the bands stretch out is the colon is relatively straight.  The darkening helps to differentiate protruding features, like polyps, from recessed features, like the appendix or diverticula.</p>
<p style="text-align: left;">
<div id="attachment_930" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/colon_normals_unwrap_accumulated_2.jpg"><img class="size-medium wp-image-930" style="border: 0pt none;" title="colon_normals_unwrap_accumulated_2" src="http://www.anatomicaltravel.com/research/wp-content/uploads/colon_normals_unwrap_accumulated_2-300x17.jpg" alt="Unwrapped normals with depth cue" width="300" height="17" /></a><p class="wp-caption-text">With depth cue.  Can you find anything suspicious?</p></div>
<p style="text-align: left;">By the same technique, we accumulate the samples from the unit cube.   This gives us a position lookup between the unwrapped dataset and the original CT.</p>
<p style="text-align: left;">
<div id="attachment_931" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/colon_unitcube_unwrap_accumulated_.jpg"><img class="size-medium wp-image-931" style="border: 0pt none;" title="colon_unitcube_unwrap_accumulated_" src="http://www.anatomicaltravel.com/research/wp-content/uploads/colon_unitcube_unwrap_accumulated_-300x17.jpg" alt="Unwrapping samples from the unit cube of the dataset" width="300" height="17" /></a><p class="wp-caption-text">Unwrapping samples from the unit cube of the dataset</p></div>
<p style="text-align: left;">It is now possible to create a vector between any point along the centerline and any unoccluded surface point of the colon.  But since we still have the voxel data, we can explore the occluded and subsurface details, if present.</p>
<p><strong>Rendering</strong></p>
<p>From here we can construct some renders that show the data relative to a point in space somewhere along the centerline.</p>
<p>Here is a volume rendering showing the path through the colon as a bright light.</p>
<br /><img src="http://www.anatomicaltravel.com/research/wp-content/uploads/colonglow-crisp-c-b04-thumb.jpg" alt="media" /><br />

<p>We also created a raytraced image of the polygonal isosurface from inside, sampled along the length of the centerline.  This render covers a complete 360°<br />
view from each millimeter along the centerline path.</p>
<p>This video shows the spherical fisheye view on top.  We can convert this to a latitude/longitude view, as shown on the bottom.</p>
<br /><img src="http://www.anatomicaltravel.com/research/wp-content/uploads/spherical-latlong-compare-a01-wm-thumb.jpg" alt="media" /><br />

<p>Because the view is a full 360°, you can see everything visible from that one point.   This lets us tumble around in a more normal &#8220;human eye perspective&#8221; to look around.</p>
<br /><img src="http://www.anatomicaltravel.com/research/wp-content/uploads/spherical-lookaround-a02-wm-thumb.jpg" alt="media" /><br />

<p>This is similar to how a traditional endoscope works, but a LOT easier to control.  If we wanted to be more &#8220;authentic&#8221; we could have put a vignette around the images.</p>
<p><strong>Putting it all together</strong></p>
<p>Once you have all the assets created, it becomes a question of packaging and delivery.  The unwrapped normal map with depth cueing can be printed out on a piece of paper, or viewed on a small cellphone screen.</p>
<div id="attachment_1020" class="wp-caption aligncenter" style="width: 244px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/fourstrips_1000_.jpg"><img class="size-medium wp-image-1020" style="border: 0pt none;" title="fourstrips_1000_" src="http://www.anatomicaltravel.com/research/wp-content/uploads/fourstrips_1000_-234x300.jpg" alt="Cut into strips, ready for printout to include in patient file" width="234" height="300" /></a><p class="wp-caption-text">Cut into strips, ready for printout to include in patient file</p></div>
<div id="attachment_1021" class="wp-caption aligncenter" style="width: 280px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/colonshaped_labeled_1000_.jpg"><img class="size-medium wp-image-1021" style="border: 0pt none;" title="colonshaped_labeled_1000_" src="http://www.anatomicaltravel.com/research/wp-content/uploads/colonshaped_labeled_1000_-270x300.jpg" alt="Another way to view the colon on paper" width="270" height="300" /></a><p class="wp-caption-text">Another way to view the colon on paper</p></div>
<p>We can combine the other renders together into a linear video, where the number of frames is something fixed, like length in millimeters of the colon, and compare that to the unwrapped map X axis.   This could be burned to a DVD or posted on YouTube.</p>
<p>Or we can create a complete interactive system where the user can look for polyps in ANY of the views, the CT, the exterior view, the endoscope view, or the map, and the various views will all stay synced together.  This could be operated from a local workstation, or processed on a remote server and viewed on a webpage.   An automated version of this could be rendered out to a video as well.</p>
<div id="attachment_1023" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.anatomicaltravel.com/research/wp-content/uploads/userinterface_labels_c_a01_.jpg"><img class="size-medium wp-image-1023" style="border: 0pt none;" title="userinterface_labels_c_a01_" src="http://www.anatomicaltravel.com/research/wp-content/uploads/userinterface_labels_c_a01_-300x168.jpg" alt="A user interface for syncronizing the various views of the colon" width="300" height="168" /></a><p class="wp-caption-text">A user interface for synchronizing the various views of the colon</p></div>
<br /><img src="http://www.anatomicaltravel.com/research/wp-content/uploads/userinterface-labels-c-a01-600x336-thumb-.jpg" alt="media" /><br />

<p style="text-align: center;"><a href="http://www.anatomicaltravel.com/research/downloads/userinterface_labels_c_a01_q32_.avi">Download Full size user interface movie (7.3MB x264 AVI) </a><a href="http://www.anatomicaltravel.com/research/downloads/userinterface_labels_c_a01_q32_.avi"><img class="alignnone" style="border: 0pt none; vertical-align: middle; margin-left: 10px;" title="Download Full size user interface movie (7.3MB x264 AVI)" alt="Download Full size user interface movie (7.3MB x264 AVI)" src="/research/images/download.gif" alt="" width="14" height="16" /></a></p>
<p style="text-align: center;">
<p style="text-align: center;">
<p>You can see more of our colon explorations including other datasets at <a href="http://www.thevisualmd.com">www.thevisualmd.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anatomicaltravel.com/research/2009/05/how-to-make-a-virtual-colonoscopy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Smoothing Animation</title>
		<link>http://www.anatomicaltravel.com/research/2009/05/smoothing-animation/</link>
		<comments>http://www.anatomicaltravel.com/research/2009/05/smoothing-animation/#comments</comments>
		<pubDate>Tue, 05 May 2009 22:55:18 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[Fusion]]></category>
		<category><![CDATA[Image processing]]></category>

		<guid isPermaLink="false">http://www.anatomicaltravel.com/research/?p=1227</guid>
		<description><![CDATA[Another in what is turning into a series of posts where standard Fusion tools are transformed into something very interesting&#8230;
I&#8217;m smoothing animation data (or adding noise or offsets or whatever) using nothing more than some Probes.
In this video, the green dots represent the original animation, the blue dots the smoothed animation, and the orange is [...]]]></description>
			<content:encoded><![CDATA[<p>Another in what is turning into a series of posts where standard Fusion tools are transformed into something very interesting&#8230;</p>
<p>I&#8217;m smoothing animation data (or adding noise or offsets or whatever) using nothing more than some Probes.</p>
<p>In this video, the green dots represent the original animation, the blue dots the smoothed animation, and the orange is the original with some noise added.</p>
<p><center><br /><img src="http://www.anatomicaltravel.com/research/wp-content/uploads/pathsmoothing-dots-a01-wm.jpg" alt="media" /><br />
</center><br />
<span id="more-1227"></span></p>
<p style="text-align: left;">The trick of course is to convert the XYT values to RGX, blur those, and convert back to XYT.</p>
<p style="text-align: left;">The advantage is that you don&#8217;t have to blur, you can resize, or add noise, or paint, or mask or whatever.  Heck, you can even disk cache it out WITHOUT modification, so you could, you know, open it up in some other package, like 3ds max or nuke or flash or whatever.</p>
<p style="text-align: left;">Here&#8217;s the green animation&#8230;  You might have to squint.</p>
<p style="text-align: left;">
<div id="attachment_1230" class="wp-caption aligncenter" style="width: 211px"><img class="size-full wp-image-1230" style="border: 0pt none;" title="Animation of the green dot, expressed in XYT-&gt;RGX" src="http://www.anatomicaltravel.com/research/wp-content/uploads/pathsmoothing_dots_original_.jpg" alt="Animation of the green dot, expressed in XYT-&gt;RGX" width="201" height="1" /><p class="wp-caption-text">Animation of the green dot, expressed in XYT-&gt;RGX</p></div>
<p><center><a href="http://www.anatomicaltravel.com/research/downloads/smoothingexample_dots_a01.comp">Download Smoothing Animation with a Probe </a><a href="http://www.anatomicaltravel.com/research/downloads/smoothingexample_dots_a01.comp"><img class="alignnone" style="border: 0pt none; vertical-align: middle; margin-left: 10px;" title="Download Smoothing Animation with a Probe" alt="Download Smoothing Animation with a Probe" src="/research/images/download.gif" alt="" width="14" height="16" /></a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.anatomicaltravel.com/research/2009/05/smoothing-animation/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Download PolyLine Unwrap for Fusion</title>
		<link>http://www.anatomicaltravel.com/research/2009/04/download-polyline-unwrap/</link>
		<comments>http://www.anatomicaltravel.com/research/2009/04/download-polyline-unwrap/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 23:07:01 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[Fusion]]></category>
		<category><![CDATA[Image processing]]></category>

		<guid isPermaLink="false">http://www.anatomicaltravel.com/research/?p=1141</guid>
		<description><![CDATA[This post marks the release of version 1.0 of our polyline unwrap plugin. As described <a href="http://www.anatomicaltravel.com/research/2009/04/unwrap-polyline-masks/" title="Unwrap your polyline masks">in the previous post</a>, this tool helps you position polyline masks more accurately by obtaining lines of samples at intervals along the length of the polyline. Think of it like a ribbon of sample points tracking the [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><img class="alignright size-full wp-image-1178" title="Polyline Unwrap of cigarette footage" src="http://www.anatomicaltravel.com/research/wp-content/uploads/poly_example_frame.jpg" alt="Polyline Unwrap of cigarette footage" width="259" height="173" />This post marks the release of version 1.0 of our polyline unwrap plugin. As described <a href="http://www.anatomicaltravel.com/research/2009/04/unwrap-polyline-masks/" title="Unwrap your polyline masks">in the previous post</a>, this tool helps you position polyline masks more accurately by obtaining lines of samples at intervals along the length of the polyline. Think of it like a ribbon of sample points tracking the polyline, which is then laid flat as a single image strip. It is used in-house to quickly visualize and correct deviations from the ideal edge across multiple frames. As an example, footage of a cigarette burning was masked and linked to the unwrap tool (see image on the right).</p>
<p><br/><br />
<center></p>
<p style="text-align: center;">
<br /><img src="http://www.anatomicaltravel.com/research/wp-content/uploads/polylineunwrap-cigarette-example-c-a01-thumb.jpg" alt="media" /><br />
<br />
</center></p>
<p style="text-align: left;">This example video shows a yucky little roto problem…  Time lapse footage of a shape variant object. The colors flicker like mad, the shape is doesn’t interpolate well with few keyframes, there’s nothing for a point tracker to grab onto…  It’s just the sort of thing you need to use a spline on.</p>
<p><span id="more-1141"></span></p>
<p>Many of the datasets we deal with are similarly shape variant, and many are essentially time lapse, or at least shot with a very, very slow framerate.  In this case, we look at how you can check (and tweak) your polyline over time without A) having to select the points and B) having to SEE your point.  The burning edge of the cigarette is flying across the screen, but we don’t have to pan along to follow it.  The Polyline Unwrapper keeps the “edge” in one place in the viewer.  This makes it easier to find the shape, true, but more importantly, it lets you observe irregularities instantly.  Using the Filmstripper, you can arrange multple frames in a row to check for drift or any “peaks and troughs”.</p>
<p style="text-align: left;">Here&#8217;s a second example of Eyeon&#8217;s Fusion courseware showing the &#8220;overlay samples&#8221; mode, where the unwrapped sample points are plotted over the original image.</p>
<div id="attachment_1152" class="wp-caption aligncenter" style="width: 610px"><img class="size-full wp-image-1152" style="border: 0pt none;" title="Polyline Courseware example " src="http://www.anatomicaltravel.com/research/wp-content/uploads/standing_unwrapped_c_a02_.jpg" alt="Unwrapped example from Eyeon's courseware" width="600" height="249" /><p class="wp-caption-text">Unwrapped example from Eyeon&#39;s courseware</p></div>
<p style="text-align: center;">
<p style="text-align: center;"><img class="size-full wp-image-1130 aligncenter" style="border: 0pt none;" title="PolyLine Unwrap Tile Pic" src="http://www.anatomicaltravel.com/research/wp-content/uploads/polylineunwraptooltile_onblack_a01_.png" alt="Polyline Unwrap tilepic" width="123" height="91" /><br />
<a href="http://www.anatomicaltravel.com/research/downloads/polylineunwrap-1-0.zip">Download PolyLine Unwrap 1.0</a><a href="http://www.anatomicaltravel.com/research/downloads/polylineunwrap-1-0.zip"><img class="alignnone" style="border: 0pt none; vertical-align: middle; margin-left: 10px;" title="Download PolyLine Unwrap" alt="Download PolyLine Unwrap" src="/research/images/download.gif" alt="" width="14" height="16" /></a><br />
<a href="http://www.anatomicaltravel.com/research/downloads/polylineunwrapexample.rar">Download Example files </a><a href="http://www.anatomicaltravel.com/research/downloads/polylineunwrapexample.rar"><img class="alignnone" style="border: 0pt none; vertical-align: middle; margin-left: 10px;" title="Download Example files" alt="Download Example files" src="/research/images/download.gif" alt="" width="14" height="16" /></a></p>
<p style="text-align: left;">There’s some other fun stuff in the example comp, like using it on a paint stroke, instancing the result to another input, and viewing the results in a Trails tool.   Have fun, and experiment!</p>
<p style="text-align: left;"><strong>Footage courtesy <a href="http://www.openfootage.net/?p=151">openfootage.net</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.anatomicaltravel.com/research/2009/04/download-polyline-unwrap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
