LabCanvas

CellProfiler vs QuPath vs ImageJ: which image analysis software should you use?

CellProfiler, QuPath or ImageJ/Fiji? A fair comparison by job (batch cell measurements, whole slides, general analysis), with a nuclei count step by step.

ImageJ 1.54f after counting the synthetic nuclei sample: 70 nuclei outlined in yellow and the Summary window with a count of 70, total area 2845.326 µm² and an average size of 40.648 µm²
ImageJ 1.54f after counting the synthetic nuclei sample: 70 nuclei outlined in yellow and the Summary window with a count of 70, total area 2845.326 µm² and an average size of 40.648 µm².
Contents

Use CellProfiler when you need the same per-cell measurements from hundreds or thousands of images (screens, plates, time courses) without clicking through each one. Use QuPath for whole slide images and tissue sections: it opens huge slides, detects and classifies cells across them, and keeps everything in a project. Use ImageJ or Fiji for everything else: single images and stacks, trying things out, measurements of any kind, materials science, and the widest range of plugins.

All three are free and open source, and they are not rivals so much as tools for different jobs. Many labs use two of them.

What you need to follow the example: ImageJ 1.x or Fiji, and an image of stained nuclei. The example is a synthetic nuclei image (512 × 512 pixels, 0.325 µm per pixel, 16-bit) with 70 nuclei by design, made for practice. Time: 5 minutes in ImageJ.

The decision table

ImageJ / FijiCellProfilerQuPath
Built forGeneral scientific image analysisMeasuring many images with one pipelineWhole slide images and tissue (digital pathology)
Typical userAnyone with an image to measureCell biologists, screening facilitiesPathologists, tissue biologists
Way of workingMenus on one image at a time; macros and scripts to repeatA pipeline of modules, tested on one image, then run on allA project of slides; detect, classify, measure, script in Groovy
Batch processingWith a macro or scriptBuilt in: its main purposeBuilt in: run a script on every image in the project
Whole slide imagesPossible with plugins, not its strengthNot its focusIts core: pyramidal slides open and pan smoothly
Cell detectionThreshold, watershed, Analyze Particles; StarDist, Cellpose and others as pluginsIdentifyPrimaryObjects (nuclei) and IdentifySecondaryObjects (cells); Cellpose as a pluginBuilt-in nucleus detection with cell expansion; StarDist as an extension
Machine learningTrainable Weka Segmentation, Labkit (Fiji)CellProfiler Analyst for classifying cellsInteractive pixel and object classifiers
Beyond cellsEverything: materials, gels, particles, 3D, trackingMostly cells and cell-based assaysMostly tissue
Written inJavaPythonJava
PriceFree (ImageJ public domain; Fiji open source)Free, open sourceFree, open source (GPLv3)
Paper to citeSchneider et al. 2012 (ImageJ), Schindelin et al. 2012 (Fiji)Stirling et al. 2021 (CellProfiler 4)Bankhead et al. 2017

Pick this if…

  • You have one to a few dozen images, or you are still working out how to analyse them: ImageJ or Fiji. Every step is visible and reversible, and the menus cover almost any measurement.
  • You have a plate, a screen, or the same assay every week: CellProfiler. Building the pipeline takes an afternoon; after that, a thousand images cost no more effort than ten, and the pipeline file is your method.
  • You have whole slide scans (.svs, .ndpi, .mrxs and others) or tissue microarrays: QuPath. It is built for slides that are too large to open in ImageJ as one image.
  • Your cells are crowded, irregular or unstained: whichever you pick, add a deep-learning segmenter (StarDist or Cellpose). All three can use them, through plugins or extensions.
  • You work on materials, particles, gels or anything that is not a cell: ImageJ or Fiji. CellProfiler and QuPath are built around cells and tissue.

The same job in ImageJ: count the nuclei, step by step

Here is the job all three can do, counting nuclei, done in ImageJ with a picture for every step. The commands are the same in plain ImageJ and in Fiji.

Step 1: Open the image

Click File › Open… and choose the TIFF. The line above the image shows 166.40x166.40 microns (512x512); 16-bit: the scale (0.325 µm per pixel) came with the file, so areas will be in µm².

ImageJ with the synthetic nuclei image open, its size shown in microns
Step 1 in ImageJ 1.54f: the synthetic nuclei image open display contrast stretched to see the dim nuclei. The line above it gives the size in microns 1, so the scale is already set.

Step 2: Convert to 8-bit

Click Image › Type › 8-bit. For counting, 8-bit is enough and keeps the threshold simple. Measure intensities on the original 16-bit file, not on this copy.

ImageJ nuclei image after conversion to 8-bit
Step 2: Image › Type › 8-bit. The line above the image now reads 8-bit 1.

Step 3: Threshold the nuclei

Click Image › Adjust › Threshold…. Choose Otsu, tick Dark background (bright nuclei on a dark background), and check that every nucleus is red. ImageJ sets 96–255 here. Click Apply: the image becomes a black-and-white mask.

ImageJ Threshold window with Otsu and Dark background, nuclei in red
Step 3: Image › Adjust › Threshold with Otsu 1 and Dark background ticked 2; the nuclei are red, 10.28% of the image, range 96–255. Click Apply 3.

Step 4: Fill holes and split touching nuclei

Click Process › Binary › Fill Holes, then Process › Binary › Watershed. Watershed cuts touching round objects apart with a one-pixel line, so a pair of touching nuclei counts as two.

ImageJ binary mask of the nuclei after Fill Holes and Watershed
Step 4: the mask after Process › Binary › Fill Holes and Watershed: white nuclei on black, touching ones separated 1.

Step 5: Analyze Particles

Click Analyze › Analyze Particles…. Type 7-Infinity in Size (micron^2) to drop specks smaller than a fifth of a typical nucleus, choose Show: Outlines, tick Display results, Clear results and Summarize, and click OK.

ImageJ Analyze Particles dialog with size 7 to Infinity and Summarize ticked
Step 5: Analyze › Analyze Particles with Size 7-Infinity µm² 1, Display results, Clear results and Summarize ticked 2, and Show: Outlines 3.

Step 6: Read the count

The Summary window gives the answer: Count 70, Total Area 2845.326 µm², Average Size 40.648 µm², %Area 10.276. The sample has 70 nuclei by design, so the count is right. Lay the outlines over the image to check that no pair was merged and no nucleus split.

ImageJ Summary window counting 70 nuclei, with the outlines over the image
Step 6: the 70 nuclei outlined on the original, and the Summary: Count 70 1, Average Size 40.648 µm² 2, 10.276% of the area.

That is the whole job in ImageJ: six steps, about five minutes the first time. For one image, nothing is faster. For 500 images you would record these steps as a macro (Plugins › Macros › Record…) and run it in Process › Batch › Macro…, which is where CellProfiler starts to make more sense.

The same job in CellProfiler

We could not run CellProfiler for this guide, so here are the steps in text, from the CellProfiler module documentation and example pipelines. CellProfiler works on a pipeline: a list of modules that every image goes through.

  1. Load the images. Drag the image files (or a whole folder) onto the Images module. The input modules (Images, Metadata, NamesAndTypes, Groups) are always at the top of the pipeline.
  2. Name the channel. In NamesAndTypes, give the nuclear channel a name, for example DNA.
  3. Find the nuclei. Add IdentifyPrimaryObjects: input image DNA, output objects Nuclei. Set Typical diameter of objects, in pixel units (Min,Max) (about 10 to 40 pixels for this sample, whose nuclei are around 22 pixels across), whether to discard objects outside that range and objects touching the border, the threshold (strategy Global, method Otsu or Minimum Cross-Entropy), and how to split clumped objects (by shape or by intensity).
  4. Measure and export. Add MeasureObjectSizeShape for the nuclei and ExportToSpreadsheet for the tables.
  5. Test, then run. Start Test Mode runs the pipeline on one image and shows the outlines at each step, so you can tune the diameter and threshold. Then Analyze Images runs it on every image; the count is a column in the per-image table.

CellProfiler takes longer than ImageJ for one image and much less time for a thousand. The pipeline file (.cppipe) records every setting, which is a good methods record in itself.

The same job in QuPath

QuPath was not run here either; these are the steps from its documentation and workshop material. QuPath works in projects of images.

  1. Create a project (Create project and choose an empty folder), then Add images. When asked, set the image type to Fluorescence.
  2. Choose the region. Draw an annotation around the area to analyse, or create an annotation covering the whole image.
  3. Detect the nuclei. Analyze › Cell detection › Cell detection…: choose the nuclear Detection channel, set the Requested pixel size, Background radius, Sigma, Minimum area and Maximum area, the intensity Threshold (raise it if objects appear in the background), keep Split by shape ticked to separate touching nuclei, and set Cell expansion (0 if you want nuclei only; by default QuPath grows a cell boundary a few µm around each nucleus). Click Run.
  4. Read the count. The number of detections appears in the annotation's measurements; Measure › Show detection measurements lists every nucleus with its area and intensities.

For a slide with a million cells, QuPath does this across the whole section; it then lets you train a classifier for positive and negative cells, which is where it shines.

What each one is not good at

Fair comparisons name the weak points too.

  • ImageJ/Fiji: repeating an analysis on many images needs a macro; whole slide images are awkward; the menus do not record what you did unless you turn on the recorder; results from one image at a time.
  • CellProfiler: slower to get going on one image; less suited to exploring or measuring unusual things (a gel, a grain boundary, a line profile); whole slide images are not its focus.
  • QuPath: built around tissue and slides; for a plate of cultured cells or a materials image, CellProfiler or ImageJ is the more natural fit.

Pitfalls whichever you choose

  • Different software, different numbers. Thresholds, filters and splitting differ, so the same image gives slightly different counts and areas. Pick one tool per study and report its settings.
  • Check against your eyes. Count three to five fields by hand and compare before you trust any automatic count.
  • Tune on representative images. A pipeline tuned on your best image fails on your worst one. Tune on a few from each condition.
  • Measure intensities on raw data. In any of the three, measure the original 16-bit image, not an 8-bit or adjusted copy.
  • Cite the right paper and the version. Each project asks you to cite its paper (see the references).

Reporting it

Nuclei were counted in [ImageJ 1.54f / Fiji] ([Otsu] threshold, Fill Holes, Watershed, Analyze Particles with a minimum area of [7 µm²]) on [n] fields per condition at [0.325] µm per pixel.

Or, for the others: "…using a CellProfiler [version] pipeline (IdentifyPrimaryObjects, typical diameter [10–40] pixels, [Otsu] global threshold, declumping by shape); the pipeline file is provided as Supplementary File [1]" or "…using QuPath [version] cell detection on the DAPI channel (threshold [x], cell expansion [0] µm)". Cite Schneider et al. 2012 or Schindelin et al. 2012, Stirling et al. 2021, or Bankhead et al. 2017 accordingly.

Switch to LabCanvas: when you want the count without installing anything

LabCanvas Image Analysis sits beside these three: it runs in the browser, uses ImageJ's names, and gives the count in one click.

  1. Click Open an image and choose your TIFF (or click the nuclei sample on the start screen).
  2. Go to the Count tab.
  3. Click Find nuclei (Otsu, fill holes, watershed and a minimum size in one click), or set them yourself in Count particles and click Count.
  4. Read the Summary row and click Send to Graphs to compare conditions.
Counting nuclei in LabCanvas Image Analysis
Counting nuclei: 70 nuclei counted Otsu threshold, watershed to split touching ones: mean area 40.47 µm², 10.2% of the field.

On the same synthetic image, Find nuclei counts 70 nuclei (mean area 40.47 µm², 10.2% of the field); ImageJ above counts 70 with an average of 40.648 µm². The areas differ slightly because the outlines are traced with slightly different settings.

Why switch for a quick count:

  • No install, no plugins: it runs on any computer or tablet, including ones where you cannot install software.
  • Guided instead of a pipeline or macro: the count, the outlines and the Summary in one panel, with Batch for a folder of images.
  • Straight to Graphs with a methods sentence, and every measurement validated in more than 4,000 automated tests.

For whole slide images, use QuPath; for screens of thousands of images and deep-learning segmentation, CellProfiler or Fiji; for maker formats such as .czi or .nd2, Fiji (LabCanvas needs them as TIFF first).

Open Image Analysis: free with a LabCanvas account (downloading files is part of LabCanvas Pro). ImageJ and Fiji are independent open-source projects; LabCanvas is not affiliated with them, nor with CellProfiler or QuPath.

References

  • Bankhead P, Loughrey MB, Fernández JA, Dombrowski Y, McArt DG, Dunne PD, et al. (2017). QuPath: open source software for digital pathology image analysis. Scientific Reports 7, 16878. doi:10.1038/s41598-017-17204-5
  • Schindelin J, Arganda-Carreras I, Frise E, et al. (2012). Fiji: an open-source platform for biological-image analysis. Nature Methods 9, 676–682. doi:10.1038/nmeth.2019
  • Schneider CA, Rasband WS, Eliceiri KW (2012). NIH Image to ImageJ: 25 years of image analysis. Nature Methods 9, 671–675. doi:10.1038/nmeth.2089
  • Stirling DR, Swain-Bowden MJ, Lucas AM, Carpenter AE, Cimini BA, Goodman A (2021). CellProfiler 4: improvements in speed, utility and usability. BMC Bioinformatics 22, 433. doi:10.1186/s12859-021-04344-9

Frequently asked questions

Is CellProfiler better than ImageJ?

For measuring thousands of images the same way, usually yes: CellProfiler is built around pipelines of modules that run unattended on whole plates and give per-cell measurements. For exploring a few images, trying different approaches, or work outside cell biology, ImageJ or Fiji is more flexible. Many labs use both.

What is the difference between QuPath and ImageJ?

QuPath is built for whole slide images and tissue: it opens multi-gigapixel slides, organises them in projects, and detects and classifies cells across a whole section. ImageJ is a general-purpose image analysis program for single images and stacks. For histology slides, QuPath is usually the better start; for everything else, ImageJ or Fiji.

What is the best software for cell image analysis?

It depends on the job. For high-throughput per-cell measurements, CellProfiler; for whole slide images and tissue sections, QuPath; for general analysis, single images, stacks and anything unusual, Fiji. For crowded or irregular cells, add a deep-learning segmenter such as StarDist or Cellpose, which plug into all three.

Are CellProfiler, QuPath and ImageJ free?

Yes. All three are free and open source. ImageJ 1.x is public domain; Fiji bundles it with plugins; QuPath is released under the GPLv3; CellProfiler is open source from the Broad Institute.

Do I need to know programming to use them?

No for the basics. CellProfiler pipelines are built from modules with a point-and-click interface, QuPath has menus and dialogs for cell detection and classification, and ImageJ has menus for everything shown in this guide. Scripting (ImageJ macros, Groovy in QuPath, Python with CellProfiler) helps for automation.

Is there a simpler option that runs in the browser?

Yes: LabCanvas Image Analysis runs in the browser with ImageJ-style tools and guided assays; see the last section of this guide.

CellProfiler vs ImageJQuPath vs ImageJbest cell image analysis softwareCellProfilerQuPathFijiImageJnuclei countingdigital pathologyhigh-content screeningbioimage analysis software

Try it in LabCanvas

Every app is free to start in your browser. Create an account and begin.

Start Image Analysis free in your browser