我们发现梯度仿佛轮廓,但是不太清晰.试着把它变清晰.
复习一下梯度,数学式子如下:
只有右边减自己.左边漏掉了?因此我们补上自己减左边的差值:
右边减自己,自己减左边,只有一个点.然而轮廓通常是一条线.因此纳入上面像素和下面像素,三点连线,叠加差距,凸显轮廓.
我们明明是算中间像素的横向差距,却把上面像素和下面像素的差距也加进来,使得中间像素的差距不明显.因此中间像素的差距乘以二,弄得明显一点:
式子很难读.提取系数,写成二维矩阵,方便阅读:
计算很直觉.二维矩阵中心对准像素,点对点相乘,再相加,得到计算结果.超出图片边界的部分,想像成像素复制延伸.
这就是有名的 Sobel operator.虽然是凭感觉瞎掰的,但是好算,合用.大家都喜欢.
接着累计两个方向的变化程度.写成数学式子就是:
不过sqrt有精确度问题,运算时间也很长,所以大家都改用:
再将数值调整成符合RGB范围.(应该除以多少呢?自己推理吧.)最后求出这么一张图片:
请你也求出这么一张图片.