ImageJ截取指定区域与荧光强度计算:从入门到实战
简介ImageJ 是公共领域的 Java 图像处理程序尤其适合显微镜图像与生物医学影像的量化分析。教程从安装配置讲起依次说明 Windows、Mac、Linux 等平台下的部署差异并详细解释内存分配、核心方案更新、热键定制以及插件加载目录等常见操作。教程还包含升级方案、QuickTime 功能、Java 运行环境匹配等章节对系统环境搭建与兼容性注意事项进行了集中说明并提供了从基础使用到扩展插件管理的完整学习路径。资源包大小为 2.36MB共含 1 个 PDF 文档体积小、便于离线翻阅目录结构清晰可按需跳转。已有 271 人浏览学习适合科研人员、实验室学生以及软件开发者作为快速上手的参考。教程专门讨论了插件机制与本地功能的关系帮助用户避免插件无法加载、内存溢出等典型问题同时结合光学显微图像的实际处理需求对通道调整、测量统计等常用流程给出面向实战的说明并给出快捷键对照与插件版权提醒。无论初学者需要从零开始还是老用户希望按目录查找特定功能都能从中获得清晰指引。1. 用 ImageJ 做图像分析先搞懂这 4 个概念再动手ImageJ 可能是生命科学和材料科学实验室里被误解最深的软件。很多人把它当作画图工具打开一张显微照片框一块区域按一下 Measure然后复制表格里的 Mean 值贴到论文里。但这个流程里每一个默认参数都在悄悄影响数据——从灰度值如何映射、ROI 如何扣背景、到结果表格里到底算的是面积还是光密度任何一步理解偏差都会让最终结论站不住脚。这篇内容围绕「imagej截取指定区域」「用imagej计算荧光强度」这两类最常见的检索需求展开把打开软件到出数据之间的所有关键环节讲透。适合刚接手显微镜数据处理的研究生也适合想复核自己流程是否严谨的实验老手。标题里那个 PDF 只是一个载体真正需要掌握的是它背后那套可复现的测量逻辑。2. 打开图片之前ImageJ 图像格式与通道设置决定了后面所有数据2.1 RGB、灰度与 8-bit / 16-bit / 32-bit 到底怎么选ImageJ 打开图片后窗口标题栏会显示类似RGB (240K)或16-bit grayscale (525K)的信息。很多人直接跳过这一步开始框选测量但这里的类型决定了荧光强度计算的物理含义。RGB 图像中每个像素由 R、G、B 三个通道组成每个通道的取值是 0255 的整数亮度值。问题是 RGB 图像的灰度不是一个连续的物理量它是经过相机和软件色彩映射后的产物。用 ImageJ 直接 Measure 一张 RGB 荧光照片得到的 Mean 值实际是三通道亮度混合后的平均这个数值无法用于定量比较。单色相机采集的图像通常是灰度图常见位深有 8-bit0255 灰度级和 16-bit065535。对于荧光定量我一般会优先选择 16-bit 原始格式// 如果打开后发现是 RGB执行 Image Type 16-bit // 或者直接用快捷键 CtrlShiftH 打开色彩通道拆分 run(Split Channels); // 拆分后分别对每个通道做后续处理逻辑说明拆分通道后红色荧光、绿色荧光、蓝色荧光各自独立成一张单通道灰度图。后续测量只在目标通道上进行避免串色干扰。参数说明16-bit 的灰度范围远大于 8-bit能够保留弱信号的细节不至于让低表达区域的荧光强度被截断成 0。如果拍摄时有信号过曝或欠曝16-bit 数据做校正的余地也更大。另一个不可忽略的设置是位深对背景扣除的影响。Camera 原始输出如果是 12-bit 或 14-bitImageJ 打开时会自动升级为 16-bit。这时如果盲目录成 8-bit动态范围会被压缩原本能区分开的弱阳性信号和背景会粘在一起。2.2 标尺设置像素值不等于物理尺寸ImageJ 的默认逻辑是一个像素等于一个任意单位。如果你测量细胞面积、统计颗粒数量并且需要在结果中标注 µm 单位就必须在测量之前完成标尺校准。操作路径是Analyze Set Scale弹窗中有四个关键输入参数作用典型值示例Distance in Pixels已知物理长度对应的像素数512 pxKnown Distance该像素数对应的物理长度100Unit of Length物理单位µmGlobal让所有图片共享同一标尺同一批拍摄则勾选代码方式更利于批量处理run(Set Scale..., distance512 known100 pixel1 unitum global);逻辑说明Distance 是图像中一条线段的像素数Known 是这条线段代表的真实长度。设置完成后ImageJ 内部维护scale属性ROI 的面积、周长等测量值都会自动换算为物理单位。参数说明global参数非常实用同一台显微镜、同一物镜下拍摄的一组图标尺应当一致勾选后将设置应用到后续打开的所有图像。一个常见坑是忘记设置标尺就量面积结果表格里单位是pixel写论文时还要手动换算。更隐蔽的问题是有些图像文件自带的 EXIF 信息里包含错误的 DPI 标尺ImageJ 打开后自动应用了错误的物理尺寸。解决办法是每次打开关键图片后在窗口底部查看状态栏的scale信息确认与实际拍摄条件一致后再开始测量。2.3 二进制掩膜与灰度图像的转换关系图像分割之后ImageJ 会用黑白二值图表示目标区域白色为前景或相反取决于黑背景选择。很多人不理解为什么要先转成二值图而不是直接在原始灰度图上画 ROI。原因在于灰度图像上手动圈选的边界带有主观性而二值化是用算法和阈值把目标区域统一识别出来可重复性强。典型的流程是run(8-bit); setAutoThreshold(Otsu); run(Convert to Mask); run(Analyze Particles..., size50-Infinity circularity0.2-1.00 showOutlines);逻辑说明setAutoThreshold用 Otsu 算法自动计算灰度阈值将图像分为目标和背景两类。Convert to Mask把灰度图变成二值图。后续的Analyze Particles在上面的二值图上查找连通区域。参数说明size过滤掉面积小于 50 像素的噪声点circularity控制颗粒形状范围0.21.0 表示只统计不太细长的对象。这一步是荧光强度计算的严重误差来源。如果直接在含背景噪声的灰度图上测量Mean 值会被背景拉低。先做掩膜再通过 ROI Manager 把识别出的区域映射回原图测量才能拿到准确的荧光数据。后面第 4 章会专门展开这个流程。3. 用 ImageJ 截取指定区域ROI 的框选、保存、批量复用与空间校正3.1 常用框选工具与快捷键矩形、椭圆、自由手绘和魔棒截取指定区域在 ImageJ 里叫 ROIRegion of Interest。工具栏上一排图标矩形、椭圆、多边形、自由线、魔棒各有适用场景。静止图片上截取细胞、组织区域或颗粒最常用的三种方式分别是矩形选框适合规则区域或批量截块椭圆选框适合圆形细胞核或类圆形集落自由手绘适合形态不规则的细胞边界操作上自由手绘看起来简单但鼠标轨迹不容易精细控制。折中方案是先用多边形工具粗轮廓再逐点微调锚点。对于边界不清晰的荧光图像可以直接使用魔棒工具配合阈值// 选中魔棒工具 setTool(wand); // 点击目标区域边缘ImageJ 将自动生成包含相似灰度范围的 ROI逻辑说明魔棒的工作机制类似种子生长算法它从点击位置出发将与当前像素灰度差小于容差Tolerance的相邻像素合并为连通区域。双击魔棒工具可以调整 tolerance 值默认是 7。参数说明如果灰度分布不均匀比如目标区域中心亮边缘暗魔棒容易只圈到亮核部分这时候建议先用平滑滤波预处理。run(Gaussian Blur..., sigma2); setAutoThreshold(Huang);逻辑说明高斯模糊降低像素级别噪声让阈值分割的区域更加完整。之后再使用 Analyze Particles 生成的 ROI 更接近真实形态。3.2 ROI Manager 的使用一个区域如何精确复用和处理同一个实验里需要对同一视野的多张图比如不同时间点、不同通道使用完全一致的 ROI绝不能重新手画。ImageJ 的 ROI Manager 就是为此设计。操作路径是Analyze Tools ROI Manager...或快捷键CtrlShiftA。选中图形后按Add [t]按键ROI 就保存到列表中。每个 ROI 可以命名、保存为.roi文件或 ZIP 合集。一个完整的跨图复用流程如下// 假设 images1.tif 是明场图images2.tif 是荧光图 open(/data/images1.tif); // 框选目标区域并加入 ROI Manager run(ROI Manager...); // 在 ROI Manager 中选中对应条目然后打开第二张图 open(/data/images2.tif); // 确保两张图尺寸一致直接按下 Show All 并执行 Measure逻辑说明ROI 记录的是图像坐标系内的像素坐标和形状不依赖图像内容。所以只要第二张图尺寸、位置与第一张严格对齐ROI 可以直接套用。实际操作中常见问题是两张图存在微小平移。解决方法是使用插件MultiStackReg或 ImageJ 内置的Align功能做配准之后再套 ROI。run(MultiStackReg, stack[Current] alignmentRigid ); // 配准后 ROI Manager 依旧有效因为变换后图像大小不变参数说明Rigid只做旋转和平移不做缩放适合同一视野的连续成像如果不同批次图像之间可能有缩放差异改用Affine。配准是一个守恒操作ROI 坐标无需修改因为图像本身被搬到了 ROI 所在的空间位置。3.3 批量截取固定位置子区域用宏实现可复现裁剪当图片数量多了以后逐张点开再画 ROI 很容易人手崩溃也必然产生不一致。使用宏批量截取是最常见的做法而且 ImageJ 的宏语言几乎不需要额外安装环境。示例宏在 Plugins Macros Edit... 中新建并运行// 遍历指定目录下所有 tif 文件 dir /data/experiment1/; list getFileList(dir); for (i 0; i list.length; i) { if (endsWith(list[i], .tif)) { open(dir list[i]); // 截取固定矩形区域单位是像素坐标 makeRectangle(100, 120, 512, 512); run(Crop); // 保存结果到新目录 saveAs(Tiff, /data/cropped/ list[i] -cropped.tif); close(); } } print(批量裁剪完成共处理 i 个文件);逻辑说明makeRectangle(x, y, width, height)的四个参数分别是左上角横纵坐标和矩形宽高单位是像素。执行 Crop 后会生成一张新的图像窗口保存后关闭处理下一张。参数说明坐标值和尺寸依据具体图像尺寸决定如果图像来自同一显微镜且样品位置变化不大固定矩形坐标完全可以。若样品漂移明显则需要先做对齐后再裁剪。也可以让 ImageJ 把当前 ROI Manager 中所有 ROI 都裁剪出来run(ROI Manager...); n roiManager(count); for (i 0; i n; i) { roiManager(select, i); run(Crop); saveAs(Tiff, /data/cropped/roi- i - getTitle()); close(); }逻辑说明roiManager(select, i)逐个选中 ROI Manager 中的条目然后执行裁剪。getTitle()返回当前图像名称拼接到输出文件名中便于溯源。3.4 图像配准后 ROI 还能重复用吗上面提到过配准的原则是图像变换ROI 不变或ROI 随图像同时变换。ImageJ 内置的Image Adjust Alignment工具在生成变换后图像时不会自动把前一张图的 ROI 带过去解决办法是先把 ROI 位置信息保存配准后重建。更稳妥的流程是使用 TrakEM2 或 BigWarp 等配准工具它们内部保存变换矩阵可以直接把 ROI 映射到另一张图上。如果只是做简单平移校正可以在配准前复制 ROI 坐标配准后再用makeRectangle重新设置。// 获取当前 ROI 的边界 roiManager(select, 0); getSelectionBounds(x, y, width, height); // 执行配准过程略 // 配准完成后在新图上重建 ROI makeRectangle(x dx, y dy, width, height);逻辑说明dx和dy是配准得到的平移量。实际操作中获取平移量的方法是先用Image Adjust Align...做一次测试记录输出 log 中的位移再写进宏里。这个小技巧在处理时间序列荧光漂白恢复FRAP数据时非常有用。4. 用 ImageJ 计算荧光强度从测量 Mean 到校正背景噪声的完整流程4.1 Measure 之前要先改的 3 个设置荧光强度的量化最终落到Analyze Measure快捷键CtrlM这一行命令上。但在按快捷键之前我必须先在Analyze Set Measurements...里勾选正确的输出项。这一步经常被忽略而默认设置通常只有面积和 Mean远远不够用。我可以建议的最小勾选方案是Area、Mean gray value、Integrated density、Raw integrated density。其中Integrated density在 ImageJ 里的定义是 Area × Mean gray value代表 ROI 内的总荧光信号。Raw integrated density则直接返回 ROI 内全部像素的灰度值之和不乘面积。// 设置测量项目 run(Set Measurements..., area mean integrated raw redirectNone decimal3);逻辑说明redirect参数可以指定测量用的图像源。比如原始图像是 16-bit 荧光图但 ROI 是在 8-bit 二值掩膜上画的可以直接将 redirect 指向原始荧光图测量得到的 Mean 值就是 ROI 区域内原始像素的真实均值。参数说明decimal3控制结果保留三位小数荧光强度数值一般没必要保留更多。关键疑问是 Area × Mean 和灰度值直接相加有什么不同。处理不均匀照明或细胞大小不一致时总荧光强度通常比较的是 integrated density因为它综合了表达强度和表达面积两个维度。但如果 ROI 的面积在不同图像间因分割效果不同而差异过大单纯比较 integrated density 会被面积差异主导此时应当比较 Mean或者统一面积后的标准化值。4.2 背景扣除的常见做法手动框背景区、滚动球算法、阈值分割荧光定量最经典的误区是直接拿 Mean 值当最终结果。实际上显微镜图片的每个像素灰度都包含背景信号来源包括暗电流、自发荧光、非特异性染色和照明不均匀。不扣背景直接把不同图像的 Mean 做比较相当于在测量值里混入了系统误差。最常见、对新手最直观的做法是手动在图片空白区域框选一小块测量 Mean然后用目标区域的 integrated density 减去背景区域的 integrated density 乘以目标区域面积// 先用矩形工具框选背景区域 run(Measure); // 记录背景 Mean bgMean getResult(Mean, nResults - 1); // 再框选目标区域 run(Measure); targetIntD getResult(RawIntDen, nResults - 1); targetArea getResult(Area, nResults - 1); // 目标区域的背景总量 背景均值 × 目标面积 corrected targetIntD - bgMean * targetArea; print(校正后荧光强度: corrected);逻辑说明getResult(RawIntDen, ...)读取结果表格中对应列的值。由于RawIntDen与面积独立相减时用背景均值乘以目标面积既不改变图像本身又能从目标区域的总信号中扣除背景贡献。这个方法的问题在于背景区域的选取有主观性质粒转染不均的细胞图像上很难找到纯空白处。更客观的替代方案是使用Process Subtract Background...ImageJ 内置滚动球算法Rolling Ballrun(Subtract Background..., rolling50 light);参数说明rolling是滚动球半径单位像素。较亮的细胞结构宽度决定半径大小半径太小会连荧光信号一起扣掉太大会保留不均匀背景。一般经验是设置为最大目标结构半径的 1.52 倍。light参数表示背景比前景暗如果反色图像改成dark。扣完背景后再做一次 Measure结果便是背景校正后的数值。滚动球算法的工作原理是把灰度图像视为三维表面一个半径可调的球在表面下方滚动估算背景表面然后从原图减去。这是一种快速近似背景平滑的方法适合背景不连续或不均匀的显微图像。但它对边缘亮斑敏感处理后图像边缘区域可能出现负值或伪影。4.3 荧光强度归一化别拿原始灰度值做组间比较不同时间点、不同曝光参数、不同图片之间做荧光强度比较时原始灰度值不能直接拿去p-value。显微镜相机在对不同样品成像时即使理论上曝光时间相同灯源波动、快门误差也会造成整体亮度偏差。正确的做法是用一个参照信号做归一化。常见做法是除以背景区域的平均荧光强度或者除以同组对照组细胞的平均荧光强度比值。更严谨的方案是预先对已知荧光强度的标准微球成像获取灰度值和实际荧光量的线性关系再做定标。ImageJ 中可以用简单宏实现归一化// 假设每个 ROI 测量结果已有 CorrectedIntDen即校正后总荧光强度 // 并且同一张图内有一个内参区域如核染色的测量值 ratio corrected / referenceMean; print(归一化荧光强度 ratio);逻辑说明referenceMean可以从同一个细胞内已知表达恒定的蛋白通道如 Tubulin、GAPDH获取。最终写入统计软件的值是归一化后的比值而不是原始灰度。参数说明如果做多张图的批量归一化建议把所有测量的结果先导出为 CSV再用 Python 或 Excel 统一处理避免宏嵌套过深。4.4 从图片到结果表格导出数据与统计前必须做的垃圾排查ImageJ 的 Results 表格在数据量大时容易混入无效行。手动框选时误点了一下、没切换 ROI 就 Measure、或者选中的 ROI 是空区域都会产生垃圾行。在导出之前扫一眼表格的 Area 列有没有明显异常值是最基本的习惯。导出方式为File Save As...或直接通过命令saveAs(Results, /data/results.csv);逻辑说明saveAs(Results, 路径)将当前结果表保存为 CSV 文件。CSV 可以直接被 Excel、R、Python pandas 读取是数据交接的标准格式。导出行过滤的一个示例只保留 Area 在 501000 像素平方之间的测量值。# Python 端快速过滤 import pandas as pd df pd.read_csv(/data/results.csv) df df[(df[Area] 50) (df[Area] 1000)] print(df.head())逻辑说明过滤条件写在 pandas 的布尔索引里Area列的极端值往往是误圈或噪声舍弃它们可以减少统计中的方差来源。参数说明阈值根据实际图像分辨率调整不要照抄。总的原则是宁可少一行数据不要把错误的一行带进最终统计表。5. 荧光强度的批量计算与自动分割进阶操作5.1 用 Analyze Particles 从整张图中自动识别多个细胞单细胞荧光定量实验中映射到细胞级别的 ROI 数量可能上百个挨个手画完全不现实。Analyze Particles 可以在二值图像上自动扫描所有连通区域并生成统计结果是批量获取多区域荧光数据的基础。完整操作序列如下// 读取原始荧光图 open(/data/fluo.tif); // 去除噪声 run(Median..., radius2); // 转换到 8-bit 二值 run(8-bit); // 自动阈值分割 setAutoThreshold(Otsu); run(Convert to Mask); // 执行颗粒分析生成 ROI 并输出测量结果 run(Analyze Particles..., size100-10000 circularity0.30-1.00 showMasks include add);参数说明size100-10000过滤掉面积过小或过大的连通域排除碎片与多细胞粘连。circularity0.30-1.00是圆度范围0 表示一条直线1 表示正圆实验里细胞不会是完全圆形但过滤掉细长碎片可以有效噪声。add参数会把所有识别到的颗粒加入 ROI Manager这样后续测量可以直接用全部 ROI 批量进行而不必重新绘制。5.2 在原始荧光图上批量 MeasureROI Manager 的Measure按钮分割完成后ROI Manager 里可能装了上百个 ROI对每个 ROI 在原图上分别测量正确姿势是选中所有 ROI 后一次性执行 Measure。open(/data/fluo.tif); roiManager(Select All); roiManager(Measure);逻辑说明Select All选择 ROI Manager 中所有条目Measure为每个 ROI 执行一次 Measure结果表中每个 ROI 一行Area、Mean、RawIntDen等按之前配置逐列输出。参数说明如果 ROI Manager 中有分属于不同图像的 ROI 混合在一起建议在处理每张图之前先用Close清空备份避免结果混淆。如果每个 ROI 想要单独保存数据可以用n roiManager(count); for (i 0; i n; i) { roiManager(select, i); run(Measure); // 将当前测量结果单独保存成文件 // 结果中的第 nResults-1 行即最新测量 }逻辑说明循环单次 Measure 并存储虽然效率稍低但便于中途打日志查看每个 ROI 的单独数据调试复杂流程时很有用。5.3 批量处理多张图片完整可复现的 ImageJ 宏模板下面给一个完整的宏模板覆盖「打开全部 tif 文件 → 扣背景 → 分割 → 测量 → 导出汇总」的全流程。直接粘贴到File New Macro即可运行。// 配置区 inputDir /data/raw; outputDir /data/results; rollingRadius 50; minParticleSize 100; maxParticleSize 10000; // 主流程 print(批量处理开始); files getFileList(inputDir); for (i 0; i files.length; i) { if (endsWith(files[i], .tif)) { open(inputDir files[i]); // 扣背景 run(Subtract Background..., rolling rollingRadius light); // 复制一份用于分割 run(Duplicate..., titlemask); run(8-bit); setAutoThreshold(Otsu); run(Convert to Mask); // 颗粒分析生成 ROI run(Analyze Particles..., size minParticleSize - maxParticleSize circularity0.2-1.00 showMasks add); // 使用原始荧光图作为测量对象 selectWindow(files[i].substring(0, files[i].length() - 4) -1); roiManager(Select All); roiManager(Measure); // 保存当前结果 saveAs(Results, outputDir / files[i] -results.csv); // 清理 roiManager(Deselect); roiManager(Delete); close(*); } } print(批量处理完成);逻辑说明rollingRadius、minParticleSize等配置变量放在宏头部换一批数据时只改最上方参数流程主体不动。close(*)会关闭所有图像窗口避免内存溢出。每一张图处理完立即保存结果避免中途程序崩溃导致全部数据丢失。这份模板最大的意义在于可复现。实验记录里只要注明宏的版本和参数任何人都能重新走一遍相同的分析路径论文审稿人如果质疑测量方法也能直接追查到每一步的参数设置。5.4 分水岭算法处理粘连细胞让定量结果更准确Otsu 二值化后常见的一个问题是细胞贴在一起生成一个大连通域而不是多个独立细胞。Analyze Particles 会把一整团算成一个目标面积和荧光强度全部虚高。这时候需要用分水岭算法把粘连目标切开。run(Watershed);逻辑说明Watershed作用于二值图将重叠物体的凹点作为切分点把连通区域分割为多个部分。它基于距离变换寻找局部极小值通过不断注水的方式把相连的部分分开。运行后某些长条状细胞的边界可能被过度切割所以使用后要检查分割结果的Outlines可视图层。分水岭单次执行后再运行一次Analyze Particles...结果的数量和面积会明显更符合真实细胞分布。对严重成团的细胞图像在阈值分割前先做Process Binary Distance Map效果更好run(Distance Map); run(Watershed);逻辑说明Distance Map 计算每个像素到最近背景像素的距离前景内部距离值高边界处低。分水岭在这种图上更容易定位到粘连处。参数说明直径特别小的结构会被距离变换过度侵蚀做之前重新评估size过滤范围。6. 快速验证测量结果是否可靠的 3 个自查技巧6.1 用 ImageJ 内置的 ROI 配色检查每个测量区域位置批量测量完成后很多人直接拿数据写结论不验证 ROI 是否落在目标上。我的习惯是先执行 ROI Manager 里的Show All同时把线条颜色调成高对比度色。roiManager(Show All with labels); setColor(red);逻辑说明Show All with labels会显示所有 ROI 的轮廓并附上编号配合setColor(red)让 ROI 边界在灰度图上清晰可见。快速滚动检查一遍异常位置的 ROI 就会暴露。标注编号与结果表格的行号对应可以直接定位到表格中删除。如果处理成百上千张图逐张检查不现实可以从中抽取 10% 的图做视觉复核。抽样时尽量涵盖不同时间点和不同处理组不只看文件名开头的图。6.2 荧光强度分布直方图比其他任何统计都直观Analyze Histogram快捷键CtrlH显示当前图像灰度值分布。在测量之前看一眼直方图能判断图像是否过曝或欠曝。如果直方图在右端高灰度值大量堆叠说明信号过曝定量数据不可靠需要重新拍摄任何后处理算法都无法恢复过曝丢失的信息。如果直方图集中在低灰度端说明曝光不足动态范围没有铺满弱信号的区别会被量化噪声吞没。对于已经测量完的结果表格也可以用Results Histogram快速查看选中的数值列分布。荧光强度数据通常呈正偏态分布直接做 t 检验可能不满足正态假设需要用 R 或 GraphPad 先做对数转换或非参数检验。这一层的统计分析虽然发生在退出 ImageJ 之后但判断图像直方图的习惯必须在测量之前建立。6.3 同图双屏对比原图与掩膜叠加检查分割误差最后一个自查技巧是分割效果的视觉叠加。把原始灰度图打开同时打开二值掩膜图设置叠加模式为半透明可以直接看到分割边界相对细胞边缘的贴合程度。open(/data/fluo.tif); open(/data/mask.tif); run(Merge Channels..., c1fluo.tif c2mask.tif create);逻辑说明Merge Channels将两张图分别放在不同通道后合成c1对应原图c2对应掩膜。合成的结果中原图灰度信息与掩膜轮廓叠加显示细胞边缘与分割边界之间的错位一目了然。如果边界整体偏向小一圈说明阈值设置偏高部分弱信号区域被当作背景丢掉如果边界向外溢出说明背景扣除不足或者阈值偏低。观察到明确的系统性偏离后应当回到Subtract Background...里的 rolling 参数和setAutoThreshold的算法做调整而不是事后手动修改数据。本文还有配套的精品资源点击获取
上一篇/下一篇内容由系统自动关联
返回资讯列表 →