ImageJ | 利用 Convex Hull 进行裂纹分割

文摘   科学   2024-10-15 11:22   上海  

科 / 研 / 图 / 像 / 处 / 理



凸包(Convex hull)是指包含给定点集中所有点的最小凸多边形。

换句话说,凸包是一个多边形,其所有内角都小于180度,并且它的边界经过给定点集中的所有点,同时它是所有这样多边形中面积最小的一个。可以想象它是由在一组点周围拉伸橡皮筋所形成的形状

▲蓝色线代表所有黑点的凸包,最外侧的圈可以想象成是橡皮筋


凸包在图像分割中可以有许多应用,这篇文章会以下图为例,介绍怎样利用凸包(Convex hull)对图像中的裂缝进行分割



在这张图中,裂纹和背景是连在一起的,所以我们需要先分割出物体的凸包,取这个凸包中的裂纹即可。





一、提取物体的凸包


1、初始设置(Process -> Binary -> Options)



这一步是为了避免后续进行二值化时,图像变成Inverting LUT的情况。


2、二值化物体(Image -> Adjust -> Threshold)

通过设置Threshold,点击Apply,分割得到二值化的物体:



3、创建物体的选取区(Edit -> Selection -> Create Selection)

二值化后的图像可以直接Create Selection。



4、物体的选取区转为凸包(Edit -> Selection -> Convex Hull)




二、提取裂纹


1、缩小凸包(Edit -> Selection -> Enlarge)



把凸包扩大-3个pixel(即整体缩小3个pixel),这样可以去除边缘的noise。

如果不缩小凸包,做出的效果如下,可以发现,凸包会保留一部分物体的边缘:



2、反转凸包中的图像得到裂纹(Edit -> Invert)

分割出物体之外的区域即为裂纹,所以可以直接反转得到裂纹。



3、清除边缘外的信号(Edit -> Clear Outside)


最终Merge后的效果:


记得把 <科研图像处理> 设置为星标哦,避免错过精彩内容:




感谢关注和支持,我们下期见~ 

作者 | Treasure琛
排版 | 小乐喵喵   


往期回顾

◆ Western Blot 条带分析

◆ 荧光强度测量

◆ 比例尺的校准和添加

◆ 细胞分割神器Cellpose(自动计数篇)

◆ 基于ChatGPT快速编程

◆ ImageJ基础篇 | 成像注意事项

◆ 基于阈值分割的自动细胞计数

◆ OpenAI API的使用方法-附Python代码

◆ 利用Segment Anything进行细胞分割

◆ Python读取显微镜图像格式

◆ Python实现3D Slice Viewer

利用Track-Anything进行细胞追踪




科研图像处理
科研图像处理一站式解决方案,原知乎《ImageJ实用教程》
 最新文章