How to Highlight the specified area on the slices obtained by VTKImageReslices

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

How to Highlight the specified area on the slices obtained by VTKImageReslices

WtDMaO
Actually, I consider this matter as a problem of coordinate transformation.
What I want is to highlight the specified area like lesion on the CT.

 This is easy to achieve while the CT is normal like this
<http://vtk.1045678.n5.nabble.com/file/t342766/1P%401%4046%24T__%40HL%7D%25T%25UUYSL.png>

            SetElement(0, 0, _resliceMatrix, 1);
            SetElement(0, 1, _resliceMatrix, 0);
            SetElement(0, 2, _resliceMatrix, 0);

            SetElement(1, 0, _resliceMatrix, 0);
            SetElement(1, 1, _resliceMatrix, 1);
            SetElement(1, 2, _resliceMatrix, 0);

            SetElement(2, 0, _resliceMatrix, 0);
            SetElement(2, 1, _resliceMatrix, 0);
            SetElement(2, 2, _resliceMatrix, 1);

            SetElement(3, 0, _resliceMatrix, 44);
            SetElement(3, 1, _resliceMatrix, 143);
            SetElement(3, 2, _resliceMatrix, 81);
            SetElement(3, 3, _resliceMatrix, 1);

However I have to use vtkimagereslice to get some special effect like this,
so I changed the direction of three axis like below
<http://vtk.1045678.n5.nabble.com/file/t342766/Z%28%7E%5DJ%5D%5DH%24_Y69HQZ9XAY7%5B2.png>

            SetElement(0, 0, _resliceMatrix, 16 / Math.Sqrt(378));
            SetElement(0, 1, _resliceMatrix, -11 / Math.Sqrt(378));
            SetElement(0, 2, _resliceMatrix, -1 / Math.Sqrt(378));

            SetElement(1, 0, _resliceMatrix, -2 / Math.Sqrt(14));
            SetElement(1, 1, _resliceMatrix, -3 / Math.Sqrt(14));
            SetElement(1, 2, _resliceMatrix, 1 / Math.Sqrt(14));

            SetElement(2, 0, _resliceMatrix, 1 / Math.Sqrt(27));
            SetElement(2, 1, _resliceMatrix, 1 / Math.Sqrt(27));
            SetElement(2, 2, _resliceMatrix, 5 / Math.Sqrt(27));

            SetElement(3, 0, _resliceMatrix, 44);
            SetElement(3, 1, _resliceMatrix, 143);
            SetElement(3, 2, _resliceMatrix, 81);
            SetElement(3, 3, _resliceMatrix, 1);

So the key problem is that I have known the position (x,y,z) of lesion, How
can I get the lesion position in the picture after the rotation and
translation by VTKImageReslice. I have tried to use the _resliceMatrix but
it doesn't work, the new point(x',y',z') I got is wrong .

            vtkImageData resliced = imageReslice.GetOutput();
            _Image = ImageData2Bitmap(resliced, 1600, -400);

And I've got another situation, after the code above, I found the position I
need acctually is the Drawing Coordinate System.
<http://vtk.1045678.n5.nabble.com/file/t342766/Z%28%7E%5DJ%5D%5DH%24_Y69HQZ9XAY7%5B2.png>

If I highlight the position (0,0), it will highlight the left corner of the
image.

This has bothered me for one week, any help will be appreciated !!




--
Sent from: http://vtk.1045678.n5.nabble.com/VTK-Users-f1224199.html
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ

Search the list archives at: http://markmail.org/search/?q=vtkusers

Follow this link to subscribe/unsubscribe:
https://vtk.org/mailman/listinfo/vtkusers