Skip to content

Commit 98a4ef6

Browse files
committed
[bugfix] manual - binarise image
1 parent 4a80aa6 commit 98a4ef6

2 files changed

Lines changed: 21 additions & 7 deletions

File tree

CemrgApp/Modules/CemrgAppModule/include/CemrgAtrialTools.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ class MITKCEMRGAPPMODULE_EXPORT CemrgAtrialTools {
165165
ImFilterType::Pointer ImOpenFilter(ImageType::Pointer input, uint16_t radius);
166166
ShortImageType::Pointer Uint16ToShort(ImageType::Pointer im);
167167
mitk::Image::Pointer ImErode(ImageType::Pointer input, int vxls=3);
168+
void QuickBinarise(ImageType::Pointer imToBin);
168169
void SaveImageToDisk(ImageType::Pointer im, QString dir, QString imName);
169170
vtkSmartPointer<vtkConnectivityFilter> GetLabelConnectivity(mitk::Surface::Pointer externalSurface, double label, bool colourRegions=false);
170171

CemrgApp/Modules/CemrgAppModule/src/CemrgAtrialTools.cpp

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -213,16 +213,23 @@ ImageType::Pointer CemrgAtrialTools::RemoveNoiseFromAutomaticSegmentation(QStrin
213213
keepObjs->SetAttribute(LabelShapeKeepNObjImgFilterType::LabelObjectType::NUMBER_OF_PIXELS);
214214
keepObjs->Update();
215215

216-
return keepObjs->GetOutput();
217-
}
216+
ImageType::Pointer outIm = keepObjs->GetOutput();
217+
IteratorType imIter(outIm, outIm->GetLargestPossibleRegion());
218218

219-
ImageType::Pointer CemrgAtrialTools::CleanAutomaticSegmentation(QString dir, QString segName, QString cleanName){
220-
QString inputPath = dir + "/" + segName;
221-
ImageType::Pointer orgSegImage = LoadImage(inputPath);
222-
ImageType::Pointer atriumCoarse = RemoveNoiseFromAutomaticSegmentation(dir, segName);
219+
imIter.GoToBegin();
220+
while(!imIter.IsAtEnd()){
221+
float value = (imIter.Get() > 0) ? 1 : 0;
222+
imIter.Set(value);
223+
224+
++imIter;
225+
}
223226

227+
return outIm;
228+
}
229+
230+
void CemrgAtrialTools::QuickBinarise(ImageType::Pointer imToBin){
224231
// binarise to 1, 0
225-
IteratorType imIter(atriumCoarse, atriumCoarse->GetLargestPossibleRegion());
232+
IteratorType imIter(imToBin, imToBin->GetLargestPossibleRegion());
226233

227234
imIter.GoToBegin();
228235
while(!imIter.IsAtEnd()){
@@ -231,6 +238,12 @@ ImageType::Pointer CemrgAtrialTools::CleanAutomaticSegmentation(QString dir, QSt
231238

232239
++imIter;
233240
}
241+
}
242+
243+
ImageType::Pointer CemrgAtrialTools::CleanAutomaticSegmentation(QString dir, QString segName, QString cleanName){
244+
QString inputPath = dir + "/" + segName;
245+
ImageType::Pointer orgSegImage = LoadImage(inputPath);
246+
ImageType::Pointer atriumCoarse = RemoveNoiseFromAutomaticSegmentation(dir, segName);
234247

235248
if(!cleanName.isEmpty()){
236249
SaveImageToDisk(atriumCoarse, dir, cleanName);

0 commit comments

Comments
 (0)