Externalproject
Total Page:16
File Type:pdf, Size:1020Kb
SOFTWARE DEVELOPER’S QUARTERLY Issue 11 • Oct 2009 Editor’s Note ........................................................................... 1 ITK 3.16 ITK 3.16 was released on September 15, 2009. The main Recent Releases ..................................................................... 1 changes in this release include the addition of classes for managing labeled images, contributed to the Insight Journal MATLAB® and GNU R Integration With VTK ....................... 2 by G. Lehmann. These classes were the remaining compo- nents of a 70+ class label map morphology module. They Python Trace .......................................................................... 6 provide efficient label map representation and enable con- version from current ITK label images to an efficient format. How ACFR Uses Kitware Products ........................................ 7 Details are available from “Label Object Representation and Manipulation with ITK”, which can be read in the January Representation Plugins in Paraview ................................... 10 Source or on the Insight Journal (hdl.handle.net/1926/584). Paraview Used in a Mining Research Environment ........... 12 These new classes can be found in the Code/Review Directory and can be enabled by setting the CMake variable ITK_USE_ Building External Projects with CMake 2.8 ........................ 14 REVIEW to ON during the configuration process. Thanks to Gaetan Lehmann and Sophie Chen for their dedication on Kitware News ...................................................................... 18 bringing these valuable new functionalities into ITK. This release offers a fix to a long standing issue in ITK regard- ing the computation of physical coordinates associated with pixels. This fix is enabled by default, but if you need to revert it to the previous behavior for backward compatibility reasons, you can disable it by turning off the CMake flag: The Kitware Software Developer’s Quarterly Newsletter ITK_USE_CENTERED_PIXEL_COORDINATES_CONSISTENTLY. contains articles related to the development of Kitware Thanks to Tom Vercauteren and Michel Audette for their projects in addition to a myriad of software updates, news hard work on getting this difficult issue fixed. and other content relevant to the open source community. Many improvements and fixes in the I/O infrastructure were In this issue, Thomas Otahal, of Sandia National Labs, dis- contributed by Brad Lowekamp, which made it possible to cusses the integration of MatLab and GnuR with Kitware’s manage large image files through the streaming infrastruc- Visualization Toolkit. Pat Marion introduces a new extension ture of the data pipeline. In particular, Brad contributed to the ParaView Python interface, called Python trace which examples illustrating how to process the entire Visible generates human readable Python scripts that mimic user Human dataset via an ITK pipeline. actions in the GUI. Andrew Maclean, from the Australian Centre for Field Robotics (ACFR), discusses ACFR’s use of For more details about this release, please visit the ITK Wiki Kitware’s open-source toolkits in order to manage a devel- and search for “Release 3.16”. opment environment that is cross-platform, supports code reuse, and is responsive to change. Utkarsh Ayachit provides PARAVIEW 3.6.2 a brief tutorial on adding representation plugins in ParaView. Kitware, Sandia National Laboratories and Los Alamos Andrew Maclean, from ACFR, discusses the use of ParaView National Laboratory will be releasing ParaView 3.6.2 in early in a mining research environment. And David Cole provides November. This is a minor patch release which includes a few a tutorial on building external projects with CMake 2.8. critical bug fixes and two exciting new features. The Kitware Source is just one of a suite of products and ParaView’s Python interface was revamped, an exciting new services that Kitware offers to assist developers in getting extension to the interface is Python trace. The goal is to gen- the most out of its open-source products. Each project’s erate human readable, not overly verbose, Python scripts that website contains links to free resources including mailing mimic a user’s actions in the GUI. The “Python Trace” article lists, documentation, FAQs and Wikis. In addition, Kitware on page 6, discusses this functionality in greater detail. supports its open-source projects with technical books, user’s guides, consulting services, support contracts and training ParaView 3.6.2 also includes a collection of statisti- courses. For more information on Kitware’s suite of products cal algorithms to compute: descriptive statistics (mean, and services, please visit our website at www.kitware.com. variance, min, max, skewness, kurtosis); compute contin- gency tables; perform k-means analysis; examine correlations between arrays; and perform principal component analysis MATLAB® AND GNU R on arrays. INTEGRATION WITH VTK For more information about these filters, please visit the MATLAB and GNU R are widely used software environments ParaView Wiki and search for “Statistical Analysis”. for technical and scientific computing. Each program envi- CMAKE 2.8.0 ronment contains large collections of existing software for many common technical computing tasks, such as: singular CMake 2.8.0 was released in September 2009. This version value decomposition, maximum likelihood estimation, linear of CMake fixes many open issues and provides some exciting system solving, and data plotting. The goal of the work new features. described in this article is to enable VTK-based applications The official CMake GUI is now Qt-based, and is distributed to leverage the computing resources available in MATLAB with CMake on Windows, Linux, and Mac OSX. The GUI pro- and GNU R, and to allow the 3D visualization power of VTK vides for quick searching of CMake options, and the ability to be accessed from MATLAB and GNU R. to have options with lists of defined options. The ccmake MATLAB (MATrix LABoratory) is a commercial software executable will still be available for command line use on product developed and sold by The MathWorks, Inc. MATLAB supported systems. programs are written in a scripting language called m, which There is a “--build” option for the cmake executable that can can be used interactively in a command line mode, or can be used to build any CMake build tree from the command be stored in script files as m-file functions for repeated runs. line, regardless of the generator used. A new External project MATLAB can also be extended by purchasing The Mathworks module can be used to create custom targets to drive down- produced add-ons called toolboxes, which are typically large load, update/patch, configure, build, install and test steps of collections of m-file scripts for a specific domain of technical an external project. interest, such as: control systems, signal processing, and sta- tistics. MATLAB also provides interfaces to access resources The new CMake has support for Visual Studio 2010. It also from external programs. has significant improvements for the Eclipse project gen- erator. All targets are now available in Eclipse and system GNU R is an open source program developed under the GNU include directories and predefined macros are now detected Project. GNU R is primarily used for statistics and graphing of for improved syntax highlighting. scientific data. GNU R uses a powerful object oriented script- ing language based on the S language for writing programs. CTest now runs many tests in parallel with a –j N command GNU R can also be extended through user contributed add-ons line option. A new CTest option, CTEST_USE_LAUNCHERS, called packages. In a similar fashion to MATLAB, GNU R also can be used to improve error and warning reports on CDash defines interfaces for accessing external programs. dashboards. CTest will determine the return value for each process launched during the build and “log scrapping” is not Integrating VTK with large program environments such as required to figure out errors and warnings. CTest can also GNU R and MATLAB involve trade-offs in terms of increased work with the new CDash sub-project feature and create memory usage and slower program execution speed. The hierarchical dashboards. Support for modern version control need to copy and convert data between the different envi- systems Git, Mercurial, and Bazaar were added. ronments, and the need to run interpreted script code instead of only compiled C++, all increase memory size and reduce CPack now has the option to use DESTDIR for any CMake the compute speed of integrated applications. This trade-off based projects giving more flexibility on final path names for is acceptable from the point of view of making the large installers. The Deb generator now computes the arch instead repository of technical computing code in MATLAB and GNU of hard coding it. R accessible from VTK and vice-versa. This integration allows Creating Fortran/C mixed language projects is easier. CMake VTK developers and users to quickly prototype algorithms, automatically computes the runtime libraries for a compiler analyze data, and visualize results without investing large and adds them to the link line. In addition, a FortranCInterface amounts of time implementing code in C++ that is already module determines the required name mangling. available in MATLAB and GNU R. Other enhancements include a faster makefile depen- MATLAB® INTEGRATION WITH VTK dency scanner, improved find modules, and support for MATLAB defines