S O F T W a R E D E V E L O P E R ' S Q U a R T E R
Total Page:16
File Type:pdf, Size:1020Kb
SOFTWARE DEVELOPER’S QUARTERLY Issue 16• Jan 2011 Editor’s Note ........................................................................... 1 PARAVIEW 3.10 The ParaView team is gearing up for the next official release of ParaView, 3.10. Once released, the binaries will be avail- Recent Releases ..................................................................... 1 able for download on the ParaView download page: http:// paraview.org/paraview/resources/software.html. This release Medical Image Analysis with ITK on Apple iOS .................. 3 features notable developments, including mechanisms to incorporate advanced rendering techniques, improved Ultrasound and ITKv4 ........................................................... 6 support for readers and several usability enhancements and bug fixes. New Functionalities for Spherical Demons Registration .... 8 For the 3.10 release, we have refactored and vastly improved Adapting ITK Framework to Fit Parametric the VisIt-bridge plugin and several new file formats such as Image Models ...................................................................... 10 Silo, CGNS and Tecplot are now supported. Developers can also create ParaView reader plugins for VisIt readers. A Lightweight Image Comparison Library ........................ 13 With 3.10, we have included a Python-based calculator which makes it possible to write operations using Python. Using Kitware News ...................................................................... 15 the Python calculator, it is possible to use advanced functions such as gradients, curls and divergence easily in expression. There is also a new Eyedome Lighting (EDL), a non-photore- alistic shading technique designed at EDF (France) to improve depth perception in scientific visualization images (Figure 1). It relies on efficient post-processing passes implemented on Kitware is pleased to present this year's Insight Journal the GPU with GLSL shaders in order to achieve interactive special edition of the Source which features several of the rendering. Solely projected depth information is required strongest Insight Journal submissions from 2010. The Insight to compute the shading function, which is then applied to Journal was designed to provide a realistic support system the colored scene image. EDL can therefore be applied to for disseminating scientific research in the medical image any kind of data (isosurfaces, streamlines, point sprites, etc.), processing domain. Recognizing the need for a mechanism except those requiring transparency-based rendering. The whereby the medical image analysis community can collec- implementation of this technique opens the way to new tively share their ideas, code, data and results, Dr. Luis Ibàñez efficient post-processing effects in Paraview. has worked with the ISC and championed the open-science cause to make the Insight Journal a reality. By providing a platform for open-access scientific publica- tion, Kitware continues to foster its commitment to the open-science community. To continue celebrating this cause we annually publish this special Insight Journal Edition of the Source. Anyone may submit their work to the Insight Journal by registering, for free, at insight-journal.org; perhaps your work will be featured here next year! The Kitware Source is just one of a suite of products and services that Kitware offers to assist developers in getting the most out of its open-source products. Each project’s website contains links to free resources including mailing lists, documentation, FAQs and Wikis. In addition, Kitware supports its open-source projects with technical books, user’s guides, consulting services, support contracts and training Figure 1: An image produced on EDF physical simulation data courses. For more information on Kitware’s suite of products rendered with point sprites illustrates the effect of EDL (left) and services, please visit our website at www.kitware.com. compared to basic Phong shading (right). There should also be a marked performance improvement During this review of the toolkit, more explicit types were for users dealing with large multi-block datasets. We have introduced to represent the concepts of: cleaned up the rendering pipeline to better handle com- • IndexValueType: The component of the index that posite datasets, avoiding the appending of all blocks into a addresses a pixel in an image. single dataset as was done previously. • OffsetValueType: The difference between two such To better utilize multiple cores on modern mutli-core indexes. machines, by default ParaView can now run using a parallel • SizeValueType: The type used for counting number of server, even for the built-in mode. This enables the use of pixels or number of elements in an array. all the cores for parallel data processing, without requiring the user to start a parallel server. ParaView binaries will also With this modification, ITKv4 reaches another milestone to be distributed using an MPI implementation, making this provide support for the very large images that are becoming feature available to users by simply downloading the bina- the standard in fields such as microscopy, computer vision ries. Since this is an experimental feature, it is off by default, and remote sensing. but users can turn it on by checking the Auto-MPI checkbox in the application settings dialog. VTK 5.8 VTK 5.8 has had a major revamp of its wrapping infrastruc- For developers interested in adding support for advanced ture. The Python wrappers have been expanded to expose multi-pass rendering algorithms to ParaView, this release more of the C++ interface. Several special VTK types like includes a major refactoring of ParaView's rendering pipe- vtkVariant have been wrapped in Python, and the constants line. View and representations have been redesigned and defined in the header files are automatically wrapped. users should see improved performance in client-server Python method calls now support unicode strings, two- mode from reduced interprocess communication during dimensional arrays, pass-by-reference, default argument rendering. values, and typedef argument types. Additionally, the 3.10 release includes several usability enhancements. 3D View now supports smart context menus, accessed by right-clicking on any object in the 3D View to change its color, representation, color map and visibility. Left-clicking on an object in the 3D View makes it active in the pipeline browser. Within the spreadsheet view, sorting is now supported and an advanced parallel sorting algo- rithm ensures that none of the benefits of the spreadsheet view, such as streaming and selection, are sacrificed. Python tracing and macro controls are now exposed from the main menus, no longer hidden under the Python shell. For an exhaustive list of the new features and bug-fixes, please refer to the change log at: http://www.paraview.org/Bug/ changelog_page.php. CMAKE 2.8.4 The CMake version 2.8.4 release is scheduled for January 2011. The roadmap for bug fixes proposed to be included in the 2.8.4 release is at http://public.kitware.com/Bug/ roadmap_page.php. The change log for bugs that have already been fixed is at http://public.kitware.com/Bug/chan- gelog_page.php. Please try out the release candidates for CMake 2.8.4 to build your projects as they become available in January. Let us know on the CMake mailing list if you run into anything 2D histogram of the value of sin(x)*cos(y) with HSV color mapping unexpected. In addition, the code underlying the VTK wrapper-generators ITKV4 ALPHA-04 RELEASE has been revamped. It now includes a more-or-less complete In this alpha release of ITKv4, a large-scale revision of the C++ parser that no longer requires unwrappable sections of toolkit was made to replace the use of "long" and "unsigned the header files to be marked with BTX/ETX. The internal long" types with integer types suitable for addressing ele- data structures used by the wrapper generators have been ments of memory. expanded and cleaned up, so future enhancements of the wrappers will be much easier to achieve. The previous use of explicit "long" types in ITK was making it impossible to use images larger than 4GB in Windows The charts have been updated to make use of the 2D scene, 64bits platforms, since the "long" types in Windows 64bits with new text rendering and improved OpenGL render- only have a 32bits capacity, and therefore can only address ing routines. New chart types such as pie charts and 2D up to 4GB of memory. This problem does not exist in Linux histograms have been added. The scatter plot and parallel and Mac 64 bits platforms where "long" types are 64bits in coordinate plots can be colored by a scalar array, and mul- size. However, replacing "long" with "size_t" and its associ- tiple charts can now be rendered in the same scene. The old ated types prepares the toolkit for the larger number of bits Qt based charts have now been deprecated and are not built processors that we anticipate to have in the next decade. by default. 2 MEDICAL IMAGE ANALYSIS WITH ITK ON APPLE IOS Mobile computing devices are becoming increasingly impor- tant and prevalent. Apple’s mobile devices, the iPod touch, iPhone, and iPad, are notable examples. At the same time, ITK is becoming increasingly popular; implementing a large number of basic and advanced image processing, segmen- tation, and registration algorithms; and benefiting from a tremendous growth through open-source code contributed by leading research groups and individuals from around the Parallel coordinates plot world. The time is right to seriously explore the marriage of these two exciting parallel developments: ITK for medical VTK now also provides modern CMake Exports. Inclusion image analysis and iOS for mobile computing devices. of the VTKTargets.cmake file allows easy access to all VTK targets within your own projects that build against VTK. The ITK ON IOS UseVTK.cmake file has also been updated to automatically In the 2010 July-December issue of the Insight Journal [1] include VTKTargets.cmake. we were happy to share with the scientific community the detailed steps needed for building ITK on iOS and creating a basic ITK app on the iOS, which demonstrated successful basic integration.