专栏首页一心无二用,本人只专注于基础图像算法的实现与优化。【短道速滑三】去除图像竖直(垂直)条纹算法

【短道速滑三】去除图像竖直(垂直)条纹算法

  最近一个朋友发了一个效果图,是关于条纹去除的,问我有没有什么好的方法,实现这个功能,给我的参考图片如下所示:

  我这里提出两个解决方案:

方案1: 使用带通滤波器,基于FFT的,这个应该是最为标准的答案,详细的参考代码可以见ImageJ软件的BandPass Filer,具体路径为ImageJ\source\ij\plugin\filter\FFTFilter.java。界面如下所示:

  得到的结果大概如下所示:

 其原理就是竖直条纹在频谱图上表现为一条水平线,我们就要把这条水平线消除,反馈到RGB空间就没有条纹了。

  上面的处理后的图像还有些模糊,原因是ImageJ这个插件对其他位置的频谱也处理掉了一些(上面有图的Filter除水平黑线之外的其他黑色区域),如果用于工业实践,可再次适当修改下代码。

  在网上另外找了一个测试图像,效果也还算可以:

  方案2: 使用GIMP里的Destripe算法,该算法位于gimp-master\plug-ins\common\destripe.c文件中,其核心过程其实也很简单,他接受一个输入参数,窗口宽度,在内部他计算指定宽度内,研图像高度方向所有像素的平均值,然后以这个平均值和当前像素的差异作为一个特征,带入到后续的一个增强算式中,核心就是下面两句代码,这个其实是用X方向的图像信息来弥补Y方向的信息的一种手段。

*c = ((sum / cnt - *h) << 10) / *h;

*rows = MIN (255, MAX (0, *rows + (*rows * *c >> 10) ));

这个算法的结果如下:

 对这个图的处理效果还是很不错的。不过他的通用型没有基于FFT的完美,比如上面第二个测试图像,他的结果如下所示:

但是他的优点就是速度非常快,所以还是要根据不同的需求来使用不同的算法把。

本文Demo下载地址: http://files.cnblogs.com/files/Imageshop/SSE_Optimization_Demo.rar,基于FFT的BandPass Filter详见菜单 FFT-> BandPass Filter,基于GIMP那个算法详见:Detection -> Audilairay Enhance-> Destripe菜单。

  如果是去除水平条纹,其实也是采用类似的算法。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 关于Retinex图像增强算法的一些新学习。

     最近再次看了一下IPOL网站,有一篇最近发表的文章,名字就是Multiscale Retinex,感觉自己对这个已经基本了解了,但还是进去看了看,也有一些收...

    用户1138785
  • 基于灰度世界、完美反射、动态阈值等图像自动白平衡算法的原理、实现及效果

    白平衡是电视摄像领域一个非常重要的概念,通过它可以解决色彩还原和色调处理的一系列问题。白平衡是随着电子影像再现色彩真实而产生的,在专业摄像领域白平衡应...

    用户1138785
  • 关于《半反去雾算法》一文的四宗罪。

      最近在看一篇关于去雾的算法的文章:A Fast Semi-Inverse Approach to Detect and Remove the Haze fr...

    用户1138785
  • 使用ulimit 命令、/etc/security/limits.conf、proc 调整系统参数

    sunsky
  • 想打造一个神经网络,自动给黑白照片上色?这儿有一份超详细教程

    王小新 编译自 FloydHub Blog 量子位 出品 | 公众号 QbitAI ? 昨天,你可能惊喜地看到了Adobe做了个给人像上色的软件,然后伤心地发现...

    量子位
  • Vue生命周期-手动挂载理解

    浏览器缓存,试了下确实一定概率可以显示,但是,哪怕浏览器不行,我们也只能从自己的代码里修改来配合它,兼容它。

    ydymz
  • 「 互联网笔试题 」No.2 2018酷狗秋招笔试题

    一.单选题 1、在命中率极高的缓存设计中,时间复杂度最差的数据结构是( ) A. 数组 B. 链表 C. 树 D. 哈希表

    KEN DO EVERTHING
  • Android图片采样缩放功能实例代码

    是为了更加高效的加载Bitmap。假设通过imageView来显示图片,很多时候ImageView并没有图片的原始尺寸那么大,这时候把整张图片加载进来后再设给I...

    砸漏
  • ubuntu启动错误saned disabled edit /etc/default/saned checking battery state

    然后重启,按上下键查看启动信息,发现卡在了saned disabled edit /etc/default/saned。。

    飞雪无情
  • 33. 摄影-怎样对焦才能让不同距离的物体都拍摄清晰?

    怎样对焦,才能让场景中不同距离的每个物体都拍摄清晰?如果你喜欢摄影,在构图和取景时我想这个问题一定困惑过你。如我的文章31. 镜头、曝光,以及对焦(上)所说,镜...

    HawkWang

扫码关注云+社区

领取腾讯云代金券