【快速阅读一】带蒙版的均值模糊快速实现以及其在填充无效区域时的应用。

这篇具有很好参考价值的文章主要介绍了【快速阅读一】带蒙版的均值模糊快速实现以及其在填充无效区域时的应用。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  最近遇到一个需求,从相机获取的数据局部区域存在空值,即那些地方没有有效数据,如果直接赋值为0,则很有可能得到错误的结果,如果不填充值,很多算法又无法进行,因此,需要一种填充算法把这些空白区域设置成合适的值。 我想了一下,有几个算法可  能可以解决这个问题:

  1、inpainting(修复)算法,Inpainting本身就是一种修复算法,可以从周边领域的信息填充未知区域的值,这个开源的在Opencv里有2种。

      但是这个算法的步骤实际上都是迭代算法,一步一步由空值边缘向空值内部慢慢填充,直到填充完成或者达到指定的迭代步数。

       2、PS里的智能填充算法或者类似效果,当然PS没开源,不过一个类似的结果就是PatchMatch算法,这个在百度上可以搜到很多。 

       3、还有一个就是模糊算法,但是如果是直接模糊,很明显一个会破坏那些正常的值,二是空值区域模糊后的值明显偏低很多,因为那个取样可能很多去取到的都是空值。

  所以要适当修改模糊算法,一个可行的方法就是当领域的像素是空值时,这个像素不参与模糊。这样,只有那些有用的信息才参与计算。另外,为了不影响正常的值或者说有效区域的数据,只有那些是空值的地方才需要模糊。

  通过这样的修改,只要取适当的模糊半径, 就可以利用空值周边有用的信息来填充空值区域了,而且空值处的填充值也是和领域有关的,不是随机值,体现了领域相关性。

  带来的问题时,原先高效的均值模糊算法,因为有了空值区域判断,无法在直接使用了,需要考虑适当的修改来解决这个问题。

  这个问题的解决方案还是得靠积分图技术:

    我们首先可以从原始数据中根据空值的分布得到一副只有0和1元素的蒙版图(假定1表示有效值区域,0表示空值区域),接着我们计算两幅积分图像:

    一是 原始数据的积分图,但是注意在做积分图累加时,如果遇到空值,则不进行累加或者说累加值为0.

         二是 蒙版图的累加,同样是遇到空值,不累加,遇到有效值累加1。

    有了这个基础,下面的求均值的部分和普通的用积分图来求均值的方案是一样的了,这是在求均值时还要加上目标区域是否是空值的判断 。 

    如下图所示,左图中那些纯黑色的部分(像素值为0)即为空值区域,右图是模糊半径为20的时候的修复效果,无效区域均有了有效值(右图有些边界很明显,这个其实可以通过适当的放款无效点的范围来改进)。

    在处理效率上,对于浮点的数据,一份大概1000*1000的单通道数据,任意半径的处理耗时是在8ms左右,还是相当的快的。

    【快速阅读一】带蒙版的均值模糊快速实现以及其在填充无效区域时的应用。     【快速阅读一】带蒙版的均值模糊快速实现以及其在填充无效区域时的应用。

  感觉这个算法也可以用到小范围的人脸祛痘算法上。

 

翻译

搜索

复制文章来源地址https://www.toymoban.com/news/detail-760605.html

到了这里,关于【快速阅读一】带蒙版的均值模糊快速实现以及其在填充无效区域时的应用。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 模糊C均值聚类(Fuzzy C-means)算法(FCM)

    本文的代码与数据地址已上传至github:https://github.com/helloWorldchn/MachineLearning 1、模糊集理论 L.A.Zadeh在1965年最早提出模糊集理论,在该理论中,针对传统的硬聚类算法其隶属度值非0即1的严格隶属关系,使用模糊集合理论,将原隶属度扩展为 0 到 1 之间的任意值,一个样本可以

    2024年02月09日
    浏览(35)
  • 在C ++ OpenCV 和 FFTW 中 实现快速去模糊算法

    在图像处理中,模糊是一个常见的问题,它可能由于各种原因(如运动模糊,焦点模糊等)而产生。幸运的是,有一种称为去模糊的技术,可以帮助我们恢复原始的、清晰的图像。在本文中,我们将介绍如何在C++中使用OpenCV和FFTW库实现快速去模糊算法。 去模糊算法的基本思

    2024年02月13日
    浏览(38)
  • SimSearch:一个轻量级的springboot项目索引构建工具,实现快速模糊搜索

    大部分项目都会涉及模糊搜索功能,而实现模糊搜索一般分为两个派系: like简约派系 搜索引擎派系 对于较为大型的项目来说,使用Solr、ES或者Milvus之类的引擎是比较流行的选择了(效果只能说优秀),而对于中小型项目,如果考虑这些较为重型的引擎,就意味着开发成本和

    2024年02月02日
    浏览(93)
  • 机器学习中的 K-均值聚类算法及其优缺点

            K-均值聚类算法是一种常用的无监督学习算法,用于将相似的数据点分组为聚类。         其步骤如下: 1. 初始化:选择聚类数K,随机选取K个聚类中心。 2. 计算距离:计算每个数据点与K个聚类中心的距离,将其分配到距离最近的聚类中心所在的聚类。 3. 更

    2024年02月14日
    浏览(43)
  • 微信小程序 连接云数据库(不使用云函数)进行 登录、注册、查询(包括模糊查询)快速实现 亲测可用

    当连接MySQL的时候总是出现各种各样的小问题,可以选用微信小程序自带的云数据库 注:测试号不能建立云数据库 按图中步骤来 第4步中,有两种添加方式 第一种 第二种 注意: 如果你是粘贴复制的,他会报错 非数字字符\\\"无法使用外部字符串表示法位于第1行 。这时,在第

    2023年04月20日
    浏览(61)
  • 讲解机器学习中的 K-均值聚类算法及其优缺点

    K-均值聚类算法是一种常见且简单的无监督学习算法,用于将数据集分为K个不同的类别。其主要思想是将数据集中的每个样本点分配给离它最近的质心,然后更新质心的位置,重复此过程直到质心不再移动或达到预定的迭代次数。 K-均值聚类算法的步骤如下: 随机初始化K个

    2024年01月17日
    浏览(58)
  • 排序算法——快速排序(C语言多种实现及其优化策略)

    快速排序可以说是排序界的大哥的存在,在c库中的qsort和c++库中的sort两个排序底层都是用 快速排序实现 ,可想快速排序是有多么强大了把哈哈! 快速排序是Hoare于1962年提出的一种二叉树结构的 交换排序 方法,其基本思想为:任取待排序元素序列中的某元素作为基准值,按照

    2023年04月11日
    浏览(41)
  • css 实现蒙版效果

    css 实现蒙版效果 如图所示,我们需要将左边的图片展示为右边的图片效果,即为图片添加一层蒙版。 一个div同时设置background-color和background-image的话,color是处于img层下方的,无法实现遮罩效果,所以需要再创建一个div作为其子div,然后设置子div的背景颜色,要实现当前效果

    2024年02月11日
    浏览(36)
  • K-均值聚类算法及其优缺点(InsCode AI 创作助手测试生成的文章)

    K-均值聚类算法是一种常用的无监督学习算法,用于将数据集划分为 K 个不同的类别。该算法的基本思想是根据数据点之间的距离,将它们划分为离其最近的 K 个簇之一。 算法的步骤如下: 初始化 K 个聚类中心,可以随机选择数据集中的 K 个点。 将每个数据点分配给离它最

    2024年02月01日
    浏览(50)
  • Unity快速入门教程-制作一个简易版的计时器Time.deltaTime

    制作游戏的时候,可能会需要到一个计时器,本篇文章附完整计时器代码 本文将简单介绍 一次计时器 和 循环计时器 的代码 Time.deltaTime是帧与帧相减出来的,即 Time.deltaTime=后一帧时间-前一帧时间 ,计算结果由你的电脑配置而定,不是固定值。由于Time.deltaTime的结果是由后一

    2024年02月12日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包