该插件在斐济的图像(2D/3D/多色/时间)上安装并运行cellpose。 有两个版本的 cellpose 可用:
- Cellpose(v3,doi:10.1038/s41592-025-02595-5)
- Cellpose-SAM(v4,doi:10.1101/2025.04.28.651001)
该插件基于Appose,自动安装python环境并允许使用与Fiji共享的对象执行python脚本。

安装
您可以安装取消列表更新站点的插件Appose-Playground:
- 在斐济,转到
Help>Update... - 如果建议更新,强烈建议应用它们并重新启动斐济,然后再继续
- 在打开的窗口中选择
Manage Update Sites - 搜索
Fiji-Cellpose并选择它。点击Apply and Close - 它将安装/更新两个 jar 文件:
Cellpose_Appose和imglib2-cellpose - 完成后按
Apply changes并重新启动Fiji
You should have a recent version of Fiji, based on Java 21 or more. Download a new version here (Latest downloads column) if you’re current installation is too old.
用法
该插件处理 2D 或 3D 图像或电影,包含或不包含多个通道。它也可以具有时间维度。首先打开图像,然后运行插件。如果您在启动插件时打开了多个图像,它将在活动的图像上运行。
从斐济出发:
- 打开您要处理的图像。
- 启动插件中可用的 cellpose 版本之一:
- 通过图形界面配置您的 Cellpose 运行。 参见 here 文档
- 按“确定”并享受!
或者,您可以使用斐济宏中的插件,它允许您在多个图像上自动运行它或将其集成到更大的管道中。有关详细信息,请参阅here。
The first time you run each option of this plugin, a python environment with the requested Cellpose version will be automatically installed in your home .local\shared\appose directory, which will take some time. The next time you use the same option, the environment will be directly activated from the plugin when needed so it will be much faster.
Cellpose-SAM relies on a much bigger neural network than Cellpose3. Thus computation with this version takes longer and it is advised to have a GPU available.
对于电影
如果图像是电影,则将按顺序处理时间点。 因此,每个时间点生成的标签都是唯一的(一个标签=一个对象),但不是跨时间点:您可以在多个时间点具有相同的标签,但它不是相同的单元格/对象。
如果您希望在不同时间点对同一对象具有相同的标签,则必须使用此分割图像执行跟踪。 您可以使用 TrackMate 来跟踪分割后的标签。
## 参数
选择 Cellpose 的版本后,会弹出图形界面,让您选择运行 cellpose 的参数。有关参数的完整说明,请参阅 Cellpose documentation。
If you put your mouse pointer above a parameter, a small text indicating the parameter meaning appears. More details are given for each parameter in the following.
细胞姿态参数
-
Cellpose model:从 Cellpose 网站选择预训练模型。这些模型已经在具有特定生物对象的数据集上进行了训练,例如nuclei模型的细胞核。选择最适合您的数据的模型。 -
Path to custom model:如果您已经微调或训练了自己的 cellpose 模型,请在此处写入包含模型文件的目录的完整路径。 -
Diameter:预测对要检测的对象的大小敏感,因此您需要指示对象(细胞或细胞核)的平均直径(以像素为单位)。此参数强烈影响 Cellpose v3 的分割结果,而 Cellpose-SAM 可以处理更大范围的对象尺寸。 Cellpose 将调整您的图像大小,使其平均对象大小与训练数据之一兼容(大多数模型为 30 像素),并将结果大小调整回您的初始图像大小。
⚙默认值为 30 像素。 Channel selection:选择图像上要进行分割的颜色通道(包含对象的染色)。要选择的频道编号与 Fiji 界面中的相同,第一个频道从 1 开始。- 对于 Cellpose 3:您可以选择一个或两个通道,一个用于分割主要对象 (
Cytoplasmic channel),另一个可选通道用于细胞核染色 (Nuclei chanel)。当您进行两种染色时,同时选择细胞核通道可以通过提供更多信息来帮助分割细胞轮廓。 - 对于 Cellpose-SAM:Cellpose-SAM 可以使用最多 3 个通道的信息来分割对象。因此,请选择与细分您感兴趣的对象相关的通道数量。
- 对于 Cellpose 3:您可以选择一个或两个通道,一个用于分割主要对象 (
-
Minimum Object Size:在分割过程结束时,此参数中尺寸较小(总面积以像素为单位)的对象将被删除。这可以消除仅几个像素的小错误分割。
⚙默认值为 15 像素^2。 -
Normalize Channel Intensity:是否使用 Cellpose 的标准化。归一化允许将图像置于与训练所用像素值相同的范围内,以获得更好的结果。建议这样做,除非您之前执行过自己的标准化。
⚙默认为 True(选中)。 -
Resample Segmentation:当对象尺寸大于模型尺寸(通常为 30 像素,请参阅diameter参数)时,这允许获得更准确的边界,但计算速度会较慢。事实上,当选择此选项时,“动态”,即特定于 cellpose 的后处理,以从网络的输出重建细胞,将以原始图像大小(然后以全分辨率)运行。如果未选中,这些“动态”将在调整大小的图像上运行,如果您的diameter参数大于 30 像素,则图像会更小。
⚙ 默认值为 True(选中). return ROIs(不适用于 3D 图像):您获得的默认输出(分割)是标签图像:每个对象都分配有一个唯一的标识(标签),以不同的颜色显示。如果选中此选项,您还将为每个对象添加一个感兴趣区域,并将其添加到 ROIManager 中。
⚙默认未选择
高级选项参数
-
Cell probability threshold:Cellpose 运行神经网络来预测像素成为对象一部分的概率以及从该像素到该对象中心的方向(流)。该阈值允许调整在最终分割中保留哪些像素:增加阈值将减小检测到的对象的大小,仅保留最可能的像素,而减小阈值则可以找到更大和更多的对象。
⚙ 该参数范围为-6到6,默认为0。 -
Flows threshold(不适用于 3D 图像):Cellpose 运行神经网络来预测像素成为对象一部分的概率以及从该像素到该对象中心的方向(流)。计算分割掩模和计算流之间的误差,并且误差小于阈值的像素将被保留。因此,增加此阈值将增加保留对象的大小/数量,并且还允许不太规则的形状。
⚙ 该参数范围为0到1,默认为0.4。 -
Tile overlap:Cellpose 将输入图像划分为 (256*256) 的图块,并计算每个图块中的神经网络,然后将结果放回一起。相邻图块之间的小重叠允许很好地重建边界上的单元。
⚙ 这个参数范围从0(无重叠)到1(完全重叠,没有意义)。默认值为 0.1(10% 重叠). -
Compute flows:Cellpose 运行神经网络来预测像素成为对象一部分的概率以及从该像素到该对象中心的方向(流)。默认情况下,您只能获得使用分配给每个细胞的标签分割的细胞的结果图像。选中此选项还可以获取流图像作为结果。例如,这对于更改后处理步骤可能很有用。
⚙ 默认情况下未选择。 -
Iterations:根据流计算细胞形状时由 Cellpose 计算的迭代次数(Cellpose 中的niter参数)。如果该值设置为None(界面中为0),Cellpose将根据细胞直径自动计算。增加它以检测细长物体。
⚙ 0 默认(无,自动计算).
3D 选项
仅当图像是 3D 堆栈(包含超过 1 个切片)时才可以修改这些选项。
If your image should be 3D but is not detected as such (the 3D parameters cannot be modified), check that the metadata are correct: go to Image>Properties... and check that the number of slices is more than 1. If you have several frames and only 1 slice and the image should be 3D instead of temporal, exchange the values of number of slices and of frames and click Ok.
-
Mode 3D:为了在 3D 中分割细胞,Cellpose 提出了 2 种方法。第一个选项2D+stitch是计算每个 2D 切片中的分割,然后通过跨切片链接可能的相同细胞来重建 3D 细胞。第二个选项3D并未真正在 2D 中运行:Cellpose 将以x,y方向、x,z、然后y,z方向在图像上运行。然后,将通过结合每个方向计算的流量来重建 3D 结果。 -
Stitch threshold(2D+缝合模式):如果您选择了2D+stitch选项,Cellpose 将预测每个 2D 切片中的细胞,然后通过将连续切片之间足够重叠的细胞链接在一起来重建 3D 细胞。此阈值控制连续切片中的单元格数量应重叠(并集分数的交集)。如果输入 0,单元格将不会从一个切片链接到另一切片。如果为 1,则仅当从一个切片到下一个切片完全相同时,单元格才会被链接为同一单元格。降低此阈值可以将更多单元连接在一起。
⚙ 此参数范围从0(无重叠)到1(完全重叠:单元格完全相同)。默认值为 0.0(无 3D 重建). -
Flow 3d smooth(3D 模式):如果您选择了3D mode选项,则此参数允许平滑 3D 中由 cellpose 计算的流量。平滑将使用具有给定参数的 stddev 的高斯滤波器来完成。这允许拥有更规则的 3D 形状。
⚙ 默认值为 0.0(无平滑)。
GPU 处理
Cellpose 依赖 pytorch 在 GPU 上进行计算。 根据您的操作系统和 GPU 驱动程序,安装的 cuda 版本将有所不同。
Torch version:允许您选择适合您系统的 cuda 版本。在此参数之上,插件会打印一条消息,其中包含 GPU 驱动程序的信息。您可以在cpu之间进行选择,以不依赖 cuda(如果您没有 GPU 或对于以不同方式处理 GPU 的 MacOS 系统)。否则,根据上面打印的版本选择版本cu126或cu130(相同主要版本12->126或13->130)。如果不起作用,您可以尝试其他 2 个版本。 ___
从宏运行
该插件与斐济宏兼容。
从头开始的宏
要编写新的宏,您可以:
- 转到
File>New>Script...,这将打开宏编辑器。 - 在
Language中,选择ImageJ Macro - 在文件中写入:
run("Cellpose...", "cp_model=cyto3 custom_model= cell_diameter=30 cyto_channel=1 nuclei_channel=None min_size=15 normalize=true resample=true return_rois=false cellprob_threshold=0.0 flow_threshold=0.4 tile_overlap=0.1 niter=0 compute_flows=false mode_3d=2D+stitch stitch_threshold=0.1 flow3d_smooth=0 torchversion=cpu usegpu=true");来自录音机的宏
您还可以首先在一张图像上使用该插件,同时记录您的操作:
- 转到
Plugins>Macro>Record... - 打开你的图像
- 启动cellpose-appose(在
Plugins>Segmentation>Cellpose...中) - 选择与您的案例相关的参数
- 运行它
- 完成后,您将在记录器中看到您所做的命令行。
- 单击
Create可使用命令行直接在编辑器中创建新宏。
在文件夹的所有 .tif 上运行的宏
例如,下面的宏将处理文件夹中的所有 .tif 文件,并将每个图像的生成标签图像保存在同一文件夹中。
// Let you choose the folder to process
directory = getDir("Choose folder to process");
// get the list of all files in the selected directory
filelist = getFileList(directory);
for (i = 0; i < lengthOf(filelist); i++)
{
// process only files that are tif files
if (endsWith(filelist[i], ".tif"))
{
// open the image
open(directory + File.separator + filelist[i]);
raw_img = getImageID();
// run cellpose
run("Cellpose...", "cp_model=cyto3 custom_model= cell_diameter=30 cyto_channel=1 nuclei_channel=None min_size=15 normalize=true resample=true return_rois=false cellprob_threshold=0.0 flow_threshold=0.4 tile_overlap=0.1 niter=0 compute_flows=false mode_3d=2D+stitch stitch_threshold=0.1 flow3d_smooth=0 torchversion=cpu usegpu=true");
// define the name of the label file to save it
label_file = directory+File.separator+substring( filelist[i], 0, lengthOf(filelist[i])-4 ) + "_labels.tif";
saveAs("Tiff", label_file);
// close the results and the raw image
close();
selectImage( raw_img );
close();
}
}
仅在感兴趣区域进行分段
通过首先在图像中绘制 ROI,可以仅在图像的某个区域中运行 Cellpose。
然后以与处理整个图像相同的方式运行Fiji-Cellpose。
Cellpose 将仅分割所选 ROI 内的对象,并返回 ROI 周围裁剪的较小图像中的标签。
如果您选择选项return ROIs,生成的 ROI 将放置在原始图像(全尺寸)中,如下面的示例图像所示。

替代方案
有关从 Fiji 运行 Cellpose 的其他方式,请参阅此页面,其中链接了多个选项:https://imagej.net/plugins/cellpose。
问题/常见问题解答
如果您在使用插件时遇到问题,或者需要新功能,请在github repository上填写问题。请提供尽可能多的详细信息。
您还可以在 imagesc forum 上发布带有标签 fiji-cellpose 的新问题。
代码开发
运行 cellpose 的核心已移至 https://github.com/imglib/imglib2-cellpose 中的独立存储库。这允许有一个可重用的工件从 Java 运行 cellpose,因此它也可以在其他 Fiji 或 Icy 插件中直接调用。 Cellpose API 文档可以在 here 和更详细的版本 here 中找到。
该存储库负责用户和imglib2-cellpose代码之间的接口。