How to Detect Image Manipulations Part IV: InspectJ and ImageJ

ImageJ is a public domain image-processing program developed under the auspices of the United States National Institutes of Health and especially popular among biologists. It was first published in 1997 and is designed to support a large range of image processing and analysis tasks and the detection of image manipulations in many different types of images, such as „three-dimensional live-cell imaging to radiological image processing, multiple imaging system data (and) comparisons to automated hematology systems.“ (Wikipedia: https://en.wikipedia.org/wiki/ImageJ)

 

One of its advantages is that ImageJ is able to read many different image file formats, such as TIFF, PNG, JPEG, BMP and many more. The program supports operations like edge detection, contrast manipulation, the measuring of distances and angles, sharpening, smoothing, rotation and many other (for more details see https://imagej.nih.gov/ij) and it allows the processing of stacks.

 

Downloading and installing the program and the associated InspectJ plugin is fairly simple. Just follow the instructions on the ImageJ website or watch one of the many tutorials on Youtube, for example a series provided by the Zentrum für Molekulare Biologie at Universität Heidelberg:

 

 

 

All you then have to do is to drag and drop an image for analysis onto the ImageJ tool bar in order to start the InspectJ plugin and follow the instructions of the program. ImageJ asks the user to decide whether an image has a dark or light background and then automatically produces an analysis image for each of the three RGB color schemes (green, blue, red). The user is free to decide which one of the layers should be analyzed – or whether all of the layers should be included in the analysis.

 

 

 

Fig. 1: Analysis images for each of the three RGB color schemes (red, blue, green) are generated. In this example most of the information appears to be found in the red and green schemes (the analysis of the blue scheme does not generate any useful results).

 

 

Once a layer for analysis is chosen, the program starts to process a set of predefined actions and a video sequence can be watched, which may reveal some of the otherwise hidden features of an image (for example edges).

 

 

Example: Gel Electrophoresis Analysis

 

For this evaluation, I chose an electrophoresis image that I retrieved from Wikimedia Commons (https://commons.wikimedia.org/wiki/File:Gel_electrophoresis_2.jpg).

 

This is the original (still unaltered) image:

 

 

 

 

Fig. 2: Gel electrophoresis: 6 “DNA-tracks”. In the first row (left), DNA with known fragment sizes was used as a reference. Different bands indicate different fragment sizes (the smaller, the faster it travels, the lower it is in the image); different intensities indicate different concentrations (the brighter, the more DNA). DNA was made visible using ethidium bromide and ultraviolet light.

Author: Mnolf, Innsbruck, Austria, 2006

 

Creative Commons Attribution-ShareAlike 3.0 Unported

https://creativecommons.org/licenses/by-sa/3.0/

 

 

For the purpose of testing I decided to copy and paste some areas of the bands and to erase some unwanted areas:

 

 

Fig. 3: Manipulated electrophoresis image.

 

 

Figure 4 specifies the details of the manipulations:

 

 

Fig. 4: Copied and pasted areas (rectangular shapes) and erased areas (oval shapes).

 

 

Here is a short video in which the subsequent steps of the analysis procedure are shown:

 

 

 

This is what the result of the analysis looks like once it is completed:

 

 

Fig. 5: Result of analysis (red color scheme): The ImageJ program with InspectJ plugin produces an analysis image with highlighted ROI’s (regions of interest), a log chart that presents the analysis results (in this case for example „identical areas“) and a ROI manager that allows to inspect each one of the results separately.

 

 

Discussion of results (Red Color Scheme):

 

The software specified regions of interest that are suspect of inappropriate image manipulation. The red color scheme analysis correctly reveals identical items at area 1 and 4 (with a 2-5 % tolerance setting) – which are actually those areas which were copied and moved, but it does not reveal the similarities between 1 and 3 or 3 and 4. Moreover, with a 10% tolerance setting it indicates a similarity between area 7 and 11, which was not part of the carried out manipulations.

 

 

 

Fig. 6: Result Analysis: Red Scheme

 

 

 

Fig. 7: Result Analysis: Green Scheme

 

 

Overview: Analysis results at different tolerance levels for the analysis of red and green color schemes:

 

Red Color Scheme Analysis:

 

Tolerance Level Results: Identical Items
0 0
2 1 & 4
5 1 & 4
10 1 & 4; 7 & 11

 

Green Color Scheme Analysis:

 

Tolerance Level Results: Identical Items
0 0
2 1 & 2; 1 & 3; 1 & 8; 2 & 3; 2 & 8; 3 & 8
5 Same as 2
10 Same as 2

 

 

 

 

Here is an example for how identical areas in an image are summarized in the log file:

 

 

Fig. 8: Log File for Red Scheme Analysis: Identical Items found at 1 & 4; 7 & 11.

 

 

Discussion:

 

This evaluation revealed how ImageJ helps with the identification of identical regions within an image. Still, some areas that have been highlighted in the process of analysis do not appear to be identical, but the program has found and indicated most of the copied regions – which might be due to inappropriate tolerance values.

 

It should be mentioned that the results of the green and red scheme analysis are not fully identical and that both of them have to be evaluated in order to derive a correct conclusion. Moreover, processing the JPEG image file with the InspectJ plugin indicated identical regions, but did not identify the erased areas (the oval forms, see Fig. 4). In one of the next blog posts, I am going to test the ImageJ solution for detecting erased areas.

 

 

More tools will be evaluated soon – please visit HEADT.EU for upcoming posts.

 

© HEADT CENTRE 2017