-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpanorama_cv.py
54 lines (38 loc) · 1.14 KB
/
panorama_cv.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import cv2
import sys
import os
import argparse
# def parser():
# parser = argparse.ArgumentParser('file name')
# parser.add_argument('')
# return
def main(arg):
# 3장의 영상을 리스트로 묶어서 반복문으로 하나하나 갖고옴
# img_names = ['img1.jpg', 'img2.jpg', 'img3.jpg']
img_names = arg
# 불러온 영상을 imgs에 저장
imgs = []
for name in img_names:
img = cv2.imread(name)
if img is None:
print('Image load failed!')
sys.exit()
imgs.append(img)
# 객체 생성
stitcher = cv2.Stitcher_create()
# 이미지 스티칭
status, dst = stitcher.stitch(imgs)
if status != cv2.Stitcher_OK:
print('Stitch failed!')
sys.exit()
# 결과 영상 저장
cv2.imwrite('output.jpg', dst)
# 출력 영상이 화면보다 커질 가능성이 있어 WINDOW_NORMAL 지정
cv2.namedWindow('dst', cv2.WINDOW_NORMAL)
cv2.imshow('dst',dst)
cv2.waitKey()
cv2.destroyAllWindows()
if __name__ == '__main__':
# args = parser()
arg = sys.argv
main(arg)