预处理 (去噪 & 平滑):
打开图片:File > Open
(可选) 去噪:Process > Noise > Remove Outliers... (Radius: 1-2 pixels, Threshold: 20-40) 或 Process > Filters > Gaussian Blur... (Sigma: 0.5-1.0)。目标: 去除小噪点,平滑球体基底,但尽量保留裂缝边缘。小心不要模糊掉裂缝。
增强局部对比度 (关键步骤):
Process > Enhance Local Contrast (CLAHE):
Blocksize: 这是最重要的参数。它决定了局部区域的尺寸。通常设置在 20-100 像素之间。裂缝越细,块大小应该越小,以便在小区域内增强对比度。尝试不同值! 目标是让裂缝变得更黑,背景变得更均匀或更亮。
Histogram bins: 256 (默认通常即可)。
Maximum slope: 控制对比度增强的强度。2.0-4.0 是比较强的增强,1.0-3.0 比较温和。尝试不同值! 目标是裂缝清晰可见,背景没有过度增强产生伪影。
勾选 Fast (除非图像很大)。
替代方法: Process > Math > Subtract Background... (尝试不同的 Rolling ball radius)。这个“滚动球”半径必须远大于裂缝宽度,但要小于球体上最窄的“无裂缝”区域。目的是模拟并减去球体自身的渐变背景(由中心厚边缘薄引起),突出暗的裂缝。效果有时比CLAHE更好。
尝试阈值分割 (再次尝试):
应用CLAHE或背景扣除后,再次尝试 Image > Adjust > Threshold。
尝试不同的阈值算法 (如 Default, Huang, Intermodes, MaxEntropy, Triangle)。
仔细调整阈值滑块,观察是否能把大部**缝(红色覆盖区域)与球体基底区分开来。
勾选 Dark Background(因为裂缝是暗的)。
如果效果改善明显,点击 Apply。生成一个二值图(黑白图),白色代表裂缝(或背景,取决于设置),黑色代表球体基底。确保白色是裂缝! 如果不确定,在应用前检查预览。
后处理 (优化二值图):
清理小噪点: Process > Binary > Remove Outliers... (Radius: 1-2, Threshold: 50, Which outliers: Dark/Bright 根据二值图中裂缝是黑是白选择 Bright 或 Dark)。或者 Process > Binary > Erode (1次) 然后 Process > Binary > Dilate (1次) - 这称为“开运算”,能去掉小亮点。
连接断裂裂缝: Process > Binary > Dilate (1-2次),然后 Process > Binary > Erode (1-2次) - 这称为“闭运算”,能连接邻近的白色区域(裂缝)。注意: 过度膨胀会使裂缝变粗,影响面积精度。
填充小孔: Process > Binary > Fill Holes (如果裂缝内部有不该有的小黑洞)。
创建选区 & 计算面积:
确保二值图中,裂缝是白色,球体基底是黑色。如果不是,用 Edit > Invert 反转。
选中整个球体区域:用椭圆形选择工具 O 沿着球体边缘画一个尽量贴合的选择区域 (ROI)。
Analyze > Analyze Particles...:
Size: 0-Infinity (或设置一个最小值去除微小噪点,如 50-Infinity 像素)
Circularity: 0.00-1.00
Show: Nothing (或 Outlines 用于检查)
勾选 Display results, Summarize, Add to Manager
勾选 Exclude on edges (如果你的ROI紧贴球体边缘,裂缝不会碰到ROI边界,可以勾选;否则不勾选)
勾选 Include holes (非常重要!确保计算裂缝面积时,裂缝内部的孔洞不会被算作基底)
点击 OK。
在弹出的 Results 窗口中,查找 Total Area (所有检测到的白色颗粒的总面积,即裂缝总面积)。
在 Summary 窗口中,查找 ROI Area 或 Total Area (你之前用椭圆工具选中的整个球体区域的面积)。
计算裂缝占比: 裂缝占比 (%) = (裂缝总面积 / 球体区域总面积) * 100
最后算出来缝隙的占比在全图的百分之3.9%左右。
虽然算法很强,但是奈何我是原始人用不了现代武器啊,哎…… |