No subject


Thu May 27 11:52:52 EDT 2010


B B Thanks


B B B B B B Luis


-----------------------------------------------------------
On Fri, Oct 8, 2010 at 4:01 PM, Cory Quammen <cquammen at cs.unc.edu>
wrote:


On Fri, Oct 8, 2010 at 1:38 PM, Michael Stauffer (Circular Logic)
<mstauff at verizon.net> wrote:
> We're not interested in shearing (at least at this point, Brian might
> have some ideas about that for down the road). Initially we'd like to
be
> able to orient sets of images to a common orientation before batch
> processing, so should need just rotation and/or reflection. The idea,
if
> I understand fully, is to account for different orientations between
or
> within data sets, possibly due to operator error. Thus, we'll probably
> have to manually set the transforms per image.
>
> The goal with doing this via the image header is to avoid
preprocessing
> the image data itself and introducing unnecessary interpolation noise.


I see.


> It seems from what we've looked at so far that the Image::m_Direction
> matrix is expected to be rigid, and if it is not, it is decomposed to
> use only the rigid part? At least, this seems to be how itk snap
> behaves.


Your understanding of the direction matrix matches mine, but I could be
wrong.

Perhaps someone more familiar with the assumed properties of the
direction matrix could chime in.

Cory



>
>>-----Original Message-----
>>From: cquammen at gmail.com [mailto:cquammen at gmail.com] On Behalf
>>Of Cory Quammen
>>Sent: Friday, October 08, 2010 1:10 PM
>>To: Michael Stauffer (Circular Logic)
>>Cc: Insight Developers
>>Subject: Re: [Insight-developers] compose affine with header filter?
>>
>>Hi Michael,
>>
>>I don't know of a filter that does what you describe, but it sounds
>>like you want this filter to essentially produce an image on a
>>potentially sheared grid. Does this correctly characterize what you
>>want the filter to produce?
>>
>>An image defined on a sheared grid fits in with a recent discussion on
>>this list about supporting images whose samples do not lie at regular
>>intervals along orthogonal directions, so I'm interested in knowing
>>more about what you are trying to do with this filter.
>>
>>Thanks,
>>Cory
>>
>>
>>On Fri, Oct 8, 2010 at 11:28 AM, Michael Stauffer (Circular Logic)
>><mstauff at verizon.net> wrote:
>>> Hi all,
>>>
>>> I'm new to ITK. I started working with Brian Avants and the
>>reset of the
>>> ANTS team a few weeks ago. I'm about to start on my first
>>ITK filter, a
>>> simple one to learn the ropes. It may or may not end up being
useful.
>>> But first we wanted to check if someone else has already
>>implemented the
>>> follow functionality, but not integrated it with itk.
>>>
>>> The filter will accept an image and an affine transform, compose the
>>> input transform with the transform stored in the image's header (via
>>> m_Direction and m_Origin), then output a new image with the composed
>>> transform in its header.
>>>
>>> Cheers,
>>> Michael
>>>




------=_NextPart_000_00DD_01CB6ACF.193E9F20
Content-Type: text/html;
	charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<META content=3D"MSHTML 6.00.6000.17080" name=3DGENERATOR></HEAD>
<BODY>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D371060316-13102010><FONT =
face=3DVerdana=20
size=3D2>Luis, thanks for the clarification. That's exactly what we were =

suspecting.</FONT></SPAN></DIV>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D371060316-13102010><FONT =
face=3DVerdana=20
size=3D2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D371060316-13102010><FONT =
face=3DVerdana=20
size=3D2>I'm&nbsp;working now from some code from Hans that performs the =

operation. If we run into trouble I'll take you up on your offer to=20
help.</FONT></SPAN></DIV>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D371060316-13102010><FONT =
face=3DVerdana=20
size=3D2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D371060316-13102010><FONT =
face=3DVerdana=20
size=3D2>Cheers,</FONT></SPAN></DIV>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D371060316-13102010><FONT =
face=3DVerdana=20
size=3D2>Michael</FONT></SPAN></DIV><BR>
<BLOCKQUOTE=20
style=3D"PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px =
solid; MARGIN-RIGHT: 0px">
  <DIV class=3DOutlookMessageHeader lang=3Den-us dir=3Dltr align=3Dleft>
  <HR tabIndex=3D-1>
  <FONT face=3DTahoma size=3D2><B>From:</B> Luis Ibanez=20
  [mailto:luis.ibanez at kitware.com] <BR><B>Sent:</B> Wednesday, October =
13, 2010=20
  10:00 AM<BR><B>To:</B> Cory Quammen<BR><B>Cc:</B> Michael Stauffer =
(Circular=20
  Logic); Insight Developers<BR><B>Subject:</B> Re: [Insight-developers] =
compose=20
  affine with header filter?<BR></FONT><BR></DIV>
  <DIV></DIV>
  <DIV class=3Dgmail_quote>Cory,<BR><BR>You are right,<BR><BR>The =
implicit=20
  transform that is stored in the itkImage<BR>metadata can only describe =
a=20
  combination of:<BR><BR>1) Translation (via the origin)<BR>2) Rotation =
/=20
  Reflection (via the Direction matrix)<BR>3) Anisotropic scaling (via =
the=20
  spacing)<BR><BR><BR>Combining these three modifications, it is not=20
  possible<BR>to represent a generic Affine Transform.<BR><BR>In =
particular, as=20
  you pointed out, we can't represent<BR>shearing (at least not for a =
generic=20
  case).<BR><BR><BR>--<BR><BR><BR>Michael:<BR><BR><BR>The filter that =
you are=20
  describing will have to be<BR>limited to composing the existing image =
grid=20
  with<BR>only the following operations:<BR><BR><BR>1) =
Translations<BR>2) Rigid=20
  rotations &amp; Reflections (flipping)<BR>3) Anisotropic scaling =
parallel to=20
  the grid.<BR><BR><BR>I'll be happy to have a phone /skype =
conversation<BR>if=20
  you want to go about the details.<BR><BR>---<BR><BR>Also,<BR><BR>if =
you are=20
  writing your first ITK, you may find<BR>useful to look at this=20
  presentation:<BR><A=20
  =
href=3D"http://www.na-mic.org/Wiki/images/b/bc/Insight-Writing-a-New-Filt=
er.ppt">http://www.na-mic.org/Wiki/images/b/bc/Insight-Writing-a-New-Filt=
er.ppt</A><BR><BR>From=20
  the EPFL workshop in ITK development:<BR><A=20
  =
href=3D"http://www.na-mic.org/Wiki/index.php/Dissemination:EPFL_Workshop_=
2005">http://www.na-mic.org/Wiki/index.php/Dissemination:EPFL_Workshop_20=
05</A><BR><BR><BR>B=20
  B Thanks<BR><BR><BR>B B B B B B=20
  =
Luis<BR><BR><BR>---------------------------------------------------------=
--<BR>On=20
  Fri, Oct 8, 2010 at 4:01 PM, Cory Quammen <SPAN dir=3Dltr>&lt;<A=20
  href=3D"mailto:cquammen at cs.unc.edu">cquammen at cs.unc.edu</A>&gt;</SPAN> =

wrote:<BR>
  <BLOCKQUOTE class=3Dgmail_quote=20
  style=3D"PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: =
rgb(204,204,204) 1px solid">
    <DIV class=3Dim>On Fri, Oct 8, 2010 at 1:38 PM, Michael Stauffer =
(Circular=20
    Logic)<BR>&lt;<A=20
    href=3D"mailto:mstauff at verizon.net">mstauff at verizon.net</A>&gt; =
wrote:<BR>&gt;=20
    We're not interested in shearing (at least at this point, Brian=20
    might<BR>&gt; have some ideas about that for down the road). =
Initially we'd=20
    like to be<BR>&gt; able to orient sets of images to a common =
orientation=20
    before batch<BR>&gt; processing, so should need just rotation and/or =

    reflection. The idea, if<BR>&gt; I understand fully, is to account =
for=20
    different orientations between or<BR>&gt; within data sets, possibly =
due to=20
    operator error. Thus, we'll probably<BR>&gt; have to manually set =
the=20
    transforms per image.<BR>&gt;<BR>&gt; The goal with doing this via =
the image=20
    header is to avoid preprocessing<BR>&gt; the image data itself and=20
    introducing unnecessary interpolation noise.<BR><BR></DIV>I see.<BR>
    <DIV class=3Dim><BR>&gt; It seems from what we've looked at so far =
that the=20
    Image::m_Direction<BR>&gt; matrix is expected to be rigid, and if it =
is not,=20
    it is decomposed to<BR>&gt; use only the rigid part? At least, this =
seems to=20
    be how itk snap<BR>&gt; behaves.<BR><BR></DIV>Your understanding of =
the=20
    direction matrix matches mine, but I could be wrong.<BR><BR>Perhaps =
someone=20
    more familiar with the assumed properties of the<BR>direction matrix =
could=20
    chime in.<BR><FONT color=3D#888888><BR>Cory<BR></FONT>
    <DIV>
    <DIV></DIV>
    <DIV class=3Dh5><BR><BR>&gt;<BR>&gt;&gt;-----Original=20
    Message-----<BR>&gt;&gt;From: <A=20
    href=3D"mailto:cquammen at gmail.com">cquammen at gmail.com</A> [mailto:<A =

    href=3D"mailto:cquammen at gmail.com">cquammen at gmail.com</A>] On=20
    Behalf<BR>&gt;&gt;Of Cory Quammen<BR>&gt;&gt;Sent: Friday, October =
08, 2010=20
    1:10 PM<BR>&gt;&gt;To: Michael Stauffer (Circular =
Logic)<BR>&gt;&gt;Cc:=20
    Insight Developers<BR>&gt;&gt;Subject: Re: [Insight-developers] =
compose=20
    affine with header filter?<BR>&gt;&gt;<BR>&gt;&gt;Hi=20
    Michael,<BR>&gt;&gt;<BR>&gt;&gt;I don't know of a filter that does =
what you=20
    describe, but it sounds<BR>&gt;&gt;like you want this filter to =
essentially=20
    produce an image on a<BR>&gt;&gt;potentially sheared grid. Does this =

    correctly characterize what you<BR>&gt;&gt;want the filter to=20
    produce?<BR>&gt;&gt;<BR>&gt;&gt;An image defined on a sheared grid =
fits in=20
    with a recent discussion on<BR>&gt;&gt;this list about supporting =
images=20
    whose samples do not lie at regular<BR>&gt;&gt;intervals along =
orthogonal=20
    directions, so I'm interested in knowing<BR>&gt;&gt;more about what =
you are=20
    trying to do with this=20
    =
filter.<BR>&gt;&gt;<BR>&gt;&gt;Thanks,<BR>&gt;&gt;Cory<BR>&gt;&gt;<BR>&gt=
;&gt;<BR>&gt;&gt;On=20
    Fri, Oct 8, 2010 at 11:28 AM, Michael Stauffer (Circular=20
    Logic)<BR>&gt;&gt;&lt;<A=20
    href=3D"mailto:mstauff at verizon.net">mstauff at verizon.net</A>&gt;=20
    wrote:<BR>&gt;&gt;&gt; Hi all,<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt; I'm =
new to=20
    ITK. I started working with Brian Avants and the<BR>&gt;&gt;reset of =

    the<BR>&gt;&gt;&gt; ANTS team a few weeks ago. I'm about to start on =
my=20
    first<BR>&gt;&gt;ITK filter, a<BR>&gt;&gt;&gt; simple one to learn =
the=20
    ropes. It may or may not end up being useful.<BR>&gt;&gt;&gt; But =
first we=20
    wanted to check if someone else has already<BR>&gt;&gt;implemented=20
    the<BR>&gt;&gt;&gt; follow functionality, but not integrated it with =

    itk.<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt; The filter will accept an image =
and an=20
    affine transform, compose the<BR>&gt;&gt;&gt; input transform with =
the=20
    transform stored in the image's header (via<BR>&gt;&gt;&gt; =
m_Direction and=20
    m_Origin), then output a new image with the composed<BR>&gt;&gt;&gt; =

    transform in its header.<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt;=20
    Cheers,<BR>&gt;&gt;&gt;=20
  =
Michael<BR>&gt;&gt;&gt;<BR></DIV></DIV></BLOCKQUOTE></DIV><BR></BLOCKQUOT=
E></BODY></HTML>

------=_NextPart_000_00DD_01CB6ACF.193E9F20--



More information about the Insight-developers mailing list