Skip to content

Commit 925f51d

Browse files
authored
Merge pull request #2 from CemrgDevelopers/feature/plugin/atrialfibres
Feature/plugin/atrialfibres
2 parents 3c6976d + 3b6bdba commit 925f51d

7 files changed

Lines changed: 32 additions & 18 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/include/CemrgCommandLine.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ class MITKCEMRGAPPMODULE_EXPORT CemrgCommandLine: public QObject {
9797
inline void SetDockerImage(QString dockerimage) {_dockerimage = dockerimage;};
9898
inline QString GetDockerImage() {return _dockerimage;};
9999
inline void SetDockerImageOpenCarp(){_dockerimage = "docker.opencarp.org/opencarp/opencarp:latest";};
100-
inline void SetDockerImageUac(){_dockerimage = "cemrg/uac:v1.1";};// modify when docker image has been pushed to hub
100+
inline void SetDockerImageUac(){_dockerimage = "cemrg/uac:latest";};// modify when docker image has been pushed to hub
101101
QStringList GetDockerArguments(QString volume, QString dockerexe = "");
102102
QStringList GetOpenCarpDockerDefaultArguments(QString volume);
103103

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);

CemrgApp/Plugins/kcl.cemrgapp.atrialfibres/src/internal/AtrialFibresView.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1185,7 +1185,7 @@ void AtrialFibresView::UacCalculationRough(){
11851185
outputFiles << "LSbc1.vtx" << "LSbc2.vtx";
11861186
outputFiles << "PAbc1.vtx" << "PAbc2.vtx";
11871187

1188-
if (!IsUacOutputCorrect(directory, outputFiles)){
1188+
if (!IsOutputFileCorrect(directory, outputFiles)){
11891189
MITK_INFO << "TIMELOG|UacCalculation_Stage1| End (FAIL)";
11901190
return;
11911191
}
@@ -1203,7 +1203,7 @@ void AtrialFibresView::UacCalculationRough(){
12031203
paLapSolve = cmd->OpenCarpDocker(directory, pa_par, "PA_UAC_N2");
12041204
MITK_INFO << "TIMELOG|UacCalculation_Stage1| openCARP end";
12051205

1206-
bool uacOutputSuccess = IsUacOutputCorrect(directory, outputFiles);
1206+
bool uacOutputSuccess = IsOutputFileCorrect(directory, outputFiles);
12071207
MITK_ERROR(!uacOutputSuccess) << ("Problem with " + uaccmd).toStdString();
12081208
std::string msg = "UAC Calculation - Stage 1 ";
12091209
msg += (uacOutputSuccess) ? "successful" : "failed";
@@ -1271,7 +1271,7 @@ void AtrialFibresView::UacCalculationRefined(){
12711271
uacOutput = cmd->DockerUniversalAtrialCoordinates(directory, uaccmd, fibreAtlas, uacMeshName, uiLabels, path2landmarks);
12721272
MITK_INFO << "TIMELOG|UacCalculation_Stage2| UAC 2.1 - End";
12731273

1274-
if (!IsUacOutputCorrect(directory, outputFiles)){
1274+
if (!IsOutputFileCorrect(directory, outputFiles)){
12751275
MITK_INFO << "TIMELOG|UacCalculation_Stage2| End (FAILED)";
12761276
return;
12771277
}
@@ -1308,7 +1308,7 @@ void AtrialFibresView::UacCalculationRefined(){
13081308
uacOutput = cmd->DockerUniversalAtrialCoordinates(directory, uaccmd, fibreAtlas, uacMeshName, uiLabels, "");
13091309
MITK_INFO << "TIMELOG|UacCalculation_Stage2| UAC 2.2 - End";
13101310

1311-
bool uacOutputSuccess = IsUacOutputCorrect(directory, outputFiles);
1311+
bool uacOutputSuccess = IsOutputFileCorrect(directory, outputFiles);
13121312
MITK_ERROR(!uacOutputSuccess) << ("Problem with " + uaccmd).toStdString();
13131313
std::string msg = "UAC Calculation - Stage 2 ";
13141314
msg += (uacOutputSuccess) ? "successful" : "failed";
@@ -1355,7 +1355,7 @@ void AtrialFibresView::UacFibreMapping(){
13551355
outputFiles << "Labelled_Coords_2D_Rescaling_v3_C.vtk";
13561356
outputFiles << "Labelled_Coords_2D_Rescaling_v3_C.elem";
13571357
outputFiles << "Labelled_Coords_2D_Rescaling_v3_C.pts";
1358-
if (!IsUacOutputCorrect(directory, outputFiles)) return;
1358+
if (!IsOutputFileCorrect(directory, outputFiles)) return;
13591359

13601360
std::cout << "[uac_fibreField]" << uac_fibreField.toStdString() << '\n';
13611361
std::cout << "[output]" << uac_fibreFieldOutputName.toStdString() << '\n';
@@ -1479,7 +1479,7 @@ void AtrialFibresView::UacCalculationVerifyLabels(){
14791479
MITK_INFO << "TIMELOG|VerifyLabels| End";
14801480
}
14811481

1482-
bool AtrialFibresView::IsUacOutputCorrect(QString dir, QStringList filenames){
1482+
bool AtrialFibresView::IsOutputFileCorrect(QString dir, QStringList filenames){
14831483
bool success = true;
14841484
bool okSingleTest;
14851485
int countfails = 0;
@@ -2295,7 +2295,7 @@ QString AtrialFibresView::UserIncludeLgeAnalysis(QString segPath, ImageType::Poi
22952295

22962296
void AtrialFibresView::SetLgeAnalysis(bool b){
22972297
analysisOnLge = b;
2298-
m_Controls.button_z_scar->setEnabled(b);
2298+
// m_Controls.button_z_scar->setEnabled(b);
22992299
}
23002300

23012301
void AtrialFibresView::CheckLoadedMeshQuality(){

CemrgApp/Plugins/kcl.cemrgapp.atrialfibres/src/internal/AtrialFibresView.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ class AtrialFibresView : public QmitkAbstractView {
110110
inline std::string StdStringPath(QString fnameExt=""){return (Path(fnameExt).toStdString());};
111111

112112
QString LandmarkFilesCreated(QString defaultName, QString type);
113-
bool IsUacOutputCorrect(QString dir, QStringList filenames);
113+
bool IsOutputFileCorrect(QString dir, QStringList filenames);
114114

115115
protected slots:
116116

CemrgApp/Plugins/kcl.cemrgapp.atrialfibres/src/internal/AtrialFibresViewControls.ui

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<string notr="true">QLabel { color: rgb(255, 0, 0) }</string>
2727
</property>
2828
<property name="text">
29-
<string>Atrial Fibress Pipeline</string>
29+
<string>Atrial Fibres Pipeline</string>
3030
</property>
3131
<property name="alignment">
3232
<set>Qt::AlignCenter</set>

CemrgApp/Plugins/kcl.cemrgapp.mainapp/src/internal/QmitkCemrgAppCommonTools.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ void QmitkCemrgAppCommonTools::BinariseImage(){
301301
}
302302

303303
QFileInfo fi(pathToImage);
304-
QString outPath = fi.absolutePath() + "/" + fi.baseName() + "-bin" + fi.suffix();
304+
QString outPath = fi.absolutePath() + "/" + fi.baseName() + "-bin." + fi.suffix();
305305

306306
mitk::Image::Pointer im = mitk::IOUtil::Load<mitk::Image>(pathToImage.toStdString());
307307
mitk::Image::Pointer outIm = CemrgCommonUtils::ReturnBinarised(im);

0 commit comments

Comments
 (0)