]> Creatis software - bbtk.git/commitdiff
in 50 % of the scripts, LoadHola was called an 'image' in 50 % a 'reader'.
authorjean-pierre roux <jean-pierre.roux@creatis.insa-lyon.fr>
Wed, 28 Apr 2010 22:10:05 +0000 (22:10 +0000)
committerjean-pierre roux <jean-pierre.roux@creatis.insa-lyon.fr>
Wed, 28 Apr 2010 22:10:05 +0000 (22:10 +0000)
Unify as a 'reader'

15 files changed:
packages/kw/bbs/appli/exampleTransferFunctionEditor.bbs
packages/kw/bbs/appli/kwTour.bbs
packages/vtk/data/testImage.mhd [new file with mode: 0644]
packages/vtk/src/bbvtkConcatImages.cxx
packages/wxvtk/bbs/appli/exampleDoubleSlicer.bbs
packages/wxvtk/bbs/appli/exampleImagePlanes.bbs
packages/wxvtk/bbs/appli/exampleIsoSurfaceWidget.bbs
packages/wxvtk/bbs/appli/exampleMIPWidget.bbs
packages/wxvtk/bbs/appli/exampleSimpleIsoSurfaceViewer.bbs
packages/wxvtk/bbs/appli/exampleSimpleSlicer.bbs
packages/wxvtk/bbs/appli/exampleView3DImage1.bbs
packages/wxvtk/bbs/appli/exampleView3DImage1_Stereo.bbs
packages/wxvtk/bbs/appli/exampleViewer2D.bbs
packages/wxvtk/bbs/appli/exampleVolumeRendering.bbs
packages/wxvtk/bbs/appli/wxvtkTour.bbs

index 45b81b18b5ec0578c0e95be14969b880bbf247bd..8284f597a887d405e7c386508fe30b06d01d903e 100644 (file)
@@ -6,16 +6,16 @@ include vtk
 #load wxvtk
 load kw
 
-new LoadHola image
+new LoadHola reader
 //new PiecewiseFunction color
 new kwTransferFunctionEditor color
 new kwTransferFunctionEditor opacity
 new VolumeRenderer renderer
 new kwViewer3D viewer
 
-connect image.Out color.In
-connect image.Out opacity.In
-connect image.Out renderer.In
+connect reader.Out color.In
+connect reader.Out opacity.In
+connect reader.Out renderer.In
 connect color.Out renderer.ColorFunction
 connect opacity.Out renderer.OpacityFunction
 connect renderer.Out viewer.In1
index 22e8a6d5f95221f74a45a5d88fbf24cd0a9cf8d4..12e09e0ede646b94294465887649bb82fd48335d 100644 (file)
@@ -62,11 +62,11 @@ print "=================================="
 help kwVolumeRendererWidget
 message echo 2
 
-new LoadHola image
+new LoadHola reader
 new kwVolumeRendererWidget renderer
 new kwViewer3D viewer
 
-connect image.Out renderer.In
+connect reader.Out renderer.In
 connect renderer.Out viewer.In1
 connect renderer.BoxChange viewer.BoxExecute
 
diff --git a/packages/vtk/data/testImage.mhd b/packages/vtk/data/testImage.mhd
new file mode 100644 (file)
index 0000000..e624826
--- /dev/null
@@ -0,0 +1,18 @@
+ObjectType = Image
+NDims = 3
+DimSize = 127 147 187
+ElementType = MET_USHORT
+HeaderSize = 0
+ElementNumberOfChannels = 1
+
+ElementSpacing = 0.7 0.7 0.7
+Position = 0 0 0
+TransformMatrix = 1 0 0 0 1 0 0 0 1
+Offset = 0 0 0
+CenterOfRotation = 0 0 0
+
+BinaryData = True
+BinaryDataByteOrderMSB = False
+CompressedData = False
+
+ElementDataFile = hola.raw
index 301614fce13cd8adc25b0ca1725a4c5db1f0e187..39bc30555b07bcbbdf829b70eb06a7b375d7e96d 100644 (file)
@@ -2,8 +2,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbvtkConcatImages.cxx,v $
   Language:  C++
-  Date:      $Date: 2010/04/08 14:39:45 $
-  Version:   $Revision: 1.1 $
+  Date:      $Date: 2010/04/28 22:10:07 $
+  Version:   $Revision: 1.2 $
 =========================================================================*/
 
 /* ---------------------------------------------------------------------
@@ -87,8 +87,14 @@ namespace bbvtk
    void ConcatImages::Process()
    {
         int dim[3];
+       int nbComponents;
+       int scalarType;
        int nb = (unsigned int)bbGetInputIn().size();
-        if (nb == 0) {} // ??? JPR
+       int consistentNb(nb);
+
+        if (nb == 0) {
+          // ??? JPR
+       } 
        
        bbGetInputIn()[0]->GetDimensions(dim);
        if (dim[2] > 1  || nb == 1) // dim[2] > 1 : Hopeless for vtk : the first file contains already a 3D object
@@ -106,15 +112,29 @@ namespace bbvtk
                  //std::cout << "--------PrintSelf firstImage " << std::endl;
                  // firstImage->PrintSelf(std::cout, vtkIndent(2));       
           
-           int nbComponents = firstImage->GetNumberOfScalarComponents();
+           nbComponents = firstImage->GetNumberOfScalarComponents();
            mConcat->SetNumberOfScalarComponents(nbComponents);
-           mConcat->SetScalarType(firstImage->GetScalarType( ));       
-          firstImage->GetDimensions(dim);
-          dim[2]=nb;
-          mConcat->SetDimensions(dim);
-          mConcat->SetExtent(0, dim[0]-1, 0, dim[1]-1, 0, dim[2]-1);
+          
+          mConcat->SetScalarType(firstImage->GetScalarType( ));
+          scalarType = firstImage->GetScalarType( );
+          mConcat->SetScalarType(scalarType);
+          
           mConcat->SetSpacing(firstImage->GetSpacing());
           
+          firstImage->GetDimensions(dim);         
+          // brute way to perform an ultra-mini consistency check :
+          // First image is supposed to be the reference image,
+          // any unconsistent image is just discarted...
+          for(int i=0; i<nb; i++)
+          {
+             if ( !CheckConsistency(firstImage, dim, nbComponents, scalarType))
+               consistentNb--;
+          }    
+
+          dim[2]=consistentNb;
+          mConcat->SetDimensions(dim);
+          mConcat->SetExtent(0, dim[0]-1, 0, dim[1]-1, 0, dim[2]-1);
+                  
           mConcat->AllocateScalars();
           mConcat->Update();      
                     
@@ -122,6 +142,8 @@ namespace bbvtk
           
           for(index_image=0; index_image<nb; index_image++)
           {
+             if (!CheckConsistency(bbGetInputIn()[index_image], dim, nbComponents, scalarType))
+                continue;  // discard unconsistent image !
              for(index_lignes=0; index_lignes<dim[0];index_lignes++)
              {
                 for(index_colonnes=0; index_colonnes<dim[1];index_colonnes++)
@@ -138,6 +160,25 @@ namespace bbvtk
    bbSetOutputOut(mConcat);    
    }              
 
+bool ConcatImages::CheckConsistency( vtkImageData *curImage, int dim[], int nbComponents, int scalarType )
+{
+   assert (curImage);
+   
+   if (scalarType != curImage->GetScalarType( ) )
+      return false;
+      
+   if (nbComponents != curImage->GetNumberOfScalarComponents() )
+      return false;
+      
+   int curDim[3];
+   curImage->GetDimensions(curDim);
+   if ( (curDim[0] =! dim[0]) || (curDim[1] =! dim[1]) )
+      return false;
+
+   return true;   
+}
+
+
 }//namespace bbtk
 
 #endif // _USE_VTK_
index b2fc3add8d685a60ec73e4207a653f1c1833f23f..ec8382b45b3ba2b966494e35719b44b80b0ac16b 100644 (file)
@@ -5,12 +5,12 @@ category "example"
 include vtk/boxes/bbLoadHola
 include wxvtk/boxes/bbDoubleSlicer
 
-new LoadHola image1
-new LoadHola image2
+new LoadHola reader1
+new LoadHola reader2
 new DoubleSlicer viewer 
 
-connect image1.Out viewer.In1
-connect image2.Out viewer.In2
+connect reader1.Out viewer.In1
+connect reader2.Out viewer.In2
 
 load std 
 set viewer.WinTitle "ExampleDoubleSlicer" 
index 76d9000719d5d4ef491c8b36b4f7c0cd5a279ae6..cd5f5313a4164c6cb8bcfadd32d37d4b1a0da2a7 100644 (file)
@@ -6,10 +6,10 @@ include vtk/boxes/bbLoadHola
 load vtk
 load wxvtk
 
-new LoadHola image
+new LoadHola reader
 new ImagePlanes planes
 new Viewer3D viewer
-connect image.Out planes.In
+connect reader.Out planes.In
 connect planes.PlaneX viewer.Obs1
 connect planes.PlaneY viewer.Obs2
 connect planes.PlaneZ viewer.Obs3
index 6ffcb0d562b078f1d09b906085d3fbb1379a5a4c..becc0d1b05a00d2dcddcefa5aec6fcd3fda3022d 100644 (file)
@@ -10,13 +10,10 @@ new IsoSurfaceWidget surface2
 
 load wxvtk
 new Viewer3D viewer
-#bad trick, waiting for a bug fix... : load twice the image :-(
-new LoadHola image1
-//new LoadHola image2
+new LoadHola reader1
 
-connect image1.Out surface1.In
-//connect image2.Out surface2.In
-connect image1.Out surface2.In
+connect reader1.Out surface1.In
+connect reader1.Out surface2.In
 
 set surface1.Isovalue 100
 set surface1.Opacity 100
index 67e4603ede84fefec993cbb5c794246ca7ab601e..ca6c484e6f380058a8a2f2021822eed90351c7b6 100644 (file)
@@ -9,9 +9,9 @@ new MIPWidget MIP
 
 load wxvtk
 new Viewer3D viewer
-new LoadHola image
+new LoadHola reader
 
-connect image.Out MIP.In
+connect reader.Out MIP.In
 connect MIP.Out viewer.In1
 connect MIP.BoxChange viewer.BoxExecute
 
index 6141f9094dc487550cebddcfc424695f832d57bb..1977ca9f85df11a4b11c1496cc0abba58488d891 100644 (file)
@@ -5,9 +5,9 @@ category "example"
 include vtk/boxes/bbLoadHola
 include wxvtk/boxes/bbSimpleIsoSurfaceViewer
 
-new LoadHola image
+new LoadHola reader
 new SimpleIsoSurfaceViewer viewer
-connect image.Out viewer.In
+connect reader.Out viewer.In
 
 load std
 set viewer.WinTitle "ExampleSimpleIsoSurfaceViewer"
index f905689603fdabc312fdf1a08802435bacbb166a..5f449e1f0a722e1938a2de4b1ec5a562d887e02f 100644 (file)
@@ -6,16 +6,16 @@ include vtk/boxes/bbLoadHola
 include wxvtk/boxes/bbSimpleSlicer
 
 
-new LoadHola image
+new LoadHola reader
 new SimpleSlicer viewer
-connect image.Out viewer.In
+connect reader.Out viewer.In
 
 load std
 set viewer.WinTitle "ExampleSimpleSlicer"
 set viewer.WinWidth 350
 set viewer.WinHeight 400
-# Crashes ! why ?
-#set viewer.Slice 20
+
+set viewer.Slice 20
 
 exec viewer
 
index bffee89c1e0daf32944a53edb3e53c8aa44b1e4f..67f2b5c5bf0a08a3788b70e545451ccebf891a8a 100644 (file)
@@ -2,22 +2,22 @@ description "Example of complex 3D view of an image using vtk::ImagePlanes and w
 author "laurent.guigues at creatis.insa-lyon.fr"
 category "example"
 
-include vtk/boxes/bbLoadHola
-include wxvtk/boxes/bbIsoSurfaceWidget
 load vtk
 load wxvtk
+include vtk/boxes/bbLoadHola
+include wxvtk/bbs/boxes/bbIsoSurfaceWidget
 
-new LoadHola image
+new LoadHola reader
 new ImagePlanes planes
 new IsoSurfaceWidget surface
 new Viewer3D viewer
 
-connect image.Out planes.In
+connect reader.Out planes.In
 connect planes.PlaneX viewer.Obs1
 connect planes.PlaneY viewer.Obs2
 connect planes.PlaneZ viewer.Obs3
 
-connect image.Out surface.In
+connect reader.Out surface.In
 connect surface.Out viewer.In1
 connect surface.BoxChange viewer.BoxExecute
 
index 5a415f6183544c34741be5d85843b9b5d5e94efe..0db50e5663fec402c5d20432d1af1005fc54e83f 100644 (file)
@@ -7,17 +7,17 @@ include wxvtk/boxes/bbIsoSurfaceWidget
 load vtk
 load wxvtk
 
-new LoadHola image
+new LoadHola reader
 new ImagePlanes planes
 new IsoSurfaceWidget surface
 new Viewer3D viewer
 
-connect image.Out planes.In
+connect reader.Out planes.In
 connect planes.PlaneX viewer.Obs1
 connect planes.PlaneY viewer.Obs2
 connect planes.PlaneZ viewer.Obs3
 
-connect image.Out surface.In
+connect reader.Out surface.In
 connect surface.Out viewer.In1
 connect surface.BoxChange viewer.BoxExecute
 
index 94a54c59b093aa7a177b5b929e3131dd87678b38..f9e1052e8e72366d154e9a98462d78cc0982123f 100644 (file)
@@ -5,9 +5,9 @@ category "example"
 include vtk/boxes/bbLoadHola
 load wxvtk
 
-new LoadHola image
+new LoadHola reader
 new Viewer2D viewer
-connect image.Out viewer.In
+connect reader.Out viewer.In
 
 # To get the string to int adaptor and set the slice
 load std 
index c1293fd74da3345ba95e5ffcff6b5215e081d82d..03f04995eda15e62d28508e2dec6263d107e4026 100644 (file)
@@ -5,13 +5,13 @@ category "example"
 include vtk
 load wxvtk
 
-new LoadHola image
+new LoadHola reader
 new PiecewiseFunction color
 new PiecewiseFunction opacity
 new VolumeRenderer renderer
 new Viewer3D viewer
 
-connect image.Out renderer.In
+connect reader.Out renderer.In
 connect color.Out renderer.ColorFunction
 connect opacity.Out renderer.OpacityFunction
 connect renderer.Out viewer.In1
index 65f05533e30ab32a588e5d1ccbbba8791855248f..c9d1d5995c108c75159ef53e755d756b61e1f6e4 100644 (file)
@@ -18,9 +18,9 @@ print "====================================="
 help Viewer2D
 message echo 2
 
-new LoadHola image
+new LoadHola reader
 new Viewer2D viewer
-connect image.Out viewer.In
+connect reader.Out viewer.In
 set viewer.Slice 20
 set viewer.WinDialog true
 exec viewer
@@ -34,9 +34,9 @@ print "====================================="
 help SimpleSlicer
 message echo 2
 
-new LoadHola image
+new LoadHola reader
 new SimpleSlicer viewer
-connect image.Out viewer.In
+connect reader.Out viewer.In
 set viewer.WinDialog true
 exec viewer
 
@@ -49,10 +49,10 @@ print "====================================="
 help DoubleSlicer
 message echo 2
 
-new LoadHola image
+new LoadHola reader
 new DoubleSlicer viewer 
-connect image.Out viewer.In1
-connect image.Out viewer.In2
+connect reader.Out viewer.In1
+connect reader.Out viewer.In2
 set viewer.WinDialog true
 exec viewer
 
@@ -66,10 +66,10 @@ help ImagePlanes
 message echo 2
 
 
-new LoadHola image
+new LoadHola reader
 new ImagePlanes planes
 new Viewer3D viewer
-connect image.Out planes.In
+connect reader.Out planes.In
 connect planes.PlaneX viewer.Obs1
 connect planes.PlaneY viewer.Obs2
 connect planes.PlaneZ viewer.Obs3
@@ -85,9 +85,9 @@ print "====================================="
 help SimpleIsoSurfaceViewer
 message echo 2
 
-new LoadHola image
+new LoadHola reader
 new SimpleIsoSurfaceViewer viewer
-connect image.Out viewer.In
+connect reader.Out viewer.In
 set viewer.WinDialog true
 exec viewer
 
@@ -100,15 +100,15 @@ print "====================================="
 help IsoSurfaceWidget
 message echo 2
 
-new LoadHola image
+new LoadHola reader
 new Viewer3D viewer
 new ImagePlanes planes
-connect image.Out planes.In
+connect reader.Out planes.In
 connect planes.PlaneX viewer.Obs1
 connect planes.PlaneY viewer.Obs2
 connect planes.PlaneZ viewer.Obs3
 new IsoSurfaceWidget isosurface
-connect image.Out isosurface.In
+connect reader.Out isosurface.In
 connect isosurface.Out viewer.In1
 connect isosurface.BoxChange viewer.BoxExecute
 
@@ -128,13 +128,13 @@ print "====================================="
 help VolumeRenderer
 message echo 2
 
-new LoadHola image
+new LoadHola reader
 new PiecewiseFunction color
 new PiecewiseFunction opacity
 new VolumeRenderer renderer
 new Viewer3D viewer
 
-connect image.Out renderer.In
+connect reader.Out renderer.In
 connect color.Out renderer.ColorFunction
 connect opacity.Out renderer.OpacityFunction
 connect renderer.Out viewer.In1