[IGSTK-Users] Viewer Problem due to TransformPhysicalPointToIndex

Fucang Jia jiafucang at asisz.com
Sun Jun 18 20:34:05 EDT 2006


Hi Patrick,

I synchronized the IGSTK and Sandbox cvs and recompiled it from scratch. 
The DrawPickedPoint is using continuous index now.

But I can reproduce the problem with the executable you sent me. I just sent 
you an animation  to picture this problem.

Thanks a lot!

Fucang




On 2006-06-19 02:50:55 Patrick Cheng
Subject:    Re: [IGSTK-Users] Viewer Problem due to TransformPhysicalPointToIndex

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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/igstk-users/attachments/20060619/78bc806d/attachment-0001.html>


More information about the IGSTK-Users mailing list