您当前的位置: 首页 >  Jave.Lin unity

Unity Shader PostProcessing - 2 - 边缘检测

Jave.Lin 发布时间:2019-08-25 00:43:05 ,浏览量:4

边缘检测的算法有很多种

这里介绍的是其中的一部分

  • Sobel
  • Prewitt
  • Robert
  • Line

在这里插入图片描述 这些卷积核,都是final g越大,越可能是边缘

  • Sobel 在这里插入图片描述 (-1,1), (0,1), (1,1)与(-1,-1),(0,-1),(1,-1)的亮度差距越大,特别是左右、上下的差异越大,则final g越大

  • Robert 在这里插入图片描述 uv_offset(0,1)与uv_offset(1,0)的亮度差距越大,则final g越大

  • Prewitt 在这里插入图片描述 (-1,1), (0,1), (1,1)与(-1,-1),(0,-1),(1,-1)的亮度差距越大,则final g越大

  • Line 在这里插入图片描述 Line的方式如果水平的上下差异越大、或是,垂直的左右差异越大,则final g越大 (注意line会更多的是本像素的一排x3一列x3的像素与上下,左右的来梯度差异,个人觉得这种会比较好,但是运算会比其他的多一些)

运行效果 Sobel

在这里插入图片描述

Prewitt

在这里插入图片描述

Roberts

在这里插入图片描述

Line

在这里插入图片描述

看看远一些(像素小一些)的效果
  • Sobel 在这里插入图片描述
  • Prewitt 在这里插入图片描述
  • Roberts 在这里插入图片描述
  • Line 在这里插入图片描述

可以看出Roberts、Line在处理像素临近的亮度(差异放大)放大后,效果比前两个号一些。 因为图像尺寸缩小,原本的梯度会比较平滑,但缩小后图像失真,原本比较平滑的会因失真后把梯度变大。

总结
  • 图像边缘检测缺点
    • 边缘附近的亮度相近的话,会有很多误差,导致很多不应该为边缘的,却判定为边缘,或是应该是边缘的,却没有判定为边缘

下次我们使用后处理的深度+法线来判定

References
  • Feature Detectors
  • Unity Shader入门教程(十八):卷积与边缘检测
关注
打赏
1688896170
查看更多评论

Jave.Lin

暂无认证

  • 4浏览

    0关注

    546博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0831s