Images are an important class of data in science or business. Tasks such as quantification of organ geometry in medical imaging, or construction of training sets and pipelines for machine learning models, typically rely on a combination of interactive user annotations and image processing algorithms. In this talk I will present several open-source Python packages for interactive image processing, and how to combine them for advanced applications.
Dash is an open-source framework for building interactive analytical web applications in pure Python (or R). It comes with a set of interactive components which are the bricks from which to build easily custom analytical applications, such as figures using the plotly visualization library, interactive data tables, dropdowns, sliders, etc. These components interact together thanks to callbacks fired when a component is modified. After a demo of how to build an application with Dash, I will show how to interact with image data within Dash for exploring image characteristics or annotating images with various kinds of shapes (from rectangular bounding-box selection to freehand-brush painting of objects).
In addition, Dash applications can make use of Python data-science packages in order to use advanced algorithms to process user-provided annotations. I will focus mostly on scikit-image, and briefly mention machine learning / deep learning tools as well. scikit-image is a popular library for processing 2D and 3D images as Numpy numerical arrays, with a focus on scientific imaging and pedagogical example-based documentation. I will show how to use scikit-image for various image processing tasks, from basic preprocessing (e.g. normalizing image geometry or exposure) to advanced object segmentation tasks. I will finally show how combining scikit-image and Dash can result in advanced image processing applications, which can be written quickly thanks to simple APIs and thorough documentation.