我将几张照片组合成一张(有点类似于全景效果),我发现强度有所不同,尤其是照片边缘附近。消除这些影响的最佳方法是什么?我想我应该将强度标准化,但也可能还有其他技术?如果没有,你究竟会如何规范两幅图像的强度?
我使用的是OpenCV,所以我很欣赏Python或C ++中的任何代码示例。提前谢谢。
更新
opencv类中的Stitcher
会解决我的问题吗?如果是这样,在组合图像之前如何避免在拼接器上调用estimateTransform
?我想避免这个电话的原因是我的相机没有移动,所以我确切地知道了针脚的位置。任何帮助赞赏。感谢。
答案 0 :(得分:4)
您所要求的实质上是对拼接算法的两部分修改(即:将多个图像拼凑成一个图像的算法)。
第一部分是去渐晕,主要是纠正图像角落的亮度变化。这在使用广角镜头拍摄时很常见。解决方案并非完全无关紧要,我没有一个有效的C ++源代码示例。对于整体问题,我的猜测是你必须学习它背后的数学并自己实现它。我可以提供shell脚本程序的示例,该程序通过ImageMagik传递图像以解决此问题。算法本身也完全按照外行人的术语制定。
下半部分涉及将现在去渐晕的图像拼接在一起。你似乎已经把那部分放下了。现在,即使图像的边缘处的亮度伪影得到校正,每个图像的平均强度也会不同。通过直方图均衡可以很容易地解决这个问题,我有一个C ++示例。
简而言之:
在完成所涉及的工作之后,你会明白为什么涉及这项工作的大多数工作都是商业性的,并且来源不是免费的。
<强>参考强>
“De-vignetting”,访问2014-02-11,http://www.physics.mcmaster.ca/~syam/Photo/
“全局和局部亮度对齐的图像注册”,已访问2014-02-11,http://www.cse.cuhk.edu.hk/leojia/all_project_webpages/luminance_alignment/luminance_alignment.html
“使用C ++进行直方图均衡:图像处理”,访问2014-02-11,http://www.programming-techniques.com/2013/01/histogram-equalization-using-c-image.html
答案 1 :(得分:0)
我认为响应取决于您的图片有多少重叠。您可以尝试混合,但我不知道您的图像是否有不同的重叠内容。我会尝试将直方图匹配(http://en.wikipedia.org/wiki/Histogram_matching)与alpha混合相结合。