44 if (imageVector.empty() ) { imageVector.push_back( mitk::Image::New()); }
47 Usgfw2Lib::tagImageResolution resolutionInMetersActual;
48 m_ImageProperties->GetResolution(&resolutionInMetersActual, 0);
49 if (m_OldnXPelsPerUnit != resolutionInMetersActual.nXPelsPerUnit || m_OldnYPelsPerUnit != resolutionInMetersActual.nYPelsPerUnit)
52 if (m_Image.IsNotNull() && m_Image->GetGeometry() !=
nullptr)
54 m_OldnXPelsPerUnit = resolutionInMetersActual.nXPelsPerUnit;
55 m_OldnYPelsPerUnit = resolutionInMetersActual.nYPelsPerUnit;
56 UpdateImageGeometry();
61 if ( m_Image->IsInitialized() )
66 imageVector.at(0)->Initialize(m_Image->GetPixelType(), m_Image->GetDimension(), m_Image->GetDimensions());
67 mitk::ImageReadAccessor inputReadAccessor(m_Image, m_Image->GetSliceData(0,0,0));
68 imageVector.at(0)->SetSlice(inputReadAccessor.GetData());
69 imageVector.at(0)->SetGeometry(m_Image->GetGeometry());
70 m_ImageMutex->unlock();
76 Usgfw2Lib::tagPixelsOrigin origin = Usgfw2Lib::tagPixelsOrigin();
77 Usgfw2Lib::tagImageResolution resolutionInMeters;
78 m_ImageProperties->GetResolution(&resolutionInMeters,0);
80 mitk::Vector3D spacing;
81 spacing[0] = ((double)1 / resolutionInMeters.nXPelsPerUnit) * 1000;
82 spacing[1] = ((double)1 / resolutionInMeters.nXPelsPerUnit) * 1000;
86 if(m_Image.IsNotNull() && (m_Image->GetGeometry()!=
nullptr))
88 m_Image->GetGeometry()->SetSpacing(spacing);
89 m_Image->GetGeometry()->Modified();
92 {MITK_WARN <<
"image or geometry was nullptr, can't adapt geometry";}
93 m_ImageMutex->unlock();
95 MITK_DEBUG <<
"UpdateImageGeometry called!";
96 MITK_DEBUG <<
"depth: " << m_DepthProperties->GetCurrent();
97 MITK_DEBUG <<
"new spacing: " << spacing;
102 IUnknown* tmp_obj =
nullptr;
107 MITK_ERROR(
"USImageSource")(
"USTelemedImageSource") <<
"Could not create scan converter plugin.";
112 if ( ! m_PluginCallback )
117 m_PluginCallback->SetOutputImage(m_Image.GetPointer(), m_ImageMutex);
123 m_PluginCallback->SetScanConverterPlugin(0);
128 m_Plugin = (Usgfw2Lib::IUsgScanConverterPlugin*)tmp_obj;
129 m_PluginCallback->SetScanConverterPlugin(m_Plugin);
132 m_UsgDataView = usgDataView;
135 if (!m_DepthProperties) {
CREATE_TelemedControl(m_DepthProperties, m_UsgDataView, Usgfw2Lib::IID_IUsgDepth, Usgfw2Lib::IUsgDepth, Usgfw2Lib::SCAN_MODE_B);}
136 if (!m_ImageProperties) {
CREATE_TelemedControl(m_ImageProperties, m_UsgDataView, Usgfw2Lib::IID_IUsgImageProperties, Usgfw2Lib::IUsgImageProperties, Usgfw2Lib::SCAN_MODE_B);}