1 #include "bbTransform3DdicomCreateComplementImage.h"
2 #include "bbTransform3DdicomPackage.h"
6 namespace bbTransform3Ddicom
9 BBTK_ADD_BLACK_BOX_TO_PACKAGE(Transform3Ddicom,CreateComplementImage)
10 BBTK_BLACK_BOX_IMPLEMENTATION(CreateComplementImage,bbtk::AtomicBlackBox);
11 void CreateComplementImage::Process()
13 if (( bbGetInputInImage1()!=NULL ) && ( bbGetInputInImage2()!=NULL ))
15 creaimage1->SetvtkImageData( bbGetInputImage1() );
16 creaimage1->SetImagePositionPatient( bbGetInputPosition1()[0] ,
17 bbGetInputPosition1()[1] ,
18 bbGetInputPosition1()[2] );
\r
19 creaimage1->SetImageSpacing( bbGetInputSpacing1()[0] , bbGetInputSpacing1()[1] , bbGetInputSpacing1()[2] );
\r
20 creaimage1->SetImageOrientation( bbGetInputOrientation1Vec1()[0] , bbGetInputOrientation1Vec1()[1] , bbGetInputOrientation1Vec1()[2] ,
21 bbGetInputOrientation1Vec2()[0] , bbGetInputOrientation1Vec2()[1] , bbGetInputOrientation1Vec2()[2] );
\r
23 creaimage2->SetvtkImageData( bbGetInputImage1() );
24 creaimage2->SetImagePositionPatient( bbGetInputPosition1()[0] , bbGetInputPosition1()[1] , bbGetInputPosition1()[2] );
\r
25 creaimage2->SetImageSpacing( bbGetInputSpacing1()[0] , bbGetInputSpacing1()[1] , bbGetInputSpacing1()[2] );
\r
26 creaimage2->SetImageOrientation( bbGetInputOrientation1Vec1()[0] , bbGetInputOrientation1Vec1()[1] , bbGetInputOrientation1Vec1()[2] ,
27 bbGetInputOrientation1Vec2()[0] , bbGetInputOrientation1Vec2()[1] , bbGetInputOrientation1Vec2()[2] );
30 creaimagecomplement->SetBaseCreaImage( creaimage1 );
31 creaimagecomplement->SetComplementCreaImage( creaimage2 );
32 creaimagecomplement->Update();
34 imageresult->SetSpacing(1,1,1);
35 imageresult->SetScalarTypeUnsignedShort();
36 dimx= (bbGetInputExtOut()[1] - bbGetInputExtOut()[0]) / bbGetInputSpcOut()[0];
37 dimy= (bbGetInputExtOut()[3] - bbGetInputExtOut()[2]) / bbGetInputSpcOut()[1];
38 dimz= (bbGetInputExtOut()[5] - bbGetInputExtOut()[4]) / bbGetInputSpcOut()[2];
39 imageresult->SetDimensions(dimx,dimy,dimz);
40 imageresult->AllocateMemory();
50 xx = (double)x * bbGetInputSpcOut()[0] + bbGetInputExtOut()[0] ;
51 yy = (double)y * bbGetInputSpcOut()[1] + bbGetInputExtOut()[2] ;
52 zz = (double)z * bbGetInputSpcOut()[2] + bbGetInputExtOut()[4] ;
53 unsigned short value=creaimagecomplement->GetVoxelFromComplementImage_In_BaseCreaImage_Universe(xx,yy,zz);
54 unsigned short *p = (unsigned short *)imageresult->GetScalarPointer( x,y,z );
59 bbSetOutputOut(imageresult);
65 void CreateComplementImage::bbUserConstructor()
67 creaimage1 = new CreaImage();
68 creaimage2 = new CreaImage();
69 creaimagecomplement = new CreaImageComplement();
70 imageresult = vtkImageData::New();
73 void CreateComplementImage::bbUserCopyConstructor(bbtk::BlackBox::Pointer)
77 void CreateComplementImage::bbUserDestructor()
84 // EO namespace bbTransform3Ddicom