news 2026/4/21 21:09:37

SciPy 怎么做图像过滤和边缘检测?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SciPy 怎么做图像过滤和边缘检测?

SciPy 中的滤波是什么?

图像处理中的滤波是一种基本技术,用于多种任务,如降噪、图像增强和特征提取。图像滤波器通过根据邻域像素值修改或处理图像的像素值,或应用数学变换来工作。

In SciPy 中,可以对图像应用滤波器来执行平滑、锐化和边缘检测等操作。在本章中,我们将了解关键概念、滤波器类型以及如何使用 SciPy 实现滤波器。

什么是边缘检测?

边缘检测是图像处理中的一项关键技术,用于识别图像中像素强度急剧变化的点,这些点通常对应于图像不同区域之间的边界或过渡。从 SciPy 图像处理的视角来看,边缘检测通常通过使用滤波器来实现,这些滤波器突出显示强度快速变化的区域,通常通过计算梯度或二阶导数来完成。

In SciPy 中,可以使用多种技术进行边缘检测,如 Sobel、Prewitt、Scharr、Roberts 和 Laplacian 滤波器。这些滤波器应用于图像,以突出显示具有显著强度梯度的区域,这些区域通常对应于边缘。

在深入了解滤波和边缘检测技术之前,我们需要了解一些滤波的基本概念,如下所示 −

Kernel

kernel也称为 mask、filter 或 convolution matrix,它是一个小型的、矩阵形状的数值权重集合,用于图像滤波。它通过执行数学运算(即通常是 kernel 与图像小区域之间的卷积)应用于图像。此操作根据 kernel 的用途为每个像素生成新值。

对于 kernelK和图像I,在像素(x,y)处的操作可以表示如下 −

其中 −

  • I'(x,y):位置 (x,y) 处的输出像素值。
  • K(i,j):偏移 (i,j) 处的 kernel 权重。
  • n,m:kernel 宽度和高度的一半,例如,对于 3×3 kernel,n=m=1。

Kernel 在滤波中的作用

Kernel 被设计用于执行特定操作,如下所示 −

  • 模糊 (Blurring):减少噪声并平滑图像。
  • 边缘检测 (Edge Detection):突出边界和过渡区域。
  • 增强细节 (Enhancing Details):锐化图像的精细特征。

Kernel 的关键属性

以下是 SciPy 图像处理中 Kernel 的关键属性 −

  • 对称性 (Symmetry):某些 kernel 如 Gaussian 是对称的,确保在所有方向上产生相等效果。
  • 归一化 (Normalization):像均值滤波器这样的 kernel 通常会归一化值,即除以权重的总和,以保持强度平衡。
  • 边缘效果 (Edge Effects):处理图像边缘(即 kernel 延伸超出图像边界的情况)需要使用填充技术,如零填充或反射。

Kernel 类型

以下是不同的 kernel 类型,它们决定了 kernel 对图像的影响效果。

  • 平滑 Kernel (Smoothing Kernels):这些 kernel 通过平均相邻像素的强度来减少噪声并平滑图像。
  • 锐化 Kernel (Sharpening Kernels):增强图像中的精细细节和边缘。
  • 边缘检测 Kernel (Edge Detection Kernels):这些 kernel 通过识别高强度梯度区域来查找图像中的边缘。
  • 浮雕 Kernel (Embossing Kernels):突出边缘并为图像提供 3D 效果。
  • 梯度 Kernel (Gradient Kernels):此类 kernel 用于计算特定方向上的强度梯度。
  • 专用 Kernel (Specialized Kernels):专用 kernel 用于聚焦圆形区域或模拟特定方向上的运动模糊。
  • 自定义 Kernel (custom Kernels):通过自定义权重可以为特定用途设计 kernel。

卷积 (Convolution)

在图像处理中,convolution是一种数学运算,用于将 filter 或 kernel 应用于图像。它涉及将 kernel 在图像上滑动,对 kernel 下方的图像像素执行逐元素乘法,然后对结果求和以获得新像素值。

在 SciPy 中,可以使用scipy.ndimage.convolve()scipy.signal.convolve2d()函数进行卷积。这些函数允许我们将 kernel 应用于图像、时间序列或多维数据。

图像I和 kernelK之间的卷积运算定义如下 −

其中 −

  • I是输入图像。
  • K是 kernel 或 filter。
  • I'是输出图像或卷积结果。
  • Kernel 在图像上滑动,每个位置的逐元素乘法之和给出结果像素值。

卷积的关键属性

以下属性使卷积成为图像和信号处理中一种多功能且强大的运算 −

  • 交换性 (Commutativity):卷积顺序无关,表现为I*K = K*I
  • 结合性 (Associativity):卷积的分组无关,可表示为I*(K*L) = (I*K)*L
  • 分配性 (Distributivity):卷积对加法分配,可表示为I*(K+L) = (I*K)+(I*L)
  • 单位元 (Identity Element):单位 kernel(例如中心为 1、其他地方为 0 的 kernel)在卷积时不会改变图像。
  • 位移不变性 (Shift Invariance):卷积不受图像位移影响。卷积前后位移图像会得到相同结果。
  • 线性 (Linearity):卷积是线性的,因此缩放图像或 kernel 会相应缩放结果。
  • 可分离性 (Separable):如果 2D kernel 可以分离为两个 1D kernel,则可以通过顺序应用 1D kernel 更高效地进行卷积。

滤波器类型

滤波器是图像处理中用于增强、转换或从图像中提取特征的关键工具。有不同类型的滤波器,针对特定效果设计,这些效果取决于图像处理任务的预期结果。以下是滤波器的类型 −

  • 低通滤波器(平滑滤波器)
  • 高通滤波器
  • 形态学滤波器
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 21:08:37

保姆级教程:在LabVIEW 2023中用IMAQdx稳定驱动海康MV-CA系列网口相机

LabVIEW 2023与海康MV-CA系列网口相机深度集成指南 当工业视觉项目遇上高精度检测需求,海康威视MV-CA系列网口相机往往成为工程师的首选。这款搭载Sony IMX传感器的工业相机,配合LabVIEW强大的图形化开发环境,能构建出稳定高效的机器视觉系统…

作者头像 李华
网站建设 2026/4/21 21:06:46

两道 LeetCode 题的复盘笔记:从「只会暴力」到「懂优化」

目录 136. 只出现一次的数字(简单) 思路一:暴力哈希表(入门解法) 思路二:异或运算(最优解) 72. 编辑距离(中等) 核心思想:动态规划 状态转移…

作者头像 李华
网站建设 2026/4/21 21:03:16

Meta推WhatsApp Plus订阅服务,付费享专属贴纸、自定义图标等福利!

WhatsApp Plus:付费解锁个性化新玩法据WABetaInfo消息,Meta向“部分用户”推出了WhatsApp Plus订阅服务。用户付费后可获得多种个性化定制功能,涵盖外观和生活便利方面的福利,如专属贴纸、不同的应用主题、自定义应用图标、高级铃…

作者头像 李华
网站建设 2026/4/21 21:02:18

Cadence Spectre STB分析保姆级教程:环路增益、相位裕度到底怎么看?

Cadence Spectre STB分析实战指南:从零解读环路增益与相位裕度 第一次在Cadence Spectre中看到STB分析结果时,我盯着屏幕上那条起伏的增益曲线和交叉的相位线,完全不明白这些波形到底在告诉我什么。直到在一次项目调试中,电路莫名…

作者头像 李华