科 / 研 / 图 / 像 / 处 / 理
凸包(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后的效果:
往期回顾
◆ 荧光强度测量