Re: [vmtk-users] VMTK Point co-ordinates system
Brought to you by:
davidsteinman,
lucantiga
From: Ahmed H. <ahm...@gm...> - 2013-02-23 05:43:28
|
Dear Luca I managed to solve my problem. I don't want to wast your time responding. I converted the point co-ordinates from RAS to IJK. Also I wasn't passing the point correctly. Now it is working great. Thanks int VMTKseed1[3],VMTKseed2[3]; // fill it with points in IJK coordinates vtkIdList *my_VTKseedIdList1=vtkIdList::New(); vtkIdList *my_VTKseedIdList2=vtkIdList::New(); vtkIdType pttyp1,pttyp2; pttyp1=myVTKspeedImage->ComputePointId(VMTKseed1); pttyp2=myVTKspeedImage->ComputePointId(VMTKseed2); /**************/ my_VTKseedIdList1->InsertNextId(pttyp1); my_VTKseedIdList2->InsertNextId(pttyp2); vtkvmtkCollidingFrontsImageFilter *myVMTKcollidingFronts = vtkvmtkCollidingFrontsImageFilter::New(); myVMTKcollidingFronts->SetInput(myVTKspeedImage); myVMTKcollidingFronts->SetSeeds1(my_VTKseedIdList1); myVMTKcollidingFronts->SetSeeds2(my_VTKseedIdList2); myVMTKcollidingFronts->ApplyConnectivityOn(); myVMTKcollidingFronts->StopOnTargetsOn(); myVMTKcollidingFronts->Update(); Ahmed A. Harouni On Thu, Feb 21, 2013 at 12:30 PM, Ahmed Harouni <ahm...@gm...>wrote: > Dear Luca > > Thanks for your previous help. I have managed to use > vtkvmtkVesselnessMeasureImageFilter class and am displaying the > results successfully to Osirix output. Now I trying to use > vtkvmtkCollidingFrontsImageFilter. I am following the pythons scripts and > getting the expected results. > I can't determine ow to pass the two seed points to the > vtkvmtkCollidingFrontsImageFilter class using the SetSeeds1. I think I am > using the wrong co-ordinate system. I capture the ROI from Osirix which is > given to me in RAS system in mm. My understanding that VMTK uses IJK system > but it already has the origin and spacing values in the vtkImageData. > Should I convert my point coordinate manually using matrix transformation > or am I missing something? (Bellow is my code for > vtkvmtkCollidingFrontsImageFilter) > > Thanks for your help. > > > vtkIdList *my_VTKseedIdList1=vtkIdList::New(); > vtkIdList *my_VTKseedIdList2=vtkIdList::New(); > // vtkSmartPointer<vtkPoints> point11 > =vtkSmartPointer<vtkPoints>::New(); > vtkPoints *point11 =vtkPoints::New(); > vtkPoints *points22=vtkPoints::New(); > vtkIdType pttyp1,pttyp2; > > > pttyp1=point11->InsertNextPoint(5,5,5);//(15.3,110.8,946.2);//{0,90,922};//{283,242,251};// > {18.5,-148.0,115}; > pttyp2=points22->InsertNextPoint(15,15,15);//(-10.8,95.8,931);// > {80,146,951};//{ 338,276, 218};//{44.0, -155.0, 110.5}; > my_VTKseedIdList1->InsertNextId(pttyp1); > my_VTKseedIdList2->InsertNextId(pttyp2); > > vtkvmtkCollidingFrontsImageFilter *myVMTKcollidingFronts = > vtkvmtkCollidingFrontsImageFilter::New(); > myVMTKcollidingFronts->SetInput(myVTKspeedImage); > //myVTKspeedImage is: vtkImageData * myVTKspeedImage and I call it's > update function and I see the expected results when displaying it. > myVMTKcollidingFronts->SetSeeds1(my_VTKseedIdList1); > myVMTKcollidingFronts->SetSeeds2(my_VTKseedIdList2); > myVMTKcollidingFronts->ApplyConnectivityOn(); > myVMTKcollidingFronts->StopOnTargetsOn(); > myVMTKcollidingFronts->Update(); // I get an empty image ! > > > Ahmed A. Harouni > |