react 前端框架如何驱动企业数字化转型与创新发展
698
2022-09-28
从局部信息推测基恩士的Removing BackGround Information算法的实现。
最近从一个朋友那里看到了一些基恩士的资料,本来是想看下那个比较有特色的浓淡补正滤波器的(英文名字叫Shading Correction Filter,翻译过来的意思有点搞笑),不过确鬼使神差的利用现有的简单函数实现了一个简易高效的去除纹理背景的算法。
最近从一个朋友那里看到了一些基恩士的资料,本来是想看下那个比较有特色的浓淡补正滤波器的(因为名字叫Shading Correction Filter,翻译过来的意思有点搞笑),不过看到起相关文档的附近有一个也比价有意思的功能,如下面的截图所示:
左侧有个叫Removing BackGround Information的算法,看测试图片,他能够把背景的纹理去除,然后只留下一些细小的线条特征。在我的已经实现的算法里,也确实有一个菜单叫做 Remove BackGruond,尝试利用那个算法对这个图像进行处理,可以得到如下所示图像:
结果也相当不错。
在基恩士里这个功能的结果大概如下图所示:
他把这个功能的名字翻译为实时差分,感觉有点无语。
我也在想基恩士是如何实现的呢,其实基恩士也算开放,他在我第一个贴图里提供了一份中间图像,而且下部还说明是使用了膨胀和收缩后得到的中间结果。
在上图这个界面中,可以看到这个功能有明暗抽取、抽取大小、处理方向等参数,通过这些参数我觉得就可以大概的猜测出函数的内部使用了哪些功能,比如明暗 应该就是决定了膨胀和收缩的前后顺序, 抽取大小其文档有说每次递增2,很明显就是收缩或膨胀的半径的意思(半径增加1,直径增加2)。处理方向不用想就是指单独水平、垂直或者两者均膨胀或收缩。 有了这些猜测,就可以大胆的去尝试了。下面是我对这个算法的尝试结果:
就是按照明暗不同,执行收缩和膨胀,然后和原图求差异,注意如果是提取Dark,最后在反色下。
这个结果和基恩士是比较接近的,只是对比度有所不同。
作为对比,我们还那这个图,但是我们抽取明部,然后抽取大小设置为25,相当于半径12,基恩士和我的比较结果如下所示:
除了对比不太一样外,基本差不多。
另外,这个算法比我们原来的去除背景对光照不均匀图像的处理效果要好,如下所示:
原图 早期的Remove BackGround算法 基恩士的这个算法
下面还是起来看下浓淡补正算法了。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~