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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。