Jacob Deppen and David Palmquist
July, 2023
<style> .reveal h1 { font-size: 2em; } .reveal h2 { font-size: 1.5em; } </style> <script> Reveal.initialize({ slideNumber: true }); </script>Thanks to Nisha and Mary for hosting and thank you for coming.
- Jacob Deppen,
deppen8
on GitHub - David Palmquist,
quist00
on GitHub
- Current maintainer team: Kimberly Meechan, Ulf Schiller, Robert Turner, Toby Hodges
- Content originally developed by Mark Meysenburg, Tessa Durham Brooks, Dominik Kutra, Constantin Pape, and Erin Becker.
- Many community members have opened issues and pull requests to improve the lesson.
Moved from "beta" to "stable" in January 2023.
- Images are everywhere.
- Image data is different to tabular / data frame data.
- Introduction to images in research.
- How images are represented by computers.
- Manipulating images using python and scikit-image library.
- Extracting data / statistics from images.
- Pixels
- Arrays
- Coordinates
- Channels
- Kernels
- Binary masks
- AI / Deep Learning
Lesson is a more "traditional" approach: easier to explain results, less data-intensive, applicable to more domains.
- Bash shell skills
- Navigating directories using
pwd
,ls
,cd <subdirectory>
, andcd ..
, Run a Python script from the command line.
- Navigating directories using
- Python skills
- Variables and types, lists, logic (
if
,else
, etc.), basic file input / output
- Variables and types, lists, logic (
- Data
- Download from FigShare
- Software
- Anaconda (base environment includes all required packages) and Jupyter Notebooks
- What research questions can we answer with image processing?
- Morphometrics, also known as "measuring things in images".
- What research areas do you expect your learners to come from?
- Are there particular challenges in working with image data in these areas?
- Representation of images in computers.
- Images, arrays and pixels.
- How RGB is used to make colour images.
- File formats and compression.
Image with pixel values overlaid
RGB Image |
Red channel |
Green channel |
Blue channel |
skimage
(scikit-image)- Do weird things with arrays (e.g.
skimage.transform.resize
).
- Do weird things with arrays (e.g.
numpy
- Conventional array stuff (e.g. sub-setting, find all values
> x
).
- Conventional array stuff (e.g. sub-setting, find all values
imageio
- Input + output; images are often not stored in
numpy
friendly formats.
- Input + output; images are often not stored in
The distribution of intensity of colour in an image can tell us things.
Plant Seedling |
Histogram |
Original |
Blurred |
Blurred grayscale |
Threshold applied |
Separating objects and getting information about them.
Labelled shapes
Areas histogram |
False positive objects |
- Properties of the shape of an object.
- skimage regionprops
- Basic e.g., area, perimeter, center
- More complex e.g., eccentricity, bounding box
- Morphometrics for bacterial colonies.
- Brings together blurring, thresholding, and connected component analysis.
- What imaging tools are people in your field using?
- How does that fit in with an open source image processing stack?