【问题标题】:Computer Vision: Remove Edge Effect计算机视觉:去除边缘效应
【发布时间】:2014-02-12 03:57:07
【问题描述】:

我将几张照片合二为一(有点类似于全景效果​​),我看到了强度的差异,尤其是靠近照片的边缘。消除这些影响的最佳方法是什么?我想我应该标准化强度,但可能还有其他技术?如果不是,您将如何规范化两个图像的强度?

我使用 OpenCV,因此我会很感激 Python 或 C++ 中的任何代码示例。提前致谢。

更新

opencv 课程中的Stitcher 会解决我的问题吗?如果是这样,在组合图像之前如何避免在拼接器上调用estimateTransform?我想避免这个电话的原因是我的相机没有移动,所以我知道针迹的确切位置。任何帮助表示赞赏。谢谢。

【问题讨论】:

标签: opencv image-processing computer-vision


【解决方案1】:

您所要求的实质上是对拼接算法的两部分修改(即:一种将多个图像拼接成一个图像的算法)。

第一部分是去晕影,本质上是修正图像角落的亮度变化。这在使用广角镜头拍照时很常见。该解决方案并非微不足道,而且我没有可用的 C++ 源代码示例。对于整个问题,我的猜测是你必须学习它背后的数学并自己实现它。不过,我可以为通过 ImageMagik 传递图像的 shell 脚本程序提供示例来解决这个问题。算法本身也完全通俗易懂。

后半部分,涉及将现在去暗角的图像拼接在一起。你似乎已经把那部分记下来了。现在,即使图像边缘处的亮度伪影已得到校正,每个图像的平均强度也会有所不同。这通过直方图均衡很容易解决,为此我有一个 C++ 示例。

所以,简而言之:

  1. 对每一帧应用去晕影算法
  2. 对每一帧应用直方图均衡算法
  3. 将所有原始帧拼接成最终图像

看完所涉及的工作,你就会明白为什么涉及到的大部分工作都是商业性的,而且来源不是免费的。

参考文献


  1. “去晕影”,于 2014 年 2 月 11 日访问,http://www.physics.mcmaster.ca/~syam/Photo/

  2. “使用全局和局部亮度对齐的图像配准”,访问时间:2014 年 2 月 11 日,http://www.cse.cuhk.edu.hk/leojia/all_project_webpages/luminance_alignment/luminance_alignment.html

  3. “使用 C++ 进行直方图均衡化:图像处理”,2014 年 2 月 11 日访问,http://www.programming-techniques.com/2013/01/histogram-equalization-using-c-image.html

【讨论】:

  • 刚看到这个回复。感谢专业、详尽和参考的答案。
【解决方案2】:

我认为响应取决于您的图像有多少重叠。您可以尝试混合,但我不知道您的图像是否有不同的重叠内容。我会尝试将直方图匹配 (http://en.wikipedia.org/wiki/Histogram_matching) 与 alpha 混合结合起来。

【讨论】:

  • 混合效果不佳。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-07
  • 1970-01-01
  • 2011-10-18
  • 2017-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多