訪問itk :: LabelObject的像素列表時遇到問題。 使用itk :: OrientedBoundingBoxLabelObject(https://github.com/blowekamp/itkOBBLabelMap)獲得此LabelObject。原始的3D圖像是一個CBCT Dicom,我正在尋找一個小矩形標記的位置和方向。ITK從itk獲取像素列表:: LabelObject
這是導致獲取代碼ITK :: LabelObject:
typedef short LabelPixelType;
typedef itk::LabelMap<LabelObjectType> LabelMapType;
typedef itk::OrientedBoundingBoxLabelMapFilter<LabelMapType> OBBLabelMapFilter;
typename OBBLabelMapFilter::Pointer toOBBLabelMap = OBBLabelMapFilter::New();
typename ToLabelMapFilterType::Pointer toLabelMap = ToLabelMapFilterType::New();
toOBBLabelMap->SetInput(toLabelMap->GetOutput());
toOBBLabelMap->Update();
LabelObjectType* labelObject = toOBBLabelMap->GetOutput()->GetNthLabelObject(idx);
OBBSize = labelObject->GetOrientedBoundingBoxSize();
我猜訪問像素座標是可能的,因爲它要訪問的某種方式,以計算邊界框,但到目前爲止我還沒有做到這一點。然後我嘗試將itk :: LabelMap(或LabelObject直接)轉換爲二進制圖像,我可以更輕鬆地獲取像素。並用VTK轉換並顯示這個markerBinaryImage,而沒有更多的結果(我得到一個黑色的圖像)。
typedef itk::LabelMapToBinaryImageFilter<LabelMapType, ImageType> LabelMapToBinaryImageFilterType;
LabelMapToBinaryImageFilterType::Pointer labelImageConverter = LabelMapToBinaryImageFilterType::New();
labelImageConverter->SetInput(toLabelMap->GetOutput());
labelImageConverter->Update();
ImageType::Pointer markerBinaryImage = labelImageConverter->GetOutput();
有沒有人有關於如何到這個像素列表的想法?
謝謝你,我設法得到這個像素列表,感謝您的建議。我不直接使用region屬性的原因是它只給出了一個軸對齊的邊界框,我需要一個定向的邊界框。這個OBB過濾器雖然運行良好。 –
是的。 :)歡迎來到AABB問題俱樂部!很高興工作! –