python全景图像拼接_python实现图像全景拼接( 二 )


pts1.(kp1[m.].pt)
[i] = [1, 0]
【python全景图像拼接_python实现图像全景拼接】 = dict(=(0, 255, 0),
=(255, 0, 0),
=,
flags=0)
img3 = cv.(, kp1, , kp2, , None, **)
plt.(img3, ), plt.show()
rows, cols = .shape[:2]
= 10
if len(good) > :
= np.([kp1[m.].pt for m in good]).(-1, 1, 2)
= np.([kp2[m.].pt for m in good]).(-1, 1, 2)
M, mask = cv.(, , cv., 5.0)
= cv.(, np.array(M), (.shape[1], .shape[0]), flags=cv.)
for col in range(0, cols):
if [:, col].any() and [:, col].any():
left = col
break
for col in range(cols-1, 0, -1):
if [:, col].any() and [:, col].any():
right = col
break
res = np.zeros([rows, cols, 3], np.uint8)
for row in range(0, rows):
for col in range(0, cols):
if not [row, col].any():
res[row, col] = [row, col]
elif not [row, col].any():
res[row, col] = [row, col]
else:
= float(abs(col - left))
= float(abs(col - right))
alpha =/ ( + )

python全景图像拼接_python实现图像全景拼接

文章插图
res[row, col] = np.clip([row, col] * (1-alpha) + [row, col] * alpha, 0, 255)
#is bgr,is rgb
res = cv.(res, cv.)
# show the
plt.()
plt.(res)
plt.show()
else:
print("Notare found - {}/{}".(len(good), ))
= None
实验结果:
1、室内场景:
python全景图像拼接_python实现图像全景拼接

文章插图
原图1
python全景图像拼接_python实现图像全景拼接

文章插图
原图2
拼接后:
python全景图像拼接_python实现图像全景拼接

文章插图
2、室外场景:
场景1:
python全景图像拼接_python实现图像全景拼接

文章插图
原图1
python全景图像拼接_python实现图像全景拼接

文章插图
原图2
拼接后:
python全景图像拼接_python实现图像全景拼接

文章插图
场景2:
python全景图像拼接_python实现图像全景拼接

文章插图
原图1
python全景图像拼接_python实现图像全景拼接

文章插图
原图2
拼接后:
python全景图像拼接_python实现图像全景拼接

文章插图
场景3:
python全景图像拼接_python实现图像全景拼接

文章插图
原图1
python全景图像拼接_python实现图像全景拼接

文章插图
原图2
拼接后:
python全景图像拼接_python实现图像全景拼接

文章插图
总结:
本文分别针对室内和室外两种情况对两张图像做全景拼接,发现室内情况下拼接的效果较为好 。在室外场景1情况下,两张图像有近景和远景结合,两张图像拼接后近景的图像被放大并有一定程度的倾斜;在场景2中,两张图像都是远景,拼接后的效果还不错但是在拼接后图像的中上方出现了拼接缝;场景3是在不同明亮程度下图像的拼接可以发现拼接后的图像出现明显的明暗差距,并且拼接缝明显两张图像没有很好的拼接在一起,出现很多没有重合的地方 。
本实验最初是用-.4.5版本,但是由于sift的专利限制无法使用,随后用-.4.2代码可以运行,不会出现问题 。方法:先卸载当前版本的并安装:
pip-i--==3.4.2.16
本文已被收录到专题《图片处理操作》,欢迎大家点击学习更多精彩内容 。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家 。