python+OpenCV实现图像拼接
本文实例为大家分享了利用python和OpenCV实现图像拼接,供大家参考,具体内容如下
python+OpenCV实现imagestitching
在最新的OpenCV官方文档中可以找到C++版本的Stitcher类的说明,但是python版本的还没有及时更新,本篇对python版本的实现做一个简单的介绍.
由于官方文档中还没有python版本的Stitcher类的说明,因此只能自己去GitHub源码上找,以下是stitching的样例:
from__future__importprint_function
importcv2ascv
importnumpyasnp
importargparse
importsys
modes=(cv.Stitcher_PANORAMA,cv.Stitcher_SCANS)
parser=argparse.ArgumentParser(description='Stitchingsample.')
parser.add_argument('--mode',
type=int,choices=modes,default=cv.Stitcher_PANORAMA,
help='Determinesconfigurationofstitcher.Thedefaultis`PANORAMA`(%d),'
'modesuitableforcreatingphotopanoramas.Option`SCANS`(%d)issuitable'
'forstitchingmaterialsunderaffinetransformation,suchasscans.'%modes)
parser.add_argument('--output',default='result.jpg',
help='Resultingimage.Thedefaultis`result.jpg`.')
parser.add_argument('img',nargs='+',help='inputimages')
args=parser.parse_args()
#readinputimages
imgs=[]
forimg_nameinargs.img:
img=cv.imread(img_name)
ifimgisNone:
print("can'treadimage"+img_name)
sys.exit(-1)
imgs.append(img)
stitcher=cv.Stitcher.create(args.mode)
status,pano=stitcher.stitch(imgs)
ifstatus!=cv.Stitcher_OK:
print("Can'tstitchimages,errorcode=%d"%status)
sys.exit(-1)
cv.imwrite(args.output,pano);
print("stitchingcompletedsuccessfully.%ssaved!"%args.output)
上面写了一大堆,然鹅,直接拿来用的话,用下面的代码可以了,简单粗暴
importnumpyasnp
importcv2
fromcv2importStitcher
if__name__=="__main__":
img1=cv2.imread('1.jpg')
img2=cv2.imread('2.jpg')
stitcher=cv2.createStitcher(False)
#stitcher=cv2.Stitcher.create(cv2.Stitcher_PANORAMA),根据不同的OpenCV版本来调用
(_result,pano)=stitcher.stitch((img1,img2))
cv2.imshow('pano',pano)
cv2.waitKey(0)
效果如下:
原图:
拼接后的图像:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。