迅捷/金属图像处理

1.边缘检测

边缘检测是空间滤波的一种。

边缘是对象的外部限制。 在边缘,图像的亮度急剧变化。

边缘检测是为了计算图像中位置亮度的急剧变化。

如何计算仓位? 使用差分。 在连续域中,图像的导数为

其中f(x,y)是输入图像,与上一节中的I(i,j)相同。 当前计算将在离散域中执行,因此需要近似值。

(x,y)表示每个像素的索引,以金属表示。 因此,这些值的增量足够小。 可以使用以下近似值。

这只是一个减法!! 简单。

再考虑以下情况。

目标像素是I(2,2) 。 然后,目标像素两侧的增量为

  • 水平: I(2,3)– I(2,1)
  • 垂直: I(3,2)– I(1,2)

水平和垂直内核变成

试试这个过滤器。

SwiftImageProcessor/Shader/Edge/derivatives.metal准备SwiftImageProcessor/Shader/Edge/derivatives.metal

双for循环是卷积。 后一部分是颜色转换。

这将生成landscape_derivatives.jpg

可能会得到边缘。

根据内核定义了一些特殊的过滤器,并在我的项目中准备了这些过滤器。

威特过滤器

索贝尔滤波器

拉普拉斯

拉普拉斯滤波器在使用二阶导数方面与Prewitt和Sobel不同。

导数在图像处理中由增量近似,因此二阶导数为

在数学中,拉普拉斯定义为以下等式

这个方程很重要,但与下面的内核矩阵无关。

SwiftImageProcessor/Shader/Edge/laplace.metal 。 所以尝试一下。

其他文章

  • 0.基本
  • 2.平滑滤波器,高斯和双边