开始使用免费开始使用

边缘检测(2)

可以在多个轴向上执行边缘检测,然后合成为单一的边缘值。对于 2D 图像,水平与垂直的"边缘图"可以用勾股定理合并:

$$z = \sqrt{x^2 + y^2}$$

一种常见的边缘检测器是 Sobel 滤波器。Sobel 滤波器会为检测器中心像素赋予更大的权重:

weights = [[ 1,  2,  1], 
           [ 0,  0,  0],
           [-1, -2, -1]]

在本练习中,请在之前的检测结果基础上改进,通过合并两幅经过 Sobel 滤波的图像,生成一个复合边缘图。

本练习是课程的一部分

Python 中的生物医学图像分析

查看课程

练习说明

  • 在第 1 轴和第 2 轴上对 im 应用 ndi.sobel()
  • 使用勾股定理计算整体的边缘幅值。请使用 np.sqrt()np.square()
  • 显示幅值图像。使用灰度色图,并将 vmax 设为 75

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Apply Sobel filter along both axes
sobel_ax0 = ndi.sobel(____, axis=____)
sobel_ax1 = ____

# Calculate edge magnitude 
edges = ____

# Plot edge magnitude
plt.imshow(____, ____, ____)
format_and_render_plot()
编辑并运行代码