Canny 算子是经典的边缘检测方法之一,目标不是“找所有灰度变化”,而是尽量找到定位准确、连续性好、噪声不敏感的真实边缘。它的核心思想可以概括为:先平滑抑噪,再计算梯度,随后只保留细而准的边,最后用双阈值把边连起来。1)整体流程概览Canny 边缘检测通常包括四步:高斯滤波:抑制噪声梯度计算:得到边缘强度与方向非极大值抑制(NMS):把“粗边”细化为单像素双阈值与滞后连接(Hysteresis):保留可靠边并连接断裂边2)高斯滤波:为什么先模糊?边缘检测本质依赖微分(梯度),而微分对噪声非常敏感:噪声会被放大成“伪边缘”。Canny 的第一步用高斯核 $G_\sigma$ 对图像 $I$ 做平滑:$$I_s = G_\sigma * I$$$\sigma$ 越大,平滑越强,噪声越少,但细小边缘也更容易被抹掉;$\sigma$ 越小,细节保留更好,但噪声更明显。3)梯度计算:边缘强度与方向从哪来?对平滑后的图像计算一阶导数(常用 Sobel 或高斯导数)得到 $x$、$y$ 方向梯度:$$G_x=\frac{\partial I_s}{\partial x},\quad G_y=\fr
MaxYu
一个建立于 21 世纪的小站,存活于互联网的边缘