<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Thanks Markus,<br>
<br>
Using ContinuousIndex worked. Nevertheless, I still think that any itk
Filter should always work in physical coordinates... Is there any
reason why this filter does not, or is just for implementation easiness
or efficiency?<br>
<br>
Markus Neuner wrote:
<blockquote cite="mid:4B602268.1030801@gmx.net" type="cite">
  <pre wrap="">Hi Alberto Gomez,

When you take a look at the source code of
"Insight/Code/BasicFilters/itkHoughTransform2DLinesImageFilter.txx"
starting at line 298 you can see how the points are calculated:

...
        LineType::PointListType list; // insert two points per line
...
        double radius = it_input.GetIndex()[0];
        double teta   =
((it_input.GetIndex()[1])*2*nPI/this-&gt;GetAngleResolution())-nPI;
        double Vx = radius*vcl_cos(teta );
        double Vy = radius*vcl_sin(teta );
        double norm = vcl_sqrt(Vx*Vx+Vy*Vy);
        double VxNorm = Vx/norm;
        double VyNorm = Vy/norm;
...
          LinePointType p;
          p.SetPosition(Vx,Vy);
          list.push_back(p);
          p.SetPosition(Vx-VyNorm*5,Vy+VxNorm*5);
          list.push_back(p);
...

Furthermore the points are of type "itk::LineSpatialObjectPoint&lt;
TPointDimension &gt;" whith "typedef Point
<a class="moz-txt-link-rfc2396E" href="http://www.itk.org/Doxygen/html/classitk_1_1Point.html">&lt;http://www.itk.org/Doxygen/html/classitk_1_1Point.html&gt;</a>&lt; double,
TPointDimension &gt; PointType".
<a class="moz-txt-link-rfc2396E" href="http://www.itk.org/Doxygen/html/classitk_1_1LineSpatialObjectPoint.html#993f2f73923d9e4fc69f18ca6ac95ea4">&lt;http://www.itk.org/Doxygen/html/classitk_1_1LineSpatialObjectPoint.html#993f2f73923d9e4fc69f18ca6ac95ea4&gt;</a>

As you can see the coordinates are of type double.

The easiest solution is to construct a
 itk::ContinuousIndex
<a class="moz-txt-link-rfc2396E" href="http://www.itk.org/Doxygen/html/classitk_1_1ContinuousIndex.html">&lt;http://www.itk.org/Doxygen/html/classitk_1_1ContinuousIndex.html&gt;</a>
(should be defined in the ImageType::ContiunuousIndexType)
and pass it to
TransformContinuousIndexToPhysicalPoint (const ContinuousIndex&lt;
TCoordRep, VImageDimension &gt; &amp;        index, Point&lt; TCoordRep,
VImageDimension &gt; &amp;  point ).

I hope this helps.

Best regards,
Markus



Gomez, Alberto wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">Hi all,

I am using the itk::HoughTransform2DLinesImageFilter  to extract the
lines from an image for a certain application. The point is that I
don't want to draw the lines but to get the lines parameters
(direction and a point ) for further computations. I realised that,
following the example from the software guide, the vector and the line
are in pixel coordinates and not in real world coordinates. Can anyone
confirm this?

So, what I did is to use the TransformIndexToPhysicalPoint() method,
but it does not work properly (mi lines are slightly deviated). My
assumption is that the extracted points are in pixel coordinates but
aren't integers. Because of that, the TransformIndexToPhysicalPoint()
method rounds them and then computes the physical coordinates, which
yields in the inaccuracy I realized.

The solution I found was to get two points, in pixel coordinates, very
far from each other, so that the inaccuracy of the conversion is
smaller. Nevertheless, this is not clean. Does anyone know a way to
get the line parameters accurately in physical coordinates? I guess
that the Hough map (output of the filter) is (r, theta) in real
physical coordinates, but I don't know how to extract the maximums in
the same way that getLines() does (using the disc, etc).

Thank you,
Alberto
||

-- 

Alberto G&oacute;mez

/Division of Imaging Sciences
The Rayne Institute
4th Floor, Lambeth Wing
St Thomas' Hospital
London SE1 7EH /

phone: +44 (0) 20 718 88364
email: <a class="moz-txt-link-abbreviated" href="mailto:alberto.gomez@kcl.ac.uk">alberto.gomez@kcl.ac.uk</a> <a class="moz-txt-link-rfc2396E" href="mailto:alberto.gomez@kcl.ac.uk">&lt;mailto:alberto.gomez@kcl.ac.uk&gt;</a>

------------------------------------------------------------------------

_____________________________________
Powered by <a class="moz-txt-link-abbreviated" href="http://www.kitware.com">www.kitware.com</a>

Visit other Kitware open-source projects at
<a class="moz-txt-link-freetext" href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a>

Kitware offers ITK Training Courses, for more information visit:
<a class="moz-txt-link-freetext" href="http://www.kitware.com/products/protraining.html">http://www.kitware.com/products/protraining.html</a>

Please keep messages on-topic and check the ITK FAQ at:
<a class="moz-txt-link-freetext" href="http://www.itk.org/Wiki/ITK_FAQ">http://www.itk.org/Wiki/ITK_FAQ</a>

Follow this link to subscribe/unsubscribe:
<a class="moz-txt-link-freetext" href="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users</a>
  
    </pre>
  </blockquote>
  <pre wrap=""><!---->
  </pre>
</blockquote>
<br>
<br>
<div class="moz-signature">-- <br>
<meta http-equiv="Content-Type" content="text/html;  ">
<p>Alberto G&oacute;mez</p>
<p>
<i>Division of Imaging Sciences <br>
The Rayne Institute<br>
4th Floor, Lambeth Wing<br>
St Thomas' Hospital<br>
London SE1 7EH
</i></p>
<p>phone: +44 (0) 20 718 88364<br>
email: <a href="mailto:alberto.gomez@kcl.ac.uk">alberto.gomez@kcl.ac.uk</a>
</p>
</div>
</body>
</html>