迅捷/金属图像处理
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.平滑滤波器,高斯和双边