+There are various others user-intended packages :
+\begin{itemize}
+\item{vtk} \\
+It contains some vtk based image processing filters :
+% \begin{enumerate}
+
+ \paragraph{AppendPolyData}
+ Appends one of more polygonal datasets into a single polygonal dataset
+
+ \paragraph{ConeSource}
+ Creates a Cone
+
+ \paragraph{ImageAnisotropicDiffusion3D}
+vtkImageAnisotropicDiffusion3D diffuses an volume iteratively. \\
+The neighborhood of the diffusion is determined by the instance flags. \\
+if 'Faces' is on, the 6 voxels adjoined by faces are included in the neighborhood. \\
+If 'Edges' is on the 12 edge connected voxels are included, and if 'Corners' is on, the 8 corner connected voxels are included. \\
+'DiffusionFactor' determines how far a pixel value moves toward its neighbors, and is insensitive to the number of neighbors chosen.\\
+The diffusion is anisotropic because it only occurs when a gradient measure is below 'GradientThreshold'. \\
+Two gradient measures exist and are toggled by the 'GradientMagnitudeThreshold' flag. \\
+When 'GradientMagnitudeThreshold' is on, the magnitude of the gradient, computed by central differences, above 'DiffusionThreshold' a voxel is not
+modified. \\
+The alternative measure examines each neighbor independently.\\
+The gradient between the voxel and the neighbor must be below the 'DiffusionThreshold' for diffusion to occur with THAT neighbor.\\
+ Receives : \\
+ - In : an image (vtkImageData*)\\
+ - Diffusion : Difference threshold that stops the diffusion\\
+ Outputs : \\
+ - Out : the isosurface mesh (vtkPolyData*)
+
+ \paragraph{ImageCharacteristics}
+ Exports objet sizes, and Spacings
+
+ \paragraph{ImageDilateErode3D}
+ Dilates one value and erodes another.\\
+ vtkImageDilateErode3D will dilate one value and erode another. \\
+ It uses an elliptical foot print, and only erodes/dilates on the boundary of the two values. \\
+ The filter is restricted to the X, Y, and Z axes for now.\\
+ It can degenerate to a 2 or 1 dimensional filter by setting the kernel size to 1 for a specific axis. \\
+ (bbfication of vtkImageDilateErode3D) \\
+ Receives : \\
+ - In : an image (vtkImageData*)\\
+ - DilateValue : The dilatation value\\
+ - ErodeValue : The erosion value\\
+ Outputs : \\
+ - Out : the isosurface mesh (vtkPolyData*)
+
+ \paragraph{ImageGaussianSmooth}\\
+ Performs a gaussian convolution of the input image\\
+ Receives : \\
+ - In : an image (vtkImageData*)\\
+ - StdDevX : Standard deviation in X direction\\
+ - StdDevY : Standard deviation in Y direction\\
+ Outputs : \\
+ - Out : the isosurface mesh (vtkPolyData*)
+
+ \paragraph{ImagePlanes}
+ Creates three 3D planes with the input image mapped onto with which the user can interact; \\
+ The output vtkImagePlaneWidget objects are to be inserted into a 3D scene (e.g. a Viewer3D)
+ Receives : \\
+ - In : an image (vtkImageData*)\\
+ Outputs : \\
+ - PlaneX : the image plane in X direction (vtkImagePlaneWidget*)\\
+ - PlaneY : the image plane in Y direction (vtkImagePlaneWidget*)\\
+ - PlaneY : the image plane in Z direction (vtkImagePlaneWidget*)\\
+
+ Outputs : \\
+ - Out : the isosurface mesh (vtkPolyData*)
+
+ \paragraph{IsoSurfaceExtractor}
+ Extracts an iso-surface of a 3D image and creates a vtkProp3D object to insert into a 3D scene (e.g. a Viewer3D)
+ Receives : \\
+ - In : an image (vtkImageData*)\\
+ - Isovalue : the isosurface value (double)\\
+ - Colour : Surface colour (vector of 3 doubles)
+ Outputs : \\
+ - Out : the isosurface (vtkProp3D**)
+
+ \paragraph{MarchingCubes}
+ Extracts an iso-surface of an image using the marching cubes algorithm (bbfication of vtkMarchingCubes)\\
+ Receives : \\
+ - In : an image (vtkImageData*)\\
+ - Value : the isosurface value (double)\\
+ Outputs : \\
+ - Out : the isosurface mesh (vtkPolyData*)
+
+ \paragraph{MIPCreator}
+ Creates a Maximum Intensity Projection (MIP) view of a 3D image.\\
+ Receives : \\
+ - In : an image (vtkImageData*)\\
+ - Scale : the Gray scale scaling (float) \\
+ - Shift : the Gray scale shift (float) \\
+ Ouputs : \\
+ - Out : The MIP object (vtkProp3D*) to be plugged into a 3D Viever
+
+ \paragraph{MetaImageReader}
+ Reads .mhd / .mhd image formats (bbfication of vtkMetaImageReader) \\
+ Receives : \\
+ - In : the name of the file to be read (std::string)
+ Outputs :
+ - Out : The image (vtkImageData*)
+
+ \paragraph{SegmentationConnectivity} \\
+ Segmentation with min max threshold and connectivity \\
+ Receives : \\
+ - In : an image (vtkImageData*)\\
+ - PositionXYZ : initial position (std::vector<int>) \\
+ - ThresholdMinMax : min, max threshold values (std::vector<int>) \\
+ Outputs : \\
+ - Out : The image (vtkImageData*)
+
+ \paragraph{SphereSource}
+ Creates a Sphere
+% \end{enumerate}
+
+\item{itk} \\
+It contains some itk based image processing filters :
+
+ \paragraph{BinaryThresholdImageFilter}
+ Binarizes an image by thresholding (generic bbification of itk::BinaryThresholdImageFilter)
+
+ \paragraph{DICOMSeriesFileNames}
+ Reads a series from a DICOM directory as a 3D itk image
+
+ \paragraph{ExtractImageFilter}
+ Decrease the image size by cropping the image to the selected region bounds (bbification of itk::ExtractImageFilter)
+
+ \paragraph{ImageProperties}
+ Outputs different properties of an image (type, dimension, size, spacing, ...)
+
+ \paragraph{ImageRegion}
+Creates a generic ImageRegion (bbtk::any) from two vectors providing the index and size of the region.
+The dimension D of the actual itk::ImageRegion created is the max of the sizes of Index and Size
+(the smallest vector is padded by zeros)
+
+ \paragraph{ImageReader}
+Generic itk image reader
+
+ \paragraph{ImageWriter}
+Generic itk image writer
+
+ \paragraph{ImageSeriesReader}
+Generic itk image series reader.
+
+ \paragraph{ResampleImageFilter}
+Resamples an image
+
+\item{itkvtk} \\
+It doesn't contain any end user intended box, only adaptors : to convert a generic itkImage to a vtkImageData, and vtkImageData* to a generic itkImage pointer
+
+Sorry nothing is done, right now for meshes.
+
+\item{wxvtk} \\
+
+It contains two atomic black boxes.
+
+ \paragraph{Viewer2D}
+ Receives : \\
+ - a \textless vtkImageData* \textgreater (In),\\
+ - an Orientation(0:yz / 1:xz / 2:xy),\\
+ - an initial slice number (Slice).\\
+ Outputs :\\
+ - a \textless vtkRenderer* \textgreater (Renderer)
+
+ \paragraph{Viewer3D}
+ Receives :\\
+ - up to 5 Input Actors (\textless vtkProp3D* \textgreater),\\
+ - up to 5 Input Observers (\textless vtkInteractorObserver* \textgreater), \\
+ - a boolean 'Stereo' option, to use Red-Blue filter
+ Outputs :\\
+ - an Interactor (\textless wxVTKRenderWindowInteractor* \textgreater) with which vtk widgets can interact, \\
+ - a Renderer (\textless vtkRenderer* \textgreater) to which actors can be added.
+
+It contains too some sophisticated complex black boxes :
+
+ \paragraph{IsoSurfaceWithControls}
+ Image iso-surface extractor (vtk::IsoSurfaceExtractor) with associated control panel (isovalue, opacity and colour)\\
+ Receives :\\
+ - an initial isovalue (Isovalue)
+ - an initial opacity (Opacity)
+ - an initial colour (Colour)
+ Outputs :\\
+ \textless vtkProp3D* \textgreater (In)\\
+
+ \paragraph{MIPWithControls}
+ Maximum Intensity Projection (MIP) creator (vtk::MIPCreator) with associated control panel (shift and scale) \\
+ Receives :\\
+ - an initial scale (Scale)
+ - an initial shift (Shift)
+ Outputs :\\
+ \textless vtkProp3D* \textgreater (In)\\
+
+\item{wx} \\
+
+Some boxes are the bbfication of usefull xwWidgets, some other ones are more
+sophisticated.
+
+ \paragraph{ColourSelector} Colour Selector dialog (bbfication of wxColourSelector) \\
+ %\begin{verbatim}
+ \texttt{Out} : Colour choosen in format '[0,1] [0,1] [0,1]'
+ %\end{verbatim}
+
+ \paragraph{ColourSelectorButton} A button which displays a colour picker dialog when clicked \\
+ %\begin{verbatim}
+ \texttt{In} :Initial colour \\
+ \texttt{Out} : Colour choosen in format '[0,1] [0,1] [0,1]'
+ %\end{verbatim} \\
+
+ \paragraph{CommandButton} Button which executes bbi commands \\
+ %\begin{verbatim}
+ \texttt{In} : Commands to be executed separated by commas (;). Each single quote (') is replaced by a double quote ("). \\
+ \texttt{Label} : Label of the button \\
+ \texttt{Widget} : Output widget \\
+ %\end{verbatim}
+
+ \paragraph{DirectorySelector} Pops up a directory selection dialog (wxDirDialog)\\
+ %\begin{verbatim}
+ \texttt{DefaultDir} : The default directory\\
+ \texttt{Message} : Message to show on the dialog \\
+ \texttt{Title} : Title of the dialog \\
+ \texttt{Out} : The directory selected by the user\\
+ %\end{verbatim}
+
+ \paragraph{FileSelector} Pops up a file selection dialog for reading or saving (wxFileDialog)\\
+ %\begin{verbatim}
+ \texttt{DefaultDir} : The default directory \\
+ \texttt{DefaultFile} : The default filename \\
+ \texttt{Message} : Message to show on the dialog \\
+ \texttt{OpenSave} : Open for an open dialog (default) / Save for a save dialog\\
+ \texttt{Title} : Title of the dialog \\
+ \texttt{Wildcard} : A wildcard, such as "*.*" or "BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif" \\
+ \texttt{Out} : The file selected by the user \\
+ %\end{verbatim}
+
+ \paragraph{InputText} A zone in which the user can enter a text (wxTextCtrl)\\
+ %\begin{verbatim}
+ \texttt{In} : Initial text (default '')\\
+ \texttt{Title} : Title of the input zone (default '')\\
+ \texttt{WinTitle} : Title of the window (*)\\
+ \texttt{Out} :Current text\\
+ %\end{verbatim}
+
+ \paragraph{LayoutLine} LayoutLine widget (wxBoxSizer)\\
+ %\begin{verbatim}
+ \texttt{Orientation} Orientation (default V), 0=H=HORIZONTAL , 1=V=VERTICAL \\
+ \texttt{Widget}1 widget 1 \\
+ \texttt{Widget2} widget 2 \\
+ \texttt{Widget3} widget 3 \\
+ \texttt{Widget4} widget 4 \\
+ \texttt{Widget5} widget 5 \\
+ \texttt{Widget6} widget 6 \\
+ \texttt{Widget7} widget 7 \\
+ \texttt{Widget8} widget 8 \\
+ \texttt{Widget9} widget 9\\
+ %\end{verbatim}
+
+ \paragraph{LayoutSplit} Widget which splits a window in two fixed size parts (wxSplitterWindow)\\
+ %\begin{verbatim}
+ \texttt{Orientation} : Orientation (default H), 0=H=HORIZONTAL , 1=V=VERTICAL\\
+ \texttt{Proportion} : Proportion (in percent) of the first children in the window\\
+ \texttt{Widget1} : Upper or left widget\\
+ \texttt{Widget2} : Lower or right widget\\
+ %\end{verbatim}
+
+ \paragraph{LayoutTDown} Creates a 'T like' complex container : Down {UpLeft, UpRight} \\
+ %\begin{verbatim}
+ \texttt{Widget1} : UpLeft container\\
+ \texttt{Widget2} : UpRight container\\
+ \texttt{Widget3} : Down container\\
+ \begin{verbatim}
+// ---------------
+// | | |
+// | W1 | W2 |
+// |-------------|
+// | |
+// | W3 |
+// ---------------
+ \end{verbatim}
+
+ \paragraph{LayoutTLeft} Creates a 'T like' complex container : Left {RigthUp, RightDown}\\
+ %\begin{verbatim}
+ \texttt{input} Widget1 : "UpLeft container"\\
+ \texttt{input} Widget2 : "UpRight container"\\
+ \texttt{input} Wigdet3 : "Down container"\\
+ \begin{verbatim}
+// ---------------
+// | | W2 |
+// | W1 | |
+// | |------|
+// | | W3 |
+// | | |
+// ---------------
+ \end{verbatim}
+
+ \paragraph{LayoutTRight} Creates a 'T like' complex container : Right {LeftUp, LeftDown}\\
+ %\begin{verbatim}
+ \texttt{input} Widget1 currentBox.Widget1 "Up container"\\
+ \texttt{input} Widget2 down.Widget1 "DownLeft container"\\
+ \texttt{input} Widget3 down.Widget2 "DownRight container"\\
+ \begin{verbatim}
+// ---------------
+// | | |
+// | W1 | |
+// |------| W2 |
+// | W3 | |
+// | | |
+// ---------------
+ \end{verbatim}
+
+ \paragraph{LayoutTUp} Creates a 'T like' complex container : Up {DownLeft, DownRight} as w1{w2,w3}\\
+ \begin{verbatim}
+ \texttt{ input} Widget1 currentBox.Widget1 "Up"\\
+ \texttt{input} Widget2 down.Widget1 "DownLeft"\\
+ \texttt{input} Widget3 down.Widget2 "DownRight"\\
+
+// ----------------
+// | W1 |
+// | |
+// |------|-------|
+// | W3 | W2 |
+// | | |
+// ----------------
+ \end{verbatim}
+
+ \paragraph{LayoutTab} LayoutTab widget (wxNotebook)\\
+ %\begin{verbatim}
+ \texttt{Orientation} Orientation (default T), 0=T=TOP , 1=R=RIGHT , 2=B=BOTTON , 3=L=LEFT \\
+ \texttt{Widget1} widget 1 \\
+ \texttt{Widget2} widget 2 \\
+ \texttt{Widget3} widget 3 \\
+ \texttt{Widget4} widget 4 \\
+ \texttt{Widget5} widget 5 \\
+ \texttt{Widget6} widget 6 \\
+ \texttt{Widget7} widget 7 \\
+ \texttt{Widget8} widget 8 \\
+ \texttt{Widget9} widget 9 \\
+%\end{verbatim}
+
+ \paragraph{OutputText} Text zone to be inserted into a window (wxStaticText)\\
+ %\begin{verbatim}
+ \texttt{In} Text \\
+ \texttt{Title} Title prepended to the text\\
+ %\end{verbatim}
+
+ \paragraph{RadioButton} RadioButton group widget 0-9 entries\\
+ %\begin{verbatim}
+ \texttt{In} Set initial item \\
+ \texttt{In0} option 0\\
+ \texttt{In1} option 1\\
+ \texttt{In2} option 2\\
+ \texttt{In3} option 3\\
+ \texttt{In4} option 4\\
+ \texttt{In5} option 5 \\
+ \texttt{In6} option 6 \\
+ \texttt{In7} option 7 \\
+ \texttt{In8} option 8 \\
+ \texttt{In9} option 9 \\
+ \texttt{Title} Title of the widget (default '')\\
+ \texttt{Out} Number of the selected Item
+ %\end{verbatim}
+
+ \paragraph{Slider} Slider widget (wxSlider)\\
+ %\begin{verbatim}
+ \texttt{ChangeResolution} Enables the user to change the slider resolution (default FALSE) \\
+ \texttt{In} Initial slider position(default 0) \\
+ \texttt{Label} Show slider labels ? (default FALSE) \\
+ \texttt{Max} Maximum value of the slider (default 500)\\
+ \texttt{Min} Minimum value of the slider (default 0)\\
+ \texttt{Orientation} Orientation : (default H) 0=H=HORIZONTAL, 1=V=VERTICAL\\
+ \texttt{ReactiveOnTrack} Slider sends info when track moves (default 0 = no)\\
+ \texttt{Title} Title shown above the slider (default '')\\
+ %\end{verbatim}
+\end{itemize}