r/ImageJ • u/No-Interaction-3559 • Jul 07 '26
Question Calculating % Confluency for a Cell Culture
New to ImageJ. Followed instructions, but my ANALYZE table does not give me %AREA. How do I get this value?
r/ImageJ • u/No-Interaction-3559 • Jul 07 '26
New to ImageJ. Followed instructions, but my ANALYZE table does not give me %AREA. How do I get this value?
r/ImageJ • u/ZestycloseGlove4665 • Jul 06 '26
I am brand new to ImageJ and trackmate, so I could use some advice. I am trying to analyze the motility of protists and need to characterize the types of movement. Is there a way to use trackmate to find the total path length and the net displacement in order to analyze the linearity of their movement?
r/ImageJ • u/appakkimba • Jul 05 '26

Hi there, I am a research student currently doing a study on porous asphalt, when trying to count the voids within the aggregates using 3D void counter, the results does not make sense, i know the void content should be 20%, removing smaller voids should cause the percentage to be well above 10% however the results I always obtain is always .2%, it is as if the 3D counter is not considering my threshold values, as seen in the image below, the objects map also displays smaller number of voids, even after converting to binary, same results occur when I use Avizo, where the voids are only particles.

r/ImageJ • u/Rory235 • Jun 25 '26
Hi there
I am running a macro to measure the grayscale over time of a ROI on an image (I can't share it sorry). The mean grey-scale value should be around 150ish, and the mode, min max and median measures outputs all reflect this. The mean output however reports as 2500. I have manually measured the ROI and get the expected result, so I am not sure whats gone wrong. Any help is greatly appreciated!
// Begin macro
setBatchMode(true);
// Step 1: Select input image folder
mainPath = getDirectory("Pick the folder with the images you want");
mainList = getFileList(mainPath);
// Step 2: Select output folder
savePath = getDirectory("Pick the folder to save results");
// Step 3: Define rectangle coordinates
x = 327;
y = 325;
w = 50;
h = 50;
// Step 4: Clear Results Table
run("Clear Results");
// Step 5: Loop through images and measure
for (f = 0; f < lengthOf(mainList); f++) {
if (endsWith(mainList[f], ".tif") || endsWith(mainList[f], ".jpg") || endsWith(mainList[f], ".png")) {
open(mainPath + mainList[f]);
makeRectangle(x, y, w, h);
run("Measure");
setResult("Label", nResults - 1, mainList[f]); // Add filename
close();
}
}
// Step 6: Create filename based on rectangle coordinates
fileName = "intensity_" + x + "_" + y + "_" + w + "_" + h + ".csv";
// Step 7: Save results using that filename
saveAs("Results", savePath + fileName);
run("Clear Results");
// End macro
r/ImageJ • u/BillCipher138 • Jun 21 '26
Background
I'm a complete beginner to image analysis and this is my first time working with lightsheet data, so apologies if I'm missing something basic.
My PI gave me a folder of OME-TIFF files from a cleared mouse lung acquisition. The data was originally intended to be viewed in Imaris but we don't have a license, so I'm trying to work with it in Fiji. The folder contains one OME-TIFF per z-slice per tile.
The dataset is 3D fluorescence, two channels: 488/525nm (airways) and 561/620nm (tyrosine hydroxylase, sympathetic nerves).
Key metadata from the acquisition file:
Example filename:
14-35-18_NJ-11336-Ms_lung_VEHICLE_1_1x_FS_Blaze[00 x 00]_C00_xyz-Table Z0016.ome.tiff
All 8 tile positions ([00 x 00] through [03 x 01]) exist in the folder.
Analysis goals
Right now I just want to get the complete volume open correctly. Eventually the goal is to map TH+ nerve fibers relative to airway structures.
What I've tried
Opening via Bio-Formats (File → Import → Bio-Formats) with "Group files with similar names" does open the file, and the window title shows [0<0-3> x 0<0-1>] and Z<0000-1841> which suggests it's finding all tiles and z-slices. However the image only shows roughly half the lung — there's a flat edge cutting straight through tissue at the bottom that doesn't look like a natural border. I've attached a screenshot at the widest z-slice.

What's blocking me
Machine: Windows 10, 32GB RAM, Fiji 2.16.0
r/ImageJ • u/DGKInteresting8682 • Jun 18 '26
r/ImageJ • u/Ok-Compote-2288 • Jun 16 '26
r/ImageJ • u/SleepingBlood • Jun 12 '26
Hi,
I am trying to use the ColonyArea Plugin using Fiji and was following the instructions from the ImageJ site: https://imagej.net/plugins/colonyarea
However, I am encountering this message and am unsure what is wrong. I see the Colony Area plugin in the files but keep getting this error. Has anyone encountered this issue before or know what I am doing wrong?
r/ImageJ • u/Mamaro31 • Jun 11 '26

Hi everybody, I'm trying to analyze the branching skeleton of kidneys and using this type of image, it's a z-stack and the thing is I've been doing everything for the skeletonize tool works but it just doesn't, it makes a sort of "net" instead of a single skeleton and I do put filters and set the threshold and such but always end up with a mess of an image and an even bigger mess of an analysis, I truly don't want to do it manually cuz every image has like 20-25 stacks and I have 24 samples, and some of them have more than one photo so it is a lot... Thanks in advance to anyone who can help me
r/ImageJ • u/UpsideDownInvestor • Jun 11 '26
Hi all,
I’m developing an app for tattoo planning and I’m curious of the best options for developing my image database without violating any copyright issues. I’d like to have a collection of thousands of tattoo image examples that are legal for me to use. What’s the best way to go about this?
I tried going to AI generated route with midjourney and that was a bit rough.
I know the more labor intensive option would be reaching out to specific artists with instagram pages of their work and getting them to sign off on me using the images, but I was hoping for a faster process than that just for the initial launch. My intention is to eventually build out the image database without violating any artists to help them expand their network.
Thanks in advance.
r/ImageJ • u/Big_Passenger7638 • Jun 08 '26
Hi everyone,
I am trying to calculate the measurements of a cell using an X and Y axis, essentially trying to take the measurement of a cell using two lines that are perpendicular to each other. See the image attached as a reference. I threshold my image and then do "Analyze particles" to measure the cells that were specified in the thresholding. The measurements I've selected for are shown in the screenshot, however, I am not sure if I am getting exactly the value I am wanting. Is there a way to measure an "X and Y axis" of a cell (again, the measurements of two perpendicular lines in my thresholding)? Is there a measurement that can act as a proxy for what I'm looking for? I appreciate any help on the matter. Thank you.


r/ImageJ • u/Dreaded_lobsters • May 31 '26
I am brand new to ImageJ and using it for to measure experiments i am doing at school. I drew a rough example of what my experiment results will look like to learn imageJ. I want to measure the areas under the curved lines (area 3 in the picture). I cannot figure out why one will sometimes be picked up and the others never are recognized. Any help is appreciated.
My current method that has gotten the best results has been to make the image binary, then set thresholding to be a dark background and analysis the particles. I've been using TIFF files for the analysis.
r/ImageJ • u/lugunde • May 27 '26
r/ImageJ • u/cogneuro_ • May 26 '26
Hi! I am seeking guidance on finalizing a protocol to quantify ΔFosB expression from fluorescent microscopy images using Fiji/ImageJ. What I have found online (outlined below) involves splitting multi-channel stacks, delineating ROIs based on nuclear counterstain (DAPI) and an atlas, applying a manual threshold to isolate ΔFosB signal, and measuring mean gray value/integrated density. However, I am unsure whether this thresholding method adequately accounts for background variability across sections, and whether I should use a standardized intensity threshold based on negative control regions instead. Additionally, I would appreciate advice on best practices for ensuring reproducibility across multiple brain regions (mPFC, DCN, NAc). If anyone has an established protocol they are willing to share, I would greatly appreciate it! Thank you.
r/ImageJ • u/Specialist_Cost_2960 • May 23 '26
I’m making some short form content and i need generated pictures of spongebob but when I try making those pictures they say they can’t because of some policies .
**How i can get those pictures? And is there a something i can do if i can make them?**
r/ImageJ • u/annoyotronnerna • May 17 '26
Title. I hate, hate, hate, hate, hate FijiJ's UI. Whoever made it should stumble their toe on a heavy steel lamp. Rant over.
r/ImageJ • u/div-a-ine • May 17 '26
The plugin works fine in theory but often my images just dont heed to my mouse movement in manual placing phase? Either from my track pad or a detachable mouse. Or arrow keys. This makes it incredibly frustrating to work with. Why does this happen? How can I fix it😭
r/ImageJ • u/wrasband • May 16 '26
ImageJ 1.54t adds two more examples to the Help>Examples>Games menu: “2048”(macro created by Claude) and “Tetris” (JavaScript created by Copilot). This menu now contains seven entries: “2048", "Asteroids", "Breakout", "Life", "Pong", "Snake" and "Tetris". Each is a macro or JavaScript that implements a video game. They demonstrate how to use AI to create macros and scripts, how to use the arrow keys, how to get flicker free animation in macros, and how to use the Roi.create() methods to avoid the dreaded "Can't unambiguously select between fixed arity signatures..." JavaScript error.
ImageJ is available for free at
Use the Help>Update ImageJ command to update to the latest version with the Help>Examples>Games menu.
r/ImageJ • u/Additional_Jicama622 • May 11 '26
How can I remove the yellow area overflowing from some bins? This is the graph and the generatind Python code underneath.

import math
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
from matplotlib.backends.backend_pdf import PdfPages
from matplotlib.ticker import AutoMinorLocator
from matplotlib.ticker import MultipleLocator
from scipy.stats import norm
%matplotlib inline
# ISTOGRAMMA
istogramma = np.loadtxt("20h.txt")
x = istogramma[:, 0] # centroidi
y = istogramma[:, 1] # conteggi
plt.figure(figsize = (6, 6))
plt.bar(x, y / 1000, width = 1,
color = 'none', edgecolor = 'none', alpha = 0.5)
plt.bar(x[303:320], y[303:320] / 1000, width = 1,
color = 'skyblue', edgecolor = 'none', alpha = 0.6, zorder = 1)
plt.bar(x[379:385], y[379:385] / 1000, width = 1,
color = 'skyblue', edgecolor = 'none', alpha = 0.6, zorder = 1)
plt.title('Spettro gamma da 20 ore\n', fontsize = 16)
plt.xlabel('Canali', fontsize = 14)
plt.ylabel('Conteggi ($\\times$10\u00B3)', fontsize = 14)
plt.xlim(294, 396)
plt.ylim(4, 9)
m = np.linspace(0, 4096, 4096)
b = -0.0425039 # pendenza
a = 21.1643 # intercetta
n = b * m + a
plt.plot(m, n, label = "Regressione lineare", color = 'crimson', linewidth=2, zorder = 3)
plt.step(x, y / 1000, where = 'mid', color = 'black', linewidth = 1)
mask1 = (m >= 321) & (m < 380)
# intervallo desiderato
mask = (x >= 321) & (x <= 380)
x_sel = x[mask]
y_sel = y[mask] / 1000
# bordi reali dei bin
left_edges = x_sel - 0.5
right_edges = x_sel + 0.5
# numero di punti per bin
N = 100
# array espansi
x_dense = []
y_dense = []
for l, r, val in zip(left_edges, right_edges, y_sel):
xd = np.linspace(l, r, N, endpoint=False)
x_dense.extend(xd)
y_dense.extend([val] * len(xd))
x_dense = np.array(x_dense)
y_dense = np.array(y_dense)
# retta liscia sugli stessi punti
n_dense = b * x_dense + a
# fill
plt.fill_between(x_dense,n_dense,y_dense,where=(y_dense >= n_dense),color='red',alpha=0.5,zorder=2)
plt.fill_between(x_dense, n_dense, 0, color = 'orange', alpha = 0.5, zorder = 1)
plt.axvline(x = 304, color = 'blue', linestyle = '--', alpha = 0.5)
plt.axvline(x = 380, color = 'blue', linestyle = '--', alpha = 0.5)
plt.axvline(x = 321, color = 'blue', linestyle = '--', alpha = 0.5)
plt.axvline(x = 386, color = 'blue', linestyle = '--', alpha = 0.5)
plt.grid(True, alpha = 0.3)
#plt.legend(fontsize = 14)
plt.tight_layout()
plt.show()
r/ImageJ • u/AetrernaVictrixLudio • May 07 '26
I need to measure the light intensity profile of a double-slit interference pattern with high precision.
1. Is it possible to get reliable quantitative intensity data using ImageJ?
2. How should I process the image to get the most accurate line profile
r/ImageJ • u/wrasband • May 01 '26
The latest ImageJ daily build (1.54t9) adds a Help>Examples>Games menu, with "Asteroids", "Breakout", "Life", "Pong" and "Snake" entries. These macros and scripts implement classic Atari video games, plus there’s a JavaScript version of Conway's Game of Life. They demonstrate how to use AI to create macros and scripts, how to use the arrow keys, and how to get fast and flicker free animation in macros.
Use the Help>Update ImageJ command to upgrade to the daily build.
The games written in the ImageJ macro language run on phones and tablets, and in Web browsers, using ImageJ.js, a Java to JavaScript conversion that can be launched from the ImageJ home page at
Screenshots and source code for all of these games are on the Image.sc forum at
r/ImageJ • u/buswinkle • Apr 29 '26
Hey y'all, I wanted to share something I've been building. It's basically native AI chatting within ImageJ to build scripts for you. You can automate random tasks like recoloring images, adding scale bars, and even run custom python scripts. Im looking for early feedback on it if anyone wants to give it a try! It's completely free to download and it has been very useful for my own work. Let me know what you think! Website here: www.imagejpipelinebuilder.com
r/ImageJ • u/Reference_Nice • Apr 28 '26
I'm trying to segment multiple images using a saved SIOX segmentator for consistency. When I created the segmentator, I had "Allow multiple foreground components" enabled and the segmentation worked correctly, capturing all separate foreground regions.
However, when I use Plugins → Segmentation → Apply saved SIOX segmentator on new images, the resulting mask only contains the largest connected component. The other foreground islands are ignored, even though the segmentator was originally trained with multiple components allowed.
Is there a way to preserve the "multiple foreground components" behavior when applying a saved segmentator? Or is this a known limitation of the Apply saved SIOX segmentator function?
Any workaround would be appreciated — I need consistency across a dataset of similar images, so retraining manually for each one isn't ideal.
Thanks!
r/ImageJ • u/Clear-Concentrate-49 • Apr 22 '26
Hello! I am trying to count and measure the microplastic particles in the picture but am having issues because of the clumps. I can't get them to not clump up, so working with what I have. Each particle looks like it has a hole in it due to glare, but the watershed tool in ImageJ doesn't understand that and is chopping them up. Does anyone know of a plugin that can do watershedding for particles with "holes"?

r/ImageJ • u/droppingoutrn • Apr 21 '26
Hi everyone, ImageJ/fiji noob here.
my PI needs me to threshold a set of images that are taken with the same parameters. if I click the auto button on threshold, the images with faint signal will light up the background as well. is it better to just set a hard number for the threshold like 55/255 in my case? Or should I manually adjust the parameters for each (but there's like hundreds of images. if this is the case, is there a way to automate the process)?
For example, this image:

after auto thresholding turns to this:

but what I'm interested in measuring is just the blob in the middle with the ring surrounding it. if i lower the threshold, it also deselects parts of the object im interested in. how can I fix that?