<div dir="ltr"><div>Hi,</div><div>I am trying to find the value of a label at particular point in the image. The pickedPoint gives me the x,y,z co-ordinate where I should pick the value. How do I find the image value at that voxel? Since it is a label image I want to use nearest neighbor interpolation. Can anyone give me pointers of how to get the label value?</div>
<div><br></div><div><br></div> vtkRenderWindowInteractor* iren = vtkRenderWindowInteractor::SafeDownCast(obj);<br><br> iren->SetPicker(picker);<br><br> // get event position<br> int event_pos[2];<br> iren->GetEventPosition(event_pos);<br>
<br> // update label<br> QString str;<br><br>iren->GetPicker()->Pick(iren->GetEventPosition()[0], iren->GetEventPosition()[1], 0, iren->GetRenderWindow()->GetRenderers()->GetFirstRenderer());<br>
double pickedPoint[3];<br> iren->GetPicker()->GetPickPosition(pickedPoint);<br>
<br> vtkSmartPointer<vtkImageCast> imageCast = vtkSmartPointer<vtkImageCast>::New();<br> vtkSmartPointer<vtkImageData> atlasLabelImageData = vtkSmartPointer<vtkImageData>::New();<br><br>
imageCast->SetInput(atlasLabelsReader->GetOutput());<br> imageCast->SetOutputScalarTypeToUnsignedShort();<br> imageCast->Update();<br> atlasLabelImageData = imageCast->GetOutput();<br> unsigned long labelCellID = (unsigned short) atlasLabelImageData->FindPoint(pickedPoint);<br>
<br> str.sprintf("(x, y, z) = (%3.2f, %3.2f, %3.2f), Label Value = %f", pickedPoint[0], pickedPoint[1], pickedPoint[2], labelCellID);<br clear="all">
<div><br></div>-- <br>Thanks,<br>Kannan
</div>