[vtkusers] Turning off/on voxels at the intersection of two vtkimagedata

Andras Lasso lasso at queensu.ca
Wed Jan 9 16:00:57 EST 2019


There are many options. One of them is to create a “tool” image once and transformation and resample it using vtkImageResample. You do not use vktTransformFilter at all. As far as I remember, vtkImageResample has some padding options but if they are not sufficient then you can use vtkImagePadFilter to make images larger (while keeping their current content).

Andras

From: shadab anwar <sk.shadabanwar at gmail.com>
Sent: Wednesday, January 9, 2019 3:50 PM
To: Andras Lasso <lasso at queensu.ca>
Cc: vtkusers at public.kitware.com; vtkusers at vtk.org
Subject: Re: [vtkusers] Turning off/on voxels at the intersection of two vtkimagedata

Hey Andras,
Thank You for the quick reply!

My application is based on CAD and Machining Dynamics.
Also I would like to know the process for translating the vtkimagedata so that I can see the tool moving visually to the next position. I have tried vtkimagereslice and vtktransformfilter. The problem with vtkimagereslice is that if I rotate the model I get a truncated solid. When I use vtktransformfilter I get the output as vtkstructuredgrid instead of vtkimagedata.
I'll be happy if you can show me a direction such that I will be able to translate, rotate my imagedata (not the actor).

Just to let you know I am using C++.

Thanks,
Shadab




On Wed, 9 Jan 2019 at 3:10 PM, Andras Lasso <lasso at queensu.ca<mailto:lasso at queensu.ca>> wrote:
You can do the single step of blanking out an image data with another by resampling the two images in the same coordinate system and use vtkImageMask or vtkImageMath to combine them.

If you wanted to simulate medical procedures (bone removal, etc.) note that a full suite of tools are available for this in 3D Slicer application (www.slicer.org<https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.slicer.org&data=02%7C01%7Classo%40queensu.ca%7C34d4e3a05605452a3cbd08d676741060%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636826638198219183&sdata=22WOsuxOn68qCDkKl0S599FCQI0FbAIfva7MX%2BWX%2B04%3D&reserved=0>) and its many extensions. They are based on VTK and fully customizable or extensible in Python and C++. You can connect to almost any position tracker device (it can be a simple webcam that tracks 2D barcodes, or a commercial surgical navigation system) using SlicerIGT extension (www.slicerigt.org<https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.slicerigt.org&data=02%7C01%7Classo%40queensu.ca%7C34d4e3a05605452a3cbd08d676741060%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636826638198229192&sdata=yLoA3NdS4V7x3nse94ZcPiRrDzcddqVNTgbqVyr1Aq4%3D&reserved=0>) to get tool position in real-time. To remove tissue probably the simplest is to import the tool model as a segment and apply “volume masking” segment editor effect. You can even compute skill assessment metrics using PerkTutor extension (www.perktutor.org<https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.perktutor.org&data=02%7C01%7Classo%40queensu.ca%7C34d4e3a05605452a3cbd08d676741060%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636826638198229192&sdata=0Oke83jFNbGmPgfR5O%2FVrcTBhXmV28b5hLQcPG98mDs%3D&reserved=0>). All the programming that you need to do is writing 20-30 lines of Python code to trigger volume masking automatically when the tool position is changed. If you have any questions you can post it to https://discourse.slicer.org<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdiscourse.slicer.org&data=02%7C01%7Classo%40queensu.ca%7C34d4e3a05605452a3cbd08d676741060%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636826638198239197&sdata=FPNmCZUVhRaqdqJG%2F7ZX6GTk9WXK2MU0npEWlSf2hi8%3D&reserved=0>.

Andras

From: vtkusers <vtkusers-bounces at vtk.org<mailto:vtkusers-bounces at vtk.org>> On Behalf Of shadab anwar
Sent: Wednesday, January 9, 2019 2:31 PM
To: vtkusers at public.kitware.com<mailto:vtkusers at public.kitware.com>; vtkusers at vtk.org<mailto:vtkusers at vtk.org>
Subject: [vtkusers] Turning off/on voxels at the intersection of two vtkimagedata

Hi everyone,

I am working on a problem consisting of two vtkimagedata, where the first vtkimagedata represents workpiece (3D block) and other vtkimagedata represents  tool (cylindrical) in my application.
I want to turn off the voxels at the intersection of these two imagedata after that  I want to translate the tool to a next position and repeat the same thing.

I have tried few methods but no sucess! I'll be really grateful if you can help me with the easiest method to do so or at least show me direction to go.

Thanks,
Shadab
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://vtk.org/pipermail/vtkusers/attachments/20190109/e35e7d69/attachment-0001.html>


More information about the vtkusers mailing list