岭算子

脊形滤光片可以用来检测脊状结构,例如轴突 1, 管状 2, 船只 3, 皱纹 4 或者河流。

根据对比度或噪声水平,不同的脊形滤波器可以适合于检测不同的结构。

目前的脊线过滤器依赖于图像强度的海森矩阵的特征值来检测脊线结构,其中强度垂直变化而不是沿结构变化。

请注意,由于边缘效果,Meijering和Frangi滤镜的结果将在每个边缘上裁剪4个像素,以获得正确的渲染效果。

参考文献

1

梅杰林,E.,雅各布,M.,萨里亚,J.C.,施泰纳,P.,Hirling,H.,Unser,M.(2004)。用于荧光显微镜图像中轴突追踪和分析的工具的设计和验证。细胞学A部分,58(2),167-176。 DOI:10.1002/cyto.a.20022

2

佐藤,Y.,中岛,S.,Shiraga,N.,AtSumi,H.,Yoshida,S.,Koller,T.,...,Kikinis,R.(1998).用于医学图像曲线结构分割和可视化的三维多尺度直线滤波。医学图像分析,2(2),143-168。 DOI:10.1016/S1361-8415(98)80009-1

3

Frangi,A.F.,Niessen,W.J.,Vincken,K.L.和Viergever,M.A.(1998,10月)。多尺度血管增强滤波。在医学图像计算和计算机辅助干预国际会议上(第130-137页)。施普林格·柏林·海德堡。 DOI:10.1007/BFb0056195

4

吴忠昌,Yap,M.H.,Costen,N.,&Li,B.(2014,11月)。基于混合海森滤波的自动皱纹检测。《亚洲计算机视觉会议》(第609-622页)。施普林格国际出版公司。 DOI:10.1007/978-3-319-16811-1_40

Original image, Meijering neuriteness, Sato tubeness, Frangi vesselness, Hessian vesselness
from skimage import data
from skimage import color
from skimage.filters import meijering, sato, frangi, hessian
import matplotlib.pyplot as plt


def identity(image, **kwargs):
    """Return the original image, ignoring any kwargs."""
    return image


image = color.rgb2gray(data.retina())[300:700, 700:900]
cmap = plt.cm.gray

kwargs = {'sigmas': [1], 'mode': 'reflect'}

fig, axes = plt.subplots(2, 5)
for i, black_ridges in enumerate([1, 0]):
    for j, func in enumerate([identity, meijering, sato, frangi, hessian]):
        kwargs['black_ridges'] = black_ridges
        result = func(image, **kwargs)
        axes[i, j].imshow(result, cmap=cmap, aspect='auto')
        if i == 0:
            axes[i, j].set_title(['Original\nimage', 'Meijering\nneuriteness',
                                  'Sato\ntubeness', 'Frangi\nvesselness',
                                  'Hessian\nvesselness'][j])
        if j == 0:
            axes[i, j].set_ylabel('black_ridges = ' + str(bool(black_ridges)))
        axes[i, j].set_xticks([])
        axes[i, j].set_yticks([])

plt.tight_layout()
plt.show()

脚本的总运行时间: (0分0.393秒)

Gallery generated by Sphinx-Gallery