Skip to content
Jens Rittscher edited this page Jan 29, 2021 · 30 revisions

Biomedical Image Analysis Notebooks

This repository contains a collection of Phyton Jupiter notebooks that illustrate various core image analysis algorithms. These were developed as part of different lecture courses I have given. These notebooks are groups into sections that are listed below.

This is work in progress and all the acknowledgements still need to be included. Of course none of this would have been possible without the scikit-image libraries. Many of the examples here are just adopted from their documentation.

Thanks to the wonderful work other have done to develop Binder it is also possible to view an interactive version of these notebooks:

Binder

Alternatively, you can also use Google Colab to run these scripts. Open a new file I Colab and copy following command to clone the GitHub repository

!git clone https://github.com/engs1258/biomedical-image-analysis-notebooks/

Once you click not the orange folder icon on the left you see all the files in your local drive.

Google Colab Setup

Image data set

Introduction

Notebook Description
biomedia_intro_00_read_image Some basic code to read and display an image
biomedia_intro_01_dicom Code to read a basic DICOM image
biomedia_intro_02_image_contrast A demo on who to optimise image contrast
biomedia_intro_03_threshold Convert an image to a binary image - and figure out where this can fail.
biomedia_intro_04_erosion Example of the morphological erosion filter
biomedia_intro_05_dilation Example of the morphological dilation filter
biomedia_intro_06_opening Example of the morphological opening filter
biomedia_intro_07_closing Example of the morphological closing filter

Filtering

Notebook Description
biomedia_filters_00_fft Calculate magnitude and phase of Fourier transform
biomedia_filters_01_gaussian Filter image with Gaussian
biomedia_filters_02_median Filter image with Median
biomedia_filters_03_gradient Calculate partial derivatives and gradients in images
biomedia_filters_04_gaussian_pyramid Use the Gaussian pyramid to generate a multi-scale representation
biomedia_filters_05_laplacian_pyramid Use the Laplacian pyramid to generate a multi-scale representation

Feature Extraction

Notebook Description
biomedia_features_00_sobel Use a Sobel operator for detecting edges
biomedia_features_01_canny Use the Canny edge detector
biomedia_features_02_blobs Detecting blobs with a Mexican hat filter
biomedia_features_03_vessel_enhance Comparison of different vessel enhancement filters
biomedia_features_04_skeleton Extracting the skeleton from a binary image
biomedia_features_05_GLCM Gray value co-occurrence matrix as a feature descriptor
biomedia_features_06_feature_points Illustration for generating and matching key points

Segmentation

Notebook Description
biomedia_seg_00_label_image Extracting labelled components from an segmented image
biomedia_seg_01_otsu Otsu for global thresholding
biomedia_seg_02_connected_comp Connected components applied to binary image
biomedia_seg_03_watershed Watershed segmentation
biomedia_seg_04_kmeans K-means applied to image segmentation
biomedia_seg_05_superpixels SLIC super pixels applied to a histology image
biomedia_seg_06_normalised_cuts Using superpixels and normalised cut for image segmentation

Classification

Notebook Description
biomedia_classification_00_feature_extraction_test Test feature extraction method on a subset of images
biomedia_classification_01_generate_features Calculate features for the entire dataset
biomedia_classification_02_pca Using PCA to visualise the data set
biomedia_classification_03_gaussian_mixture Classifier based on Gaussian mixture model
biomedia_classification_04_logistic_regression Classifier based on logistic regression
biomedia_classification_05_svm Support vector machine classifier predicting class labels