<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://bone.wiki/index.php?action=history&amp;feed=atom&amp;title=Image_Registration</id>
	<title>Image Registration - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://bone.wiki/index.php?action=history&amp;feed=atom&amp;title=Image_Registration"/>
	<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=Image_Registration&amp;action=history"/>
	<updated>2026-10-30T01:12:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://bone.wiki/index.php?title=Image_Registration&amp;diff=6876&amp;oldid=prev</id>
		<title>Yingzhu: Created page with &quot;=Scanco Image Registration= ==Image Transformation== *Refer to  &#039;&#039;&#039;Scanco Image Transformation v1.01 User Guide&#039;&#039;&#039;   Imag...&quot;</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=Image_Registration&amp;diff=6876&amp;oldid=prev"/>
		<updated>2021-01-15T23:58:52Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;=Scanco Image Registration= ==Image Transformation== *Refer to &lt;a href=&quot;/images/f/f4/Scanco-software-transform-v101-ipl_fe.pdf&quot; class=&quot;internal&quot; title=&quot;Scanco-software-transform-v101-ipl fe.pdf&quot;&gt; &amp;#039;&amp;#039;&amp;#039;Scanco Image Transformation v1.01 User Guide&amp;#039;&amp;#039;&amp;#039;&lt;/a&gt;   Imag...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Scanco Image Registration=&lt;br /&gt;
==Image Transformation==&lt;br /&gt;
*Refer to [[Media:Scanco-software-transform-v101-ipl_fe.pdf| &amp;#039;&amp;#039;&amp;#039;Scanco Image Transformation v1.01 User Guide&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Redirect.jpg|15px]] [[#top|&amp;#039;&amp;#039;Return to Contents&amp;#039;&amp;#039;]] or [[Main_Page|&amp;#039;&amp;#039;Return to Main Page&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==Image Registration==&lt;br /&gt;
*Refer to [[Media:Scanco-software-register-v101-ipl_fe.pdf| &amp;#039;&amp;#039;&amp;#039;Scanco Image Registration v1.01 User Guide&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Redirect.jpg|15px]] [[#top|&amp;#039;&amp;#039;Return to Contents&amp;#039;&amp;#039;]] or [[Main_Page|&amp;#039;&amp;#039;Return to Main Page&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==Register MRI to HR-pQCT==&lt;br /&gt;
The registration between MRI and HR-pQCT using the Scanco system requires an initial guess as the MRI and HR-pQCT images are usually not close to being aligned (unlike two HR-pQCT images that start off in the same orientation). The following steps explain how to determine an initial guess using blSurfaceViewer.&lt;br /&gt;
&lt;br /&gt;
1. Contour bones (really rough for MRI is ok).&lt;br /&gt;
&lt;br /&gt;
2. Find initial guess that approximately aligns bones from both scans.&lt;br /&gt;
&lt;br /&gt;
- Read in aim to IPL&lt;br /&gt;
&lt;br /&gt;
- Use gobj_maskaimpeel_ow to get just the MRI and XCT bone (but not change dimensions of the image as this affects the initial guess)&lt;br /&gt;
&lt;br /&gt;
- Scale the peeled XCT image down by 3&lt;br /&gt;
&lt;br /&gt;
- Write out both these files and ftp to computer&lt;br /&gt;
&lt;br /&gt;
- Open in blSurfaceViewer (input = MRI, source = XCT if you are using the XCT as the fixed image and MRI as the moving image) &lt;br /&gt;
&lt;br /&gt;
- Move them until they are aligned.&lt;br /&gt;
&lt;br /&gt;
- Click Save Transform&lt;br /&gt;
&lt;br /&gt;
- Go file -&amp;gt; Save TDatOpen the TDat file to get the initial inputs&lt;br /&gt;
&lt;br /&gt;
3. This initial guess (in x, y, z rotations and translations) can be used in the registration function in IPL as the &amp;#039;initial rotation&amp;#039; and &amp;#039;initial translation&amp;#039; input.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Redirect.jpg|15px]] [[#top|&amp;#039;&amp;#039;Return to Contents&amp;#039;&amp;#039;]] or [[Main_Page|&amp;#039;&amp;#039;Return to Main Page&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
=Similarity Registration=&lt;br /&gt;
==Understand rotation parameters==&lt;br /&gt;
In SimilarityRegistration, former AppSimilarityRegistrationV3, used when registering images with Shape, the config file&lt;br /&gt;
allows for setting inital rotations &amp;lt;code&amp;gt;initial_transform_axis_x, initial_transform_axis_y, initial_transform_axis_z&amp;lt;/code&amp;gt;. These correspond to the versor components and are calculated as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
initial_transform_axis_x = n_x * sin(alpha/2)&lt;br /&gt;
initial_transform_axis_y = n_y * sin(alpha/2)&lt;br /&gt;
initial_transform_axis_z = n_z * sin(alpha/2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where &amp;lt;code&amp;gt;n=[n_x,n_y,n_z]^T&amp;lt;/code&amp;gt; is the unit vecotr representing the axis of rotation and &amp;lt;code&amp;gt;alpha&amp;lt;/code&amp;gt; is the angle of rotation. Example 45 degree rotation around x-axis:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
initial_transform_axis_x = 1 * sin(45/2) = 0.382&lt;br /&gt;
initial_transform_axis_y = 0 * sin(45/2) = 0&lt;br /&gt;
initial_transform_axis_z = 0 * sin(45/2) = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The rotations after registration &amp;lt;code&amp;gt;final_transform_axis_x, final_transform_axis_y, final_transform_axis_z&amp;lt;/code&amp;gt; can be interpreted the same way.&lt;br /&gt;
ITK provides the functions GetAxis() and GetAngle to obtain &amp;lt;code&amp;gt;[n_x, n_y, n_z]&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;alpha&amp;lt;/code&amp;gt; respectively, which are calculated as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
v_1 = initial_transform_axis_x&lt;br /&gt;
v_2 = initial_transform_axis_y&lt;br /&gt;
v_3 = initial_transform_axis_z&lt;br /&gt;
magnitude = sqrt(v_1^2 + v_2^2 + v_3^2)&lt;br /&gt;
n_x = v_1/magnitude&lt;br /&gt;
n_y = v_2/magnitude&lt;br /&gt;
n_z = v_3/magnitude&lt;br /&gt;
alpha = 2 * atan(magnitude/1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Redirect.jpg|15px]] [[#top|&amp;#039;&amp;#039;Return to Contents&amp;#039;&amp;#039;]] or [[Main_Page|&amp;#039;&amp;#039;Return to Main Page&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==Set optimizer scales==&lt;br /&gt;
http://www.vtk.org/Wiki/ITK/ImageRegistration#Parameter_Selection&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Redirect.jpg|15px]] [[#top|&amp;#039;&amp;#039;Return to Contents&amp;#039;&amp;#039;]] or [[Main_Page|&amp;#039;&amp;#039;Return to Main Page&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
=SkiRegistration=&lt;br /&gt;
&lt;br /&gt;
==ITK Rigid registration for HR-pQCT==&lt;br /&gt;
*Refer to [[Media:skiRegistration-Guide.doc| &amp;#039;&amp;#039;&amp;#039;skiRegistration-Guide&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
Available on the SVN server https://mike.kin.ucalgary.ca/svn/bonelab/trunk/UserApps/yves/&lt;br /&gt;
&lt;br /&gt;
The three executables skiInitialize, skiRegister and skiTransform are called in sequence using a shell script skiRegistration.sh. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Redirect.jpg|15px]] [[#top|&amp;#039;&amp;#039;Return to Contents&amp;#039;&amp;#039;]] or [[Main_Page|&amp;#039;&amp;#039;Return to Main Page&amp;#039;&amp;#039;]]&lt;/div&gt;</summary>
		<author><name>Yingzhu</name></author>
	</entry>
</feed>