NA-MIC, 2008 June Workshop, IHK Akademie Westerham KWWidgets Sebastien BARRE - Kitware, Inc.

Slides:



Advertisements
Similar presentations
Web 2.0 Programming 1 © Tongji University, Computer Science and Technology. Web Web Programming Technology 2012.
Advertisements

Doxygen. Links
Getting Started with ITK + VTK
ITK-Overview Insight Software Consortium. What is ITK Image Processing Segmentation Registration No Graphical User Interface (GUI) No Visualization.
Surgical Planning Laboratory -1- Brigham and Womens Hospital Slicer Tutorial 7 Saving Data Sonia Pujol, Ph.D. Randy Gollub, M.D.,
NA-MIC National Alliance for Medical Image Computing Slicer Tutorial Module: Segmentation May 26, 2005.
Pujol S, Gollub R -1- National Alliance for Medical Image Computing Stochastic Tractography Module Tri Ngo Slicer3 Training Compendium.
Slicer3 for developers – Sonia Pujol, Ph.D. -1- National Alliance for Medical Image Computing Programming into Slicer3 Sonia Pujol, Ph.D. Surgical Planning.
National Alliance for Medical Image Computing Slicer3 plugins: Going Further Common architecture for interactive and batch processing.
National Alliance for Medical Image Computing Slicer3 plugins Common architecture for interactive and batch processing.
-1- iGyne1.0 Tutorial Xiaojun Chen, Ph.D. and iGyne Team Surgical Planning Laboratory, Brigham and Women's Hospital, Harvard Medical School Surgical Planning.
NA-MIC National Alliance for Medical Image Computing © 2010, All Rights Reserved Diffusion Tensor Imaging Tutorial Sonia Pujol, Ph.D.
National Alliance for Medical Image Computing User Desktop Slicer 3.0 Architecure AlgorithmsITKVTK Slicer Modules VTK Apps Using ITK.
National Alliance for Medical Image Computing Slicer3 Architecture.
Slicer3 Training Compendium Pohl K, Konukoglu E, Fedorov A Measuring Volume Change in Tumors Kilian M. Pohl, Ph.D. Ender Konugolu, Ph.D. Andriy Fedorov,
Programming into Slicer3. Sonia Pujol, Ph.D., Harvard Medical School National Alliance for Medical Image Computing ©2010,ARR
Tokuda, J National Alliance for Medical Image Computing NA-MIC© 2010, ARR Connecting IGT Device with OpenIGTLink Junichi Tokuda, PhD Slicer3 Training Compendium.
National Alliance for Medical Image Computing © 2010, All Rights Reserved Sonia Pujol, PhD Slicer3Minute Tutorial Sonia.
Pohl K, Konukoglu E, Fedorov A National Alliance for Medical Image Computing NA-MIC© 2010, ARR Measuring Volume Change in Tumors Kilian M Pohl, PhD Ender.
National Alliance for Medical Image Computing © 2010, ARR Sonia Pujol, PhD Slicer3Minute Tutorial Slicer3 minute tutorial.
NA-MIC National Alliance for Medical Image Computing © 2010, All Rights Reserved Diffusion Tensor Imaging Tutorial Sonia Pujol, Ph.D.
NA-MIC National Alliance for Medical Image Computing National Alliance for Medical Image Computing: NAMIC Ron Kikinis, M.D.
The OWASP Foundation Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under.
Topics in Python Blackjack & TKinter
NA-MIC National Alliance for Medical Image Computing 3D Slicer Qt Port & qCTKWidgets Steve Pieper, Ph.D.
National Alliance for Medical Image Computing Slicer3 plugins Common architecture for interactive and batch processing.
National Alliance for Medical Image Computing Testing with CTest and CDash Julien Jomier Kitware Inc.
NA-MIC National Alliance for Medical Image Computing Connected Threshold Image Filter Salma Bengali, Alan Morris, Josh Cates, Rob.
NA-MIC National Alliance for Medical Image Computing CARMA Inhomogeneity Correction Filter Alan Morris, Eugene Kholmovski, Josh Cates,
Slicer4Minute Tutorial Sonia Pujol, Ph.D. Surgical Planning Laboratory Harvard Medical School Slicer4Minute - Sonia Pujol, Ph.D. NA-MIC ARR
NA-MIC National Alliance for Medical Image Computing 3D Slicer Version 4 Architecture and Status Steve Pieper, Ph.D.
NA-MIC National Alliance for Medical Image Computing 3D Slicer Interactive Modules Steve Pieper, PhD.
Slide 1 Visualization of scientific data under Linux - Techniques and data wrangling Mike Walterman, Manager of Graphics Programming, Scientific Computing.
National Alliance for Medical Image Computing User Desktop Slicer 3.0 Architecure AlgorithmsITKVTK Slicer Modules VTK Apps Using ITK.
NA-MIC National Alliance for Medical Image Computing Slicer4 Guided Tour Steve Pieper, Ph.D.
Doxygen: Source Code Documentation Generator John Tully.
Software Process, CMake, Dashboards, CPack Bill Hoffman Kitware, Inc.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering End-user Platform Steve Pieper Isomics, Inc.
NA-MIC National Alliance for Medical Image Computing IGT Software Design and Process Bill Lorensen GE Research.
NA-MIC National Alliance for Medical Image Computing NAMIC-Kit Update Will Schroeder Jim Miller Bill Lorensen.
© NIH National Center for Image-Guided Therapy, 2011 Tumor Segmentation from DCE-MRI with the SegmentCAD module Vivek Narayan, Jayender Jagadeesan Brigham.
NA-MIC National Alliance for Medical Image Computing NA-MIC Software Engineering Bill Lorensen GE Research NA-MIC Engineering Core PI.
NA-MIC National Alliance for Medical Image Computing Why NITRC Matters to NA-MIC Steve Pieper, PhD.
Edinburgh, January 25, 2005 VisIVO, a VO-Enabled tool for Scientific Visualization and Data Analysis: Overview and Demo 1. Ugo Becciani (OACt): Introduction.
NA-MIC National Alliance for Medical Image Computing NA-MIC Core 2 Update: Kitware Will Schroeder Kitware NA-MIC Core 2 PI NA-MIC Core.
Introduction to Web AppBuilder for ArcGIS: JavaScript Apps Made Easy
William Schroeder, Ph.D. §, Andy Cedilnik §, Sebastien Barré, Ph.D. §, William Lorensen ‡, James Miller, Ph.D. ‡, Daniel Blezek, Ph.D. ‡ § Kitware Inc.,
NA-MIC National Alliance for Medical Image Computing Sebastien BARRE, Ph.D. / NA-MIC Programmers’ Week 2005.
NA-MIC National Alliance for Medical Image Computing Slicer and ITK Raul San Jose.
NA-MIC, 2008 June Workshop, IHK Akademie Westerham VTK
NA-MIC National Alliance for Medical Image Computing VTK Widgets William J. Schroeder Kitware, Inc. June 2006.
Programming into Slicer3. Sonia Pujol, Ph.D., Harvard Medical School National Alliance for Medical Image Computing ©
9-Nov-97Tri-Ada '971 TASH An Alternative to the Windows API TRI-Ada ‘97 Terry J. Westley
NA-MIC National Alliance for Medical Image Computing Slicer 2010: Past, Present, and Future Steve Pieper, Ph.D.
Slicer 3 Ron Kikinis, Steve Pieper. CTK Workshop Heidelberg, June 29/30, 2009 Slicer Goals  Stable, Usable, Cross Platform, End-User Software for Medical.
1 ParaView Future, vision, …. 2 ParaView Architecture.
NA-MIC National Alliance for Medical Image Computing Non-Interactive Tools Stephen Aylward, Kitware
NA-MIC National Alliance for Medical Image Computing Slicer 2010: Past, Present, and Future Steve Pieper, Ph.D.
NA-MIC National Alliance for Medical Image Computing Slicer3 Update
National Alliance for Medical Image Computing User Desktop Slicer 3.0 Architecure AlgorithmsITKVTK Slicer Modules VTK Apps Using ITK.
OSSIM Technology Overview Mark Lucas. “Awesome” Open Source Software Image Map (OSSIM)
f3d Format for Storage of 3D Grids
Steve Pieper, PhD Raul San Jose, PhD Alex Yarmarkovich, PhD
Core 2 Progress Day 1 Salt Lake City
Slicer3 Architecture.
NA-MIC, 2008 June Workshop, IHK Akademie Westerham KWWidgets
Tumor Segmentation from DCE-MRI with OpenCAD
ASP.NET Imran Rashid CTO at ManiWeber Technologies.
Presentation transcript:

NA-MIC, 2008 June Workshop, IHK Akademie Westerham KWWidgets Sebastien BARRE - Kitware, Inc.

June 16-17, 2008NA-MIC, 2008 June Workshop, IHK Akademie Westerham2 2 What is KWWidgets? A GUI toolkit Cross-platform Open-license Free

June 16-17, 2008NA-MIC, 2008 June Workshop, IHK Akademie Westerham3 3 What is KWWidgets? (cont.) A GUI toolkit that provides low-level and high-level visualization- oriented widgets compatible with the VTK framework. vs.

June 16-17, 2008NA-MIC, 2008 June Workshop, IHK Akademie Westerham4 4 What is KWWidgets? (cont.) Over 150 C++ classes, Around 190,000 lines of code, 49 person years, roughly $5M at 100k per person (source: ohloh.org) Used extensively by Kitware to develop open-source and commercial end-user applications for more than 9 years Used extensively in Slicer3

June 16-17, 2008NA-MIC, 2008 June Workshop, IHK Akademie Westerham5 5 What is KWWidgets? (cont.) Cardiac segmentation and CT Volume Rendering in Slicer3, using data and segmentations from the collaboration with Boston Children's Hospital Pediatric Cardiology.

June 16-17, 2008NA-MIC, 2008 June Workshop, IHK Akademie Westerham6 6 What is KWWidgets? (cont.) VolView 3.0 (Work in Progress)

June 16-17, 2008NA-MIC, 2008 June Workshop, IHK Akademie Westerham7 7 Features Object-oriented C++ layer on top of Tcl/Tk Inherit from the VTK coding framework checkbutton.cb1.cb1 config -text "A checkbutton".cb1 deselect pack.cb1 vtkKWCheckButton *cb1 = vtkKWCheckButton::New(); cb1->SetParent(parent); cb1->Create(); cb1->SetText("A checkbutton"); cb1->DeSelect(); app->Script("pack %s", cb1->GetWidgetName());

June 16-17, 2008NA-MIC, 2008 June Workshop, IHK Akademie Westerham8 8 Features (cont.) Can interact and co-exist with Tcl/Tk directly from Tcl/Tk or Slicer3 Wrapped into a Tcl package just like VTK Fast-prototyping

June 16-17, 2008NA-MIC, 2008 June Workshop, IHK Akademie Westerham9 9 Features (cont.) vtkKWCheckButton *cb1 = vtkKWCheckButton::New(); cb1->SetParent(parent); cb1->Create(); cb1->SetText("A checkbutton"); cb1->DeSelect(); app->Script("pack %s", cb1->GetWidgetName()); package require kwwidgets vtkKWCheckButton cb1 cb1 SetParent $parent cb1 Create cb1 SetText "A checkbutton" cb1 DeSelect pack [cb1 GetWidgetName] … button.b -text "My Button" pack.b C++ vs. Tcl

June 16-17, 2008NA-MIC, 2008 June Workshop, IHK Akademie Westerham10NA-MIC, 2008 June Workshop, IHK Akademie Westerham10 Widgets overview Core widgets Composite widgets VTK widgets Helper classes

June 16-17, 2008NA-MIC, 2008 June Workshop, IHK Akademie Westerham11NA-MIC, 2008 June Workshop, IHK Akademie Westerham11 Widgets overview (cont.) Core widgets vtkKWCanvas vtkKWCheckButton vtkKWEntry vtkKWFrame vtkKWLabel vtkKWListBox vtkKWMenu vtkKWOptionMenu vtkKWPushButton vtkKWRadioButton vtkKWScale vtkKWScrollbar vtkKWText vtkKWThumbWheel vtkKWTopLevel vtkKWTree …

June 16-17, 2008NA-MIC, 2008 June Workshop, IHK Akademie Westerham12NA-MIC, 2008 June Workshop, IHK Akademie Westerham12 Widgets overview (cont.) Composite widgets vtkKWChangeColorButton vtkKWDialog vtkKWExtent vtkKWListBoxToListBoxSelectionEditor vtkKWHSVColorSelector vtkKWNotebook vtkKWProgressGauge vtkKWRange vtkKWSelectionFrame vtkKWSelectionFrameLayoutManager vtkKWSplashScreen vtkKWSplitFrame vtkKWTclInteractor vtkKWToolbar vtkKWToolbarSet vtkKWUserInterfaceManager vtkKWUserInterfacePanel vtkKWWidgetSet vtkKWWidgetWithScrollbars vtkKWWindow …

June 16-17, 2008NA-MIC, 2008 June Workshop, IHK Akademie Westerham13NA-MIC, 2008 June Workshop, IHK Akademie Westerham13 Widgets overview (cont.) … more composite widgets: divide and conquer

June 16-17, 2008NA-MIC, 2008 June Workshop, IHK Akademie Westerham14NA-MIC, 2008 June Workshop, IHK Akademie Westerham14 Widgets overview (cont.) VTK widgets vtkKWColorPresetSelector vtkKWColorTransferFunctionEditor vtkKWCornerAnnotationEditor vtkKWHeaderAnnotationEditor vtkKWPiecewiseFunctionEditor vtkKWRenderWidget vtkKWScalarBarAnnotation vtkKWScalarComponentSelectionWidget vtkKWTextPropertyEditor vtkKWVolumeMaterialPropertyWidget vtkKWVolumePropertyWidget …

June 16-17, 2008NA-MIC, 2008 June Workshop, IHK Akademie Westerham15NA-MIC, 2008 June Workshop, IHK Akademie Westerham15 Examples A simple image viewer using KWWidgets and VTK

June 16-17, 2008NA-MIC, 2008 June Workshop, IHK Akademie Westerham16NA-MIC, 2008 June Workshop, IHK Akademie Westerham16 Examples (cont.) package require kwwidgets vtkKWApplication app vtkKWWindowBase win app AddWindow win win Create vtkKWRenderWidget rw rw SetParent [win GetViewFrame] rw Create rw CornerAnnotationVisibilityOn pack [rw GetWidgetName] -side top -expand y -fill both \ -padx 0 -pady 0 vtkXMLImageDataReader reader reader SetFileName "head100x100x47.vti" vtkImageViewer2 viewer viewer SetRenderWindow [rw GetRenderWindow] viewer SetRenderer [rw GetRenderer] viewer SetInput [reader GetOutput] vtkRenderWindowInteractor iren viewer SetupInteractor iren rw ResetCamera set ca [rw GetCornerAnnotation] $ca SetImageActor [viewer GetImageActor] $ca SetWindowLevel [viewer GetWindowLevel] $ca SetText 2 " " $ca SetText 3 " \n " vtkKWScale slice_scale slice_scale SetParent [win GetViewFrame] slice_scale Create slice_scale SetRange \ [viewer GetWholeZMin] [viewer GetWholeZMax] slice_scale SetValue [viewer GetZSlice] slice_scale SetCommand "" \ {viewer SetZSlice [slice_scale GetValue] ; rw Render} pack [slice_scale GetWidgetName] -side top -expand n \ -fill x -padx 2 -pady 2 app Start rw Delete reader Delete viewer Delete iren Delete slice_scale Delete win Delete app Delete

June 16-17, 2008NA-MIC, 2008 June Workshop, IHK Akademie Westerham17NA-MIC, 2008 June Workshop, IHK Akademie Westerham17 Examples (cont.) KWWidgetsTour Show all widgets Provide Tcl vs. C++ vs. Python code comparison

June 16-17, 2008NA-MIC, 2008 June Workshop, IHK Akademie Westerham18NA-MIC, 2008 June Workshop, IHK Akademie Westerham18 KWWidgets in Slicer3 in Base/GUI (Load/Save, App Settings, Color, Data, Fiducials, Models, ROI, Slices, Transforms)

June 16-17, 2008NA-MIC, 2008 June Workshop, IHK Akademie Westerham19NA-MIC, 2008 June Workshop, IHK Akademie Westerham19 KWWidgets in Slicer3 (cont.) in C++ or Tcl modules slicerWiki: How to implement an Interactive Module GUIHow to implement an Interactive Module GUI

June 16-17, 2008NA-MIC, 2008 June Workshop, IHK Akademie Westerham20NA-MIC, 2008 June Workshop, IHK Akademie Westerham20 KWWidgets in Slicer3 (cont.) in Command Line Plugins slicerWiki: Execution Model Documentation UI and command-line generated from self-describing XMLExecution Model Documentation Filtering.Denoising Median Filter The MedianImageFilter is commonly used as a robust approach for noise reduction. This filter is particularly efficient against "salt-and-pepper" noise. In other words, it is robust to the presence of gray-level outliers. MedianImageFilter computes the value of each output pixel as the statistical median of the neighborhood of values around the corresponding input pixel $Revision: 2085 $(alpha) Bill Lorensen Median Filter Parameters Parameters for the median filter neighborhood --neighborhood The size of the neighborhood in each dimension Neighborhood Size 1,1,1 IO Input/output parameters inputVolume Input Volume input 0 Input volume to be filtered outputVolume Output Volume output 1 Output filtered

June 16-17, 2008NA-MIC, 2008 June Workshop, IHK Akademie Westerham21NA-MIC, 2008 June Workshop, IHK Akademie Westerham21 Resources Web & Wiki: API: Tutorial and examples available in the source: cvs –d co KWWidgets Dashboard: