Dear Alfred,
thanks for your reply.
We tried also with a "custom" transform created ad-hoc
[...]
vtkTransform *transform = vtkTransform::New();
transform->SetInput(transfActual);
transform->RotateZ(-90);
transform->Translate(55,0,0);
TelemedTransf->GetData()->GetGeometry()->SetIndexToWorldTransformByVtkMatrix(transform->GetMatrix());
m_DataStorage->Add(TelemedTransform);
[...]
image3d->GetGeometry()->SetIndexToWorldTransformByVtkMatrix(TelemedTransform->GetVtkTransform()->GetMatrix());
std::cout<<"1 -----TelemedTransform---------" <<std::endl;
for (int i=0; i<4; i++){
for (int j=0; j<4; j++){
std::cout <<
TelemedTransform->GetVtkTransform()->GetMatrix()->GetElement(i,j)<< " ";
}
std::cout<< std::endl;
}
std::cout<<" 3 -----image3d---------" <<std::endl;
for (int i=0; i<4; i++){
for (int j=0; j<4; j++){
std::cout <<
image3d->GetGeometry()->GetVtkTransform()->GetMatrix()->GetElement(i,j)<< " ";
}
std::cout<< std::endl;
}
----------------------------------------------------------------------------
The prints are exactly the same .
But as we said in the first email if the image comes from the device the
transform is not applied but loaded with the API it works.
Thanks
Andrea
________________________________
From: Alfred Franz <[email protected]>
Sent: Wednesday, July 6, 2022 7:56 AM
To: Andrea Roberti <[email protected]>; [email protected]
<[email protected]>
Cc: Chiara Tenga <[email protected]>
Subject: Re: [mitk-users] Apply a transform to US Image
Dear Andrea,
did you check if the transform was correctly written to "TelemedTransform"? I
don't know the code you are using to communicate with the device, but I would
check this first.
If you are using the MITK classes for the Telemed device
(Modules\US\USHardwareTelemed), there is a known issue that the image is not
updated properly (see https://phabricator.mitk.org/T29131).
Best,
Alfred
Am 05.07.2022 um 10:14 schrieb Andrea Roberti:
Hello everyone,
We would like to apply a transform to an image received in real time from an
Ultrasound machine that is a 2D Image.
We can apply the same transform to a .nrrd image (saved offline) and we can see
that the transform was applied correctly on the image.
This is the piece of code we are using:
[.........]
mitk::Convert2Dto3DImageFilter::Pointer multiFilter2 =
mitk::Convert2Dto3DImageFilter::New();
mitk::Image::Pointer image2d =
dynamic_cast<mitk::Image* >(m_Node.at(i)->GetData());
multiFilter2->SetInput(image2d);
multiFilter2->Update();
mitk::Image::Pointer image3d;
image3d = multiFilter2->GetOutput();
TelemedTransform->GetVtkTransform()->Update();
image3d->GetGeometry()->SetIndexToWorldTransformByVtkMatrix(TelemedTransform->GetVtkTransform()->GetMatrix());
[.........]
If the input is given from the US machine the variable "image2d" is like the
code we shared and the transform is not applied.
Otherwise we use the Load method from mitk::IOUtil and it works.
What could be the problem?
Thanks in advance,
Andrea
_______________________________________________
mitk-users mailing list
[email protected]<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/mitk-users
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users