<br>Hi Carl,<br><br><br>Well,.... let&#39;s go back to the basics:<br><br><br>What is the size of the raw file in Bytes ?<br><br>    If the image is really of pixel size<br><br>                256 x 256 x 128 <br><br>    with a pixel of 16 bits = 2 bytes,<br>
<br>    then the raw file must have a size of<br><br>              256 x 256 x 128 x 2 =<br><br>                     16777216 bytes<br><br><div class="gmail_quote">Please let us know what size in bytes do you <br>observe.<br>
<br>---<br><br>and, just to avoid confusion,<br>let me clarify:<br><br>MET_USHORT == unsigned short<br>
MET_UCHAR   == unsigned char<br><br><br>    Thanks<br><br><br>          Luis<br><br><br>--------------------------------------------------<br>On Fri, Apr 9, 2010 at 7:20 AM, Carl Bateman <span dir="ltr">&lt;<a href="mailto:Carl.Bateman@icr.ac.uk">Carl.Bateman@icr.ac.uk</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">Hi Luis,<br>
<br>
Thanks for getting back to me.<br>
<br>
</div>I don&#39;t know whether it&#39;s me or ImageJ or what...<br>
<br>
Yet further investigation shows that the source image has:<br>
ElementType = MET_USHORT<br>
<br>
While the resulting  &quot;_FIXED&quot;, &quot;_MOVING&quot; and &quot;_REGISTERED&quot; images have:<br>
ElementType = MET_UCHAR<br>
<br>
ImageJ reads the source as 16-bit and the resulting images as 8-bit.<br>
<br>
Paraview displays the files correctly and identifies the source as unsigned short and the resultants as unsigned char.<br>
<br>
Incidentally the source file is 4,096KB, while the resulants are 2,048KB.<br>
<br>
Does this mean that<br>
MET_USHORT == unsigned char<br>
MET_UCHAR == unsigned short ???<br>
<br>
And why does itk.Examples.Registration.Translation1.cs change the data type?<br>
<br>
All a bit confusing.<br>
<br>
Regards,<br>
<br>
Carl Bateman<br>
<br>
<br>
<br>
&gt;&gt;&gt; Luis Ibanez &lt;<a href="mailto:luis.ibanez@kitware.com">luis.ibanez@kitware.com</a>&gt; 08/04/2010 19:28 &gt;&gt;&gt;<br>
<div><div></div><div class="h5">Hi Carlos,<br>
<br>
Yes, that the output that I was suggesting you to post.<br>
<br>
However, before you focus on the registration process,<br>
you must first solve the process of reading images.<br>
<br>
<br>
The error message that you are getting:<br>
<br>
&gt;  MetaImage: M_ReadElements: data not read completely<br>
&gt;     ideal = 8388608 : actual = 4194304<br>
<br>
<br>
Indicates that you are promising and image larger than<br>
the content of the file that you are passing as input.<br>
<br>
<br>
There is no point in looking at the registration until<br>
you make sure that the input images are read correctly.<br>
(without error messages).<br>
<br>
<br>
You can verify the correctness of the input image<br>
by using<br>
<br>
1) Slicer  (<a href="http://www.slicer.org" target="_blank">www.slicer.org</a>)<br>
<br>
 or<br>
<br>
2) Paraview (<a href="http://www.paraview.org" target="_blank">www.paraview.org</a>)<br>
<br>
to load the MetaImage.<br>
<br>
<br>
<br>
       Regards,<br>
<br>
<br>
               Luis<br>
<br>
<br>
--------------------------------------------------------------<br>
On Wed, Apr 7, 2010 at 11:22 AM, Carl Bateman &lt;<a href="mailto:Carl.Bateman@icr.ac.uk">Carl.Bateman@icr.ac.uk</a>&gt; wrote:<br>
&gt; Hi Luis,<br>
&gt;<br>
&gt; thanks for getting back to me. Do you mean this?<br>
&gt;<br>
&gt; START: [007.00, 012.00, 000.00]<br>
&gt; 000:   [005.10, 009.41, -002.39]<br>
&gt; 001:   [003.95, 006.69, 000.30]<br>
&gt; 002:   [001.88, 004.75, -002.52]<br>
&gt; 003:   [-000.29, 002.16, -000.38]<br>
&gt; 004:   [-002.46, -000.96, 000.86]<br>
&gt; 005:   [-003.21, -002.80, -002.61]<br>
&gt; 006:   [-003.55, -004.41, -001.47]<br>
&gt; 007:   [-004.40, -004.95, 000.26]<br>
&gt; 008:   [-004.78, -005.75, -000.19]<br>
&gt; 009:   [-005.28, -006.60, -000.02]<br>
&gt; 010:   [-005.41, -007.59, -000.06]<br>
&gt; 011:   [-005.49, -008.59, -000.01]<br>
&gt; 012:   [-005.53, -009.59, -000.02]<br>
&gt; 013:   [-006.09, -010.41, -000.02]<br>
&gt; 014:   [-006.97, -010.89, -000.05]<br>
&gt; 015:   [-007.02, -011.89, 000.02]<br>
&gt; 016:   [-006.82, -012.83, -000.23]<br>
&gt; 017:   [-006.96, -012.46, 000.07]<br>
&gt; 018:   [-007.02, -012.01, -000.14]<br>
&gt; 019:   [-007.00, -012.01, 000.11]<br>
&gt; 020:   [-007.00, -012.01, -000.01]<br>
&gt; 021:   [-007.00, -012.00, 000.05]<br>
&gt; 022:   [-007.00, -012.00, 000.02]<br>
&gt; 023:   [-007.00, -012.00, -000.02]<br>
&gt; 024:   [-007.00, -012.00, 000.00]<br>
&gt; END:   [-007.00, -012.00, 000.00]<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Actually, after further investigation it looks as though there&#39;s some confusion over the raw data format. I changed the DimSize in the mhd from<br>
&gt;  DimSize = 128 128 128<br>
&gt; to<br>
&gt;  DimSize = 256 256 128<br>
&gt;<br>
&gt; and the code *seems* to work correctly, although it does generate the message:<br>
&gt;  MetaImage: M_ReadElements: data not read completely<br>
&gt;     ideal = 8388608 : actual = 4194304<br>
&gt;<br>
&gt; also, after applyiing the found parameters the resulting image seems pixelated (see attached png).<br>
&gt;<br>
&gt; Is there something wrong with the Read method? Is the image type incorrect? Or could it be the header file? (ImageJ reads the raw file correctly with 128, 128, 128.)<br>
&gt;<br>
&gt; Regards,<br>
&gt;<br>
&gt; Carl<br>
&gt;<br>
&gt;<br>
&gt;&gt;&gt;&gt; Luis Ibanez &lt;<a href="mailto:luis.ibanez@kitware.com">luis.ibanez@kitware.com</a>&gt; 07/04/2010 14:43 &gt;&gt;&gt;<br>
&gt; Hi Carl,<br>
&gt;<br>
&gt; Thanks for the detailed description of what you are doing.<br>
&gt;<br>
&gt; You changes to the code look reasonable.<br>
&gt;<br>
&gt; The fact that the fixed image has a different number of<br>
&gt; slices than the moving image shouldn&#39;t be a problem,<br>
&gt; *as long as* both images have the correct values of<br>
&gt; pixel spacing.<br>
&gt;<br>
&gt; I would have expected the &quot;registered&quot; image to have the<br>
&gt; same image grid as the &quot;fixed&quot; image, since it is usually<br>
&gt; generated by mapping the intensity values of the moving<br>
&gt; image into the image grid of the fixed image.<br>
&gt;<br>
&gt; How does the current setup behaves when you run the<br>
&gt; registration ?<br>
&gt;<br>
&gt; Can you please post to the list the values of the Metric,<br>
&gt; and the transform parameters at every iteration of the<br>
&gt; registration process ?<br>
&gt;<br>
&gt;<br>
&gt;    Thanks<br>
&gt;<br>
&gt;<br>
&gt;         Luis<br>
&gt;<br>
&gt;<br>
&gt; ------------------------------------------------------------<br>
&gt; On Tue, Apr 6, 2010 at 12:34 PM, Carl Bateman &lt;<a href="mailto:Carl.Bateman@icr.ac.uk">Carl.Bateman@icr.ac.uk</a>&gt; wrote:<br>
&gt;&gt; I&#39;m trying to change itk.Examples.Registration.Translation1.cs to work with 3d images.<br>
&gt;&gt;<br>
&gt;&gt; I&#39;ve changed the existing using statements to:<br>
&gt;&gt;  using ImageType = itk.itkImage_UC3;<br>
&gt;&gt;  using InterpolatorType = itk.itkLinearInterpolateImageFunction_IUC3D;<br>
&gt;&gt;  using TransformType = itk.itkTranslationTransform_D3;<br>
&gt;&gt;  using ResampleType = itk.itkResampleImageFilter_IUC3IUC3;<br>
&gt;&gt;  using MetricType = itk.itkMeanSquaresImageToImageMetric_IUC3IUC3;<br>
&gt;&gt;  using OptimizerType = itk.itkRegularStepGradientDescentOptimizer;<br>
&gt;&gt;  using RegistrationType = itk.itkImageRegistrationMethod_IUC3IUC3;<br>
&gt;&gt;<br>
&gt;&gt; and the transform.Translate lines to:<br>
&gt;&gt;  transform.Translate(new itkVector(7.0, 12.0, 0.0));<br>
&gt;&gt; and<br>
&gt;&gt;  transform.Translate(new itkVector(0.0, 0.0, 0.0));<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; I&#39;m using a raw image with a mhd header as input.<br>
&gt;&gt;<br>
&gt;&gt; The original image has 128 slices, but the &quot;_FIXED&quot;, &quot;_MOVING&quot; and &quot;_REGISTERED&quot; images only have 64 slices.<br>
&gt;&gt;<br>
&gt;&gt; Additionally, the &quot;_MOVING&quot; and &quot;_REGISTERED&quot; images have a white cross through them (see attached png).<br>
&gt;&gt;<br>
&gt;&gt; I suspect that the problem lies in the transformation, as<br>
&gt;&gt;  transform.Translate(new itkVector(7.0, 0.0, 0.0));<br>
&gt;&gt; gives a horizontal line, while<br>
&gt;&gt;  transform.Translate(new itkVector(0.0, 12.0, 0.0));<br>
&gt;&gt; gives a vertical line.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Is it the transformation? And if so how should it be used correctly?<br>
&gt;&gt;<br>
&gt;&gt; Any help appreciated.<br>
&gt;&gt;<br>
&gt;&gt; Carl Bateman<br>
<br>
The Institute of Cancer Research: Royal Cancer Hospital, a charitable Company Limited by Guarantee, Registered in England under Company No. 534147 with its Registered Office at 123 Old Brompton Road, London SW7 3RP.<br>
<br>
This e-mail message is confidential and for use by the addressee only.  If the message is received by anyone other than the addressee, please return the message to the sender by replying to it and then delete the message from your computer and network.<br>

</div></div></blockquote></div><br>