NERSCPowering Scientific Discovery Since 1974

Image Analysis and Recognition


Fibers permeating imaged material (Courtesy: Bale, Loring, Perciano and Ushizima)

Imagery coming from high resolution, high-throughput sensors is a fundamental challenge for data-intensive science. Our focus has been on supporting image-analysis software, understanding experimental scientist needs and often times designing algorithms to efficiently deal with imaged-based experiments, getting the most of NERSC infrastructure. Advances in image-based analysis will save time between experiments, make efficient use of samples, and increase access to imaging instruments. 

While we list several user-cases, how can a user get started at creating their own analysis pipelines? This page aims at kick-starting the users in using several of the available tools for understanding data at NERSC. The current topics will show toolkits for image processing and analysis and will cover common computer codes needed to perform image analysis and recognition using ImageJ and R.

Templates for Image Processing, Analysis, and Classification

    1. Reading 2D to multidimensional images and visualizing/snapshotting content: [R] [Fiji]
    2. Summarizing large image datasets for exploratory visualization - mosaicing and video generation: [R] [Fiji]
    3. Checking image attributes, metadata, pixel depth, and other valuable parameters: [R] [Fiji]
    4. Enhancing image properties with filters: [R] [Fiji]
    5. Extracting edge maps and use in image segmentation: [R] [Fiji]
    6. Creating coarser representations - quantization and super-pixels: [R] [Fiji]
    7. Region-based segmentation: [R] [Fiji]
    8. Calculating features from regions of interest: [R] [Fiji]
    9. Understanding how the features layout the data - clustering: [R] [Fiji]
    10. Using machine learning to label unseen images - classification: [R] [Fiji]

Other resources:


Fiji examples

  Open one image: inputdir = "/global/scratch2/sd/youname/";open(inputdir + "myExperiment001.tif"); Reading a collection of 2D images: numberfiles=38; filename = "myExperiment"; startfile=1;run("Image Sequence...", "open=["+inputdir+"] number="+numberfiles+" starting="+startfile+" increment=1 scale=100 file="+filename+" or=[] convert sort"); Visualizing/snapshotting content: run("Make Montage...", "columns=9 rows=7 scale=0.25 first=1 last=57 increment=1 border=0 font=12 label use");… Read More »

R Examples

  Reading Images Load package ripa: > library(ripa) Read a jpeg image: > img <- readJPEG('/global/scratch2/sd/youname/cells.jpg') Read a png image: > img <- readPNG('/global/scratch2/sd/youname/'cells.png) Visualize jpeg and png images: > plot(imagematrix(img))   View from command line View from RIPA interface    Read and visualize LAN (Landsat) images: > lan_img <- read.lan('/global/scratch2/sd/youname/rio.lan') > plot(imagematrix(lan_img))   View from… Read More »