[IGSTK-Users] Viewer Problem due to TransformPhysicalPointToIndex

Patrick Cheng cheng at isis.georgetown.edu
Sun Jun 18 14:47:29 EDT 2006


Hi Fucang,

I fixed the problem in the IGSTK main repository, by adding
TransformPhysicalPointToContinuousIndex() function, into the
igstkImageSpatialObject class.

But the example application you are running is in the Sandbox.

You might need to check on two things:

First, after you update the IGSTK main repository, you have to CMake
the Sandbox again, this way, the Sandbox will get the latest source
from main repository,

Second, you have updated the FourViewsTrackingWithCT application in
the Sandbox. You can double check by looking into the
DrawPickedPoint() function in the FourViewsTrackingWithCT .cxx file.
See whether it's using the continuous index.

I will send you the executables in another separate email, because
this email goes to the mailing list.

Patrick



Fucang Jia wrote:
> Hi Patrick,
>  
> Thank you very much!
>  
> But I am not keep clicking on the same point. Would you like to share me 
> with
> a Win32 executable FourViewsTrackingWithCT app for me to have a test?
>   
> Thanks!
>  
> Fucang
>  
> ------------------------------------------------------------------------
> On 2006-06-18 06:10:51 Patrick Cheng
> Subject:    Re: [IGSTK-Users] Viewer Problem due to 
> TransformPhysicalPointToIndex
>  
> Hi  Fucang,
>  
> I  guess  the  problem  is  you  keep  clicking  on  the  same  point: 
>  The  first
> time  you  click  on  a  point,  vtk's  z  buffer  store  the  value, 
>  where  the
> ray  intersects  with  the  image  plane.  but  NOTICE  here,  we  put 
>  an  sphere
> on  that  clicking  point,  if  you  do  not  moving  the  mouse,  the 
>  second
> time  you  click  again,  it  actually  will  return  the  point  on 
>  the  sphere
> you  have  clicked.  that's  why  the  slice  is  still  jumping.  if 
>  you  move
> you  mouse  a  little  bit,  and  click  on  the  same  image  plane,  it
> shouldn't  have  an  jumping,  i  have  tested  here  without  any  problem.
>  
> By  default,  all  the  spatial  object  in  the  view  is  pickable  in 
>  IGSTK.
>  
> Patrick
>  
> Fucang  Jia  wrote:
>  >    
>  >  Hi  Patrick,
>  >    
>  >  I  found  that  another  vtk  dlls  exists  in  the  default  path, 
>  which  
>  >  cause  the  fltk  app  can  not  execute,  when
>  >  I  copy  the  compiled  vtk  dlls  into  the  path  of  fltk  app, 
>  which  works  well.
>  >    
>  >  But  on  the  slice  index  jumping  problem,  it  seems  that  it 
>  exists.  If  you  
>  >  launch  the  app
>  >  FourViewTrackingWithCT  compiled  in  debug  mode(  I  have  not 
>  tried  in  
>  >  release  mode),
>  >  and  load  dataset  IGSTK/Testing/Data/Input/E000192
>  >  then  let  left  mouse  click  on  the  sagittal  view  plane,  you 
>  will  see  that.  
>  >  I  first  change  the  sagittal
>  >  index  to  511,  then  click  once,  the  index  is  511,  then  I 
>  click  it  again,  
>  >  the  index  changes  to  510.
>  >  When  I  continue  click  left  mouse  on  it,  it  will  change  to 
>  509,  508,  ...  
>  >  When  it  change  to  464,  it
>  >  will  never  change.  When  I  change  the  sagittal  slice  to 
>  another  slice,  
>  >  then  click,  the  slice  changes
>  >  again.
>  >    
>  >  I  found  this  is  not  due  to  TransformPhysicalPointToIndex 
>  function,  but  
>  >  in  igstkView.cxx
>  >                          m_PointPicker- >GetPickPosition(  data  );
>  >  which  compute  z  buffer  depth  from  vtkOpenGLRenderWindow.cxx
>  >  int  vtkOpenGLRenderWindow::GetZbufferData(  int  x1,  int  y1,  int 
>  x2,  int  y2,
>  >                                                                       
>                  float*  z_data  )
>  >    glReadPixels(  x_low,  y_low,
>  >                                  width,  height,
>  >                                  GL_DEPTH_COMPONENT,  GL_FLOAT,
>  >                                  z_data  );
>  >    
>  >  I  add  a  line
>  >      std::cout < <"z_data  is  " < <*z_data < <std::endl;
>  >    
>  >  when  I  click  the  mouse  at  one  position,  the  z_data 
>  changes.  I  think  this  
>  >  may  be  the  cause.  But
>  >  I  can  not  figure  out  why  now.
>  >    
>  >  Thanks!
>  >    
>  >  Fucang
>  >    
>  >    
>  >  ------------------------------------------------------------------------
>  >  On  2006-06-15  22:55:33  Patrick  Cheng
>  >  Subject:        Re:  [IGSTK-Users]  Viewer  Problem  due  to  
>  >  TransformPhysicalPointToIndex
>  >    
>  >  Hi    Fucang,
>  >    
>  >  1.    You    should    update    both    IGSTK    and   
>  IGSTKSandbox    (bug    fix    is  
>  >    in    the
>  >  IGSTK,    I    have    also    changed    the    example    app   
>  in    IGSTKSandbox    to  
>  >    use    the
>  >  ContinuousIndex)
>  >    
>  >  2.    You    might    need    to    cmake    the    IGSTKSandbox   
>  again,    this    will  
>  >    take    the
>  >  latest    code    from    IGSTK    to    IGSTKSandbox    build   
>  directory,    and  
>  >    then    compile
>  >  the    IGSTKSandbox.    (You    have    to    run    the    cmake   
>  on    IGSTKSandbox  
>  >    again,
>  >  after    you    update    the    IGSTK)
>  >    
>  >  I    have    tested    this    on    the    same    platform   
>  here,    it    works    out  
>  >    fine    here.    If
>  >  you    still    have    problem    with    this.    Can    you    be 
>    more    specific    on  
>  >    the    error
>  >  and    difficulty    you    have    encountered?
>  >    
>  >  Patrick
>  >    
>  >  Fucang    Jia    wrote:
>  >     >    Hi    Patrick,
>  >     >        
>  >     >    Thank    you    for    your    rapid    reply.
>  >     >        
>  >     >    But    after    I    synchronized    with    CVS    version, 
>    I    found    that  
>  >    all    fltk    app    can    
>  >     >    not    run    (    this    app
>  >     >    is    compiled    in    debug    mode,    VC.Net2003   
>  fltk-1-1.7    or  
>  >    fltk-1.1.12-16-05).
>  >     >        
>  >     >    Then    I    switched    to    VC6    and    compiled    it. 
>    But    I    found    that  
>  >    jumping    problem    
>  >     >    still    exists.
>  >     >    and    m_CTImageObserver-   >GetCTImage()-   >IsInside(    p 
>    )    will  
>  >    incorrectly    
>  >     >    report    to    0    when
>  >     >    sagittal    slice    is    0,    so    it    will    report 
>    "Picked    point  
>  >    outside    image".
>  >     >        
>  >     >    Thanks    !
>  >     >        
>  >     >    Fucang
>  >     >        
>  >     >            
>  >     >   
>  ------------------------------------------------------------------------
>  >     >    On    2006-06-15    01:10:05    Patrick    Cheng
>  >     >    Subject:                Re:    [IGSTK-Users]    Viewer   
>  Problem    due    to    
>  >     >    TransformPhysicalPointToIndex
>  >     >        
>  >     >    Hi        Fucang,
>  >     >        
>  >     >    A        new       
>  TransformPhysicalPointToContinuousIndex(p,index)      
>  >    function        and        a
>  >     >    ContinuousIndexType        is        being        added     
>    to        the      
>  >    ImageSpatialObject's        API.
>  >     >        
>  >     >    Now        if        you        take        the        pick 
>        position        and        use      
>  >    the        continuous    
>  >     >        index        to
>  >     >    reslice        the        image,        it        will       
>  be        much        smoother      
>  >    and        won't        jump.
>  >     >        
>  >     >    Please        update        your        IGSTK        main   
>      and        Sandbox      
>  >    repository        code.
>  >     >        
>  >     >    Thank        you,
>  >     >        
>  >     >    Patrick
>  >     >        
>  >     >    Fucang        Jia        wrote:
>  >     >           >        Hi,        Patrick,
>  >     >           >                
>  >     >           >        There        is        a        problem     
>    due        to      
>  >    TransformPhysicalPointToIndex    
>  >     >        function,        which        
>  >     >           >        belongs        to        Bug#        738,
>  >     >           >        but        it        seems        that       
>  this        critial        bug        has  
>  >        not        been        fixed.
>  >     >           >                
>  >     >           >        When        I        load      
>  >    IGSTK\Sandbox-Release-8\Testing\Data\E000192,
>  >     >           >        press        the        left        mouse   
>      button        on        the      
>  >    sagittal        view        in        
>  >     >           >        FourViewsTrackingWithCT        app       
>  continuously,
>  >     >           >        then        the        index        changes 
>        little        bye        one,      
>  >    when        the        index        of    
>  >     >        sagittal        viewer        
>  >     >           >        was        changed        to        0,       
>  I        press        the
>  >     >           >        mouse        button        onto        the   
>      sagittal        image,        it      
>  >    says        "Picked        point    
>  >     >        outside        
>  >     >           >        image".        I        tracked        this 
>        bug,
>  >     >           >        and        found        that        it       
>  is        due        to        index      
>  >    round        up        problem.
>  >     >           >                
>  >     >           >        For        example,        the        origin 
>        is                -153.6640625,
>  >     >           >        the        spacing        is        0.671875
>  >     >           >        the        physical        coordinate       
>  is        16.3203
>  >     >           >        so        the        according        index 
>        is
>  >     >           >        (16.3203+153.6640625)/0.671875        =     
>    252.9999813953,
>  >     >           >        it        was        truncated        to     
>    252.
>  >     >           >                
>  >     >           >        Then        resliceImage        function     
>    will        change        the      
>  >    orthogonal        image    
>  >     >        slice.
>  >     >           >                
>  >     >           >        I        also        found        this       
>  behaviour        will        occur      
>  >    when        certain        DICOM    
>  >     >        dataset        is        
>  >     >           >        loaded.        When        I        load     
>    other        DICOM        dataset,
>  >     >           >        the        axial        and        coronal   
>      slice        will        have      
>  >    problem,        but        sagittal    
>  >     >        view        does        
>  >     >           >        not        change        when        mouse   
>      pressed.        It        is      
>  >    because
>  >     >           >        that        certain        origin        and 
>        spacing        parameters      
>  >    trigger        this        problem.
>  >     >           >                
>  >     >           >        Thanks!
>  >     >           >                
>  >     >           >        Fucang
>  >     >           >        
>  >     >           >        
>  >     >           >      
>  >   
>  ------------------------------------------------------------------------
>  >     >           >        
>  >     >           >        _______________________________________________
>  >     >           >        IGSTK-Users        mailing        list
>  >     >           >        IGSTK-Users at public.kitware.com
>  >     >           >       
>  http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users
>  >     >        
>  >    
>  
> --  
> Patrick  Cheng                                                           
>  Work  phone:  202-687-2902
> Software  Engineer                                                   
>  Work  fax:      202-784-3479
> Email:  cheng at isis.georgetown.edu
>  
> Imaging  Science  and  Information  Systems  (ISIS)  Center
> Department  of  Radiology,  Georgetown  University  Medical  Center
> 2115  Wisconsin  Avenue,  Suite  603,  Washington,  DC,  20007
>  

-- 
Patrick Cheng                              Work phone: 202-687-2902
Software Engineer                          Work fax:   202-784-3479
Email: cheng at isis.georgetown.edu

Imaging Science and Information Systems (ISIS) Center
Department of Radiology, Georgetown University Medical Center
2115 Wisconsin Avenue, Suite 603, Washington, DC, 20007



More information about the IGSTK-Users mailing list