DMelt:Image/2 Image Manipulation with ImageJ

From HandWiki
Limitted access. First login to DataMelt member area if you are a full DataMelt member.


Introduction

The example below shows how to load an image and apply a filter. It also show how to access its internals. Look at the complete API of the IJ package IJ package.

from ij import *
from ij.process import *
from ij.measure import *

file="image.png"
# we open the file manually. Generate  ImagePlus object
imp = IJ.openImage(file)
print dir(imp) # check image manipulation methods

# display it
imp.show()
print imp.getWidth()

# do manipulations with the clone
imp.getProcessor().setThreshold(174, 174, ImageProcessor.NO_LUT_UPDATE)
IJ.run(imp,"Convert to Mask","")
IJ.run(imp,"Watershed", "")
imp.show()

# get all the pixels
pix = imp.getProcessor().getPixels()

Next we can perform a detailed analysis of images. For example, one can create a histogram:

from ij import *
imp = IJ.openImage("https://datamelt.org/data_local/img/dmelt1t.png")
IJ.run(imp, "Histogram", "")
stats = imp.getStatistics()
print stats.histogram

One can extract data from image and perform manipulation. Then a new modified array can be used to build a new image. Look at the example:

No access. To show this code, login to DataMelt member area

Edge detection of images

In this example, let's detect edges of the image of DMelt logo. Below we show 2 examples: one reads this logo using the URL, and the second example reads this logo from local file.

No access. Members can view this part after login to DataMelt member area

The output of these scripts is below:

DMelt example: Detect edges using imput image

Note that it makes sense to convert the image into back-white. Also, one can swap the colors.

Below we will consider other topics, such as

  • Creating an image from a text file
  • Obtain/View histogram and measurements from an image
  • Removing bleeding from one channel to another
  • Subtract the minimal value to an image
  • Extract a specific color channel for a given time frame
  • Visualize any number of TIFF stacks in a single composite multi-color image stack
  • Sort all points into a chain by distance to each other
  • Correct illumination in a stack: apply the illumination of one slice to all others
  • Add a mouse listener to the canvas of every open image
  • Add a key listener to the canvas of every open image
  • Create a virtual stack from the TIF files present in a folder
  • Open the slices of a very large multi-image stack file one by one, and save each as a new image file
  • Apply a binary mask to every slice in an image stack
No access. Members can view this part after login to DataMelt member area