From f6b89d782ef742d6585b461ee68ea03070a4d1b1 Mon Sep 17 00:00:00 2001 From: Eduardo DAVILA Date: Wed, 15 May 2013 15:17:30 +0200 Subject: [PATCH 1/1] Feature #2010 Save image in registration3D1P Feature #2011 Save Matrix 4x4 in Registration3D1P --- .../bbs/appli/ExampleRecalage3D1Point.bbg | 81 +++++++++++-------- .../bbs/appli/ExampleRecalage3D1Point.bbs | 43 +++++----- .../src/bbPackRecalageReSlicerBox.cxx | 22 +++++ 3 files changed, 88 insertions(+), 58 deletions(-) diff --git a/PackRecalage/bbs/appli/ExampleRecalage3D1Point.bbg b/PackRecalage/bbs/appli/ExampleRecalage3D1Point.bbg index 560d7b3..ad8b3ef 100644 --- a/PackRecalage/bbs/appli/ExampleRecalage3D1Point.bbg +++ b/PackRecalage/bbs/appli/ExampleRecalage3D1Point.bbg @@ -1,29 +1,6 @@ -# --------------------------------------------------------------------- -# -# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image -# pour la Santé) -# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton -# -# This software is governed by the CeCILL-B license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL-B -# license as circulated by CEA, CNRS and INRIA at the following URL -# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html -# or in the file LICENSE.txt. -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL-B license and that you accept its terms. -# ------------------------------------------------------------------------ - # ---------------------------------- # - BBTKGEditor v 1.4 BBG BlackBox Diagram file -# - /Users/davila/Creatis/All5/creatools_source/creaRigidRegistration/PackRecalage/bbs/appli/ExampleRecalage3D1Point.bbg +# - /home/davila/Creatis/All/creatools_source/creaRigidRegistration/PackRecalage/bbs/appli/ExampleRecalage3D1Point.bbg # ---------------------------------- APP_START @@ -32,7 +9,7 @@ DESCRIPTION:Recalage3D 1-point AUTHOR:info-dev@creatis.insa-lyon.fr COMPLEXBOX:FALSE COMPLEXINPUTS:0 -BOXES:36 +BOXES:39 BOX creaMaracasVisu:ViewerNV:viewer ISEXEC:FALSE @@ -44,8 +21,8 @@ FIN_BOX BOX creaMaracasVisu:ViewerNV:viewer2 ISEXEC:FALSE --47.024134:-12.908709:-900.000000 -13.615866:-22.908709:-900.000000 +-45.086058:-20.661012:-900.000000 +15.553942:-30.661012:-900.000000 PORT nTypeView:"5" FIN_BOX @@ -184,8 +161,8 @@ FIN_BOX BOX wx:LayoutLine:toolsLayout ISEXEC:FALSE --270.366796:-208.839533:-900.000000 --212.806796:-218.839533:-900.000000 +-280.858190:-208.062393:-900.000000 +-223.298190:-218.062393:-900.000000 PORT Orientation:"v" PORT @@ -290,14 +267,14 @@ FIN_BOX BOX wx:LayoutTab:Box32 ISEXEC:FALSE --168.261119:-240.028813:-900.000000 --110.701119:-250.028813:-900.000000 +-239.056959:-330.032399:-900.000000 +-181.496959:-340.032399:-900.000000 FIN_BOX BOX wx:LayoutLine:Box33 ISEXEC:FALSE --207.303357:-208.910096:-900.000000 --149.743357:-218.910096:-900.000000 +-210.800488:-207.744386:-900.000000 +-153.240488:-217.744386:-900.000000 PORT WinTitle:"Scale" FIN_BOX @@ -339,7 +316,31 @@ ISEXEC:FALSE 71.124395:-366.016312:-900.000000 128.684395:-376.016312:-900.000000 FIN_BOX -CONNECTIONS:62 +BOX +wx:LayoutLine:Box40 +ISEXEC:FALSE +-136.798660:-280.761253:-900.000000 +-79.238660:-290.761253:-900.000000 +PORT +WinTitle:"Save" +FIN_BOX +BOX +toolsbbtk:SaveMHD-Button:Box41 +ISEXEC:FALSE +-142.015270:-262.292236:-900.000000 +-96.440270:-272.292236:-900.000000 +FIN_BOX +BOX +wx:CommandButton:Box42 +ISEXEC:FALSE +-114.705724:-249.870670:-900.000000 +-69.130724:-259.870670:-900.000000 +PORT +Label:"Same Matrix" +PORT +WinTitle:"Same Matrix" +FIN_BOX +CONNECTIONS:66 CONNECTION viewer2:Point:transform:CenterPoint NumberOfControlPoints:0 @@ -526,4 +527,16 @@ NumberOfControlPoints:0 CONNECTION reslicer:Out:Box31:In NumberOfControlPoints:0 +CONNECTION +Box40:Widget:Box32:Widget4 +NumberOfControlPoints:0 +CONNECTION +Box41:Widget:Box40:Widget1 +NumberOfControlPoints:0 +CONNECTION +Box42:Widget:Box40:Widget2 +NumberOfControlPoints:0 +CONNECTION +reslicer:Out:Box41:In +NumberOfControlPoints:0 APP_END diff --git a/PackRecalage/bbs/appli/ExampleRecalage3D1Point.bbs b/PackRecalage/bbs/appli/ExampleRecalage3D1Point.bbs index bd46847..21fae96 100644 --- a/PackRecalage/bbs/appli/ExampleRecalage3D1Point.bbs +++ b/PackRecalage/bbs/appli/ExampleRecalage3D1Point.bbs @@ -1,29 +1,6 @@ -# --------------------------------------------------------------------- -# -# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image -# pour la Santé) -# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton -# -# This software is governed by the CeCILL-B license under French law and -# abiding by the rules of distribution of free software. You can use, -# modify and/ or redistribute the software under the terms of the CeCILL-B -# license as circulated by CEA, CNRS and INRIA at the following URL -# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html -# or in the file LICENSE.txt. -# -# As a counterpart to the access to the source code and rights to copy, -# modify and redistribute granted by the license, users are provided only -# with a limited warranty and the software's author, the holder of the -# economic rights, and the successive licensors have only limited -# liability. -# -# The fact that you are presently reading this means that you have had -# knowledge of the CeCILL-B license and that you accept its terms. -# ------------------------------------------------------------------------ - # ---------------------------------- # - BBTKGEditor v 1.4 BBS BlackBox Script -# - /Users/davila/Creatis/All5/creatools_source/creaRigidRegistration/PackRecalage/bbs/appli/ExampleRecalage3D1Point.bbs +# - /home/davila/Creatis/All/creatools_source/creaRigidRegistration/PackRecalage/bbs/appli/ExampleRecalage3D1Point.bbs # ---------------------------------- # BBTK GEditor Script @@ -38,6 +15,7 @@ include std include vtk include creaImageIO include wxvtk +include toolsbbtk author "info-dev@creatis.insa-lyon.fr" description "Recalage3D 1-point" @@ -160,6 +138,15 @@ new LayoutTab Box38 new LayoutTab Box39 +new LayoutLine Box40 + set Box40.WinTitle "Save" + +new SaveMHD-Button Box41 + +new CommandButton Box42 + set Box42.Label "Same Matrix" + set Box42.WinTitle "Same Matrix" + connect viewer2.Point transform.CenterPoint @@ -285,6 +272,14 @@ connect Box31.BoxChange mult3.In4 connect reslicer.Out Box31.In +connect Box40.Widget Box32.Widget4 + +connect Box41.Widget Box40.Widget1 + +connect Box42.Widget Box40.Widget2 + +connect reslicer.Out Box41.In + # Complex input ports diff --git a/PackRecalage/src/bbPackRecalageReSlicerBox.cxx b/PackRecalage/src/bbPackRecalageReSlicerBox.cxx index 0d7fd54..29953b0 100644 --- a/PackRecalage/src/bbPackRecalageReSlicerBox.cxx +++ b/PackRecalage/src/bbPackRecalageReSlicerBox.cxx @@ -50,6 +50,8 @@ void ReSlicerBox::Process() slicer->SetInformationInput( image->GetOutput() ); slicer->SetResliceTransform(bbGetInputTransform()); slicer->SetOutputOrigin( -(bbGetInputOrigin()[0]) , -(bbGetInputOrigin()[1]) , -(bbGetInputOrigin()[2]) ); + + if(bbGetInputInterpolate()) { slicer->InterpolateOn(); @@ -64,12 +66,28 @@ void ReSlicerBox::Process() imageResult->SetOutputOrigin( 0,0,0 ); bbSetOutputOut( imageResult->GetOutput() ); + + if (bbGetInputTransform()!=NULL) + { + bbGetInputTransform()->Update(); + vtkMatrix4x4 *m = bbGetInputTransform()->GetMatrix(); + if (m!=NULL) + { + printf("EED ReSlicerBox::Process Translation %d %d %d \n",-(bbGetInputOrigin()[0]),-(bbGetInputOrigin()[1]),-(bbGetInputOrigin()[2])); + printf("EED ReSlicerBox::Process Matrix %f %f %f %f\n", m->GetElement(0,0),m->GetElement(0,1),m->GetElement(0,2),m->GetElement(0,3)); + printf("EED ReSlicerBox::Process Matrix %f %f %f %f\n", m->GetElement(1,0),m->GetElement(1,1),m->GetElement(1,2),m->GetElement(1,3)); + printf("EED ReSlicerBox::Process Matrix %f %f %f %f\n", m->GetElement(2,0),m->GetElement(2,1),m->GetElement(2,2),m->GetElement(2,3)); + printf("EED ReSlicerBox::Process Matrix %f %f %f %f\n", m->GetElement(3,0),m->GetElement(3,1),m->GetElement(3,2),m->GetElement(3,3)); + } // if m + } // if Transform } else { bbSetOutputOut( NULL ); } } + + void ReSlicerBox::bbUserSetDefaultValues() { std::vector empty; @@ -81,6 +99,8 @@ void ReSlicerBox::bbUserSetDefaultValues() bbSetInputInterpolate(false); } + + void ReSlicerBox::bbUserInitializeProcessing() { @@ -92,11 +112,13 @@ void ReSlicerBox::bbUserInitializeProcessing() slicer =vtkImageReslice::New(); imageResult = vtkImageChangeInformation::New(); } + void ReSlicerBox::bbUserFinalizeProcessing() { image->Delete(); slicer->Delete(); imageResult->Delete(); } + } // EO namespace bbPackRecalage -- 2.46.2