具有相同区域的两张图像可以利用图像拼接可以实现图像的合并,并且去掉两张图像之间的拼缝,实现多张图像之间的视觉拼接,不仅可以扩大视觉范围,也可以形成环视观察!
这里提供一种采用加权平均融合消除图像拼缝的算法,供大家使用。
如下图所示,如果两张图像直接进行拼接,就会在拼接位置处产生一条拼接缝,拼接缝的产生来源于两张图像光场有差别所导致的两者虽然是连续的结构,但是在两张图中的具体数字存在一定的差异。对于具有重叠部分的两张图像,消除这种拼缝的方法主要是基于特征点匹配所涉及;但是加权平均融合方法是最为简单有效的办法,这里将此算法的python代码给出。
def calWeight(d,k):
'''
:param d: 融合重叠部分直径
:param k: 融合计算权重参数
:return:
'''
x = np.arange(-d/2,d/2)
y = 1/(1+np.exp(-k*x))
return y
def imgFusion(img1,img2,overlap,left_right=True):
'''
图像加权融合
:param img1:
:param img2:
:param overlap: 重合长度
:param left_right: 是否是左右融合
:return:
'''
# 这里先暂时考虑平行向融合
w = calWeight(overlap,0.05) # k=5 这里是超参
if left_right: # 左右融合
col, row = img1.shape
img_new = np.zeros((row,2*col-overlap))<