OpenCV 4.11.0
开源计算机视觉库
加载中…
搜索中…
未找到匹配项
samples/python/stitching.py

一个关于Python图像拼接的基本示例。

1#!/usr/bin/env python
2
3'''
4图像拼接示例
5================
6
7演示如何以简单的方式使用Python中的Stitcher API进行全景图或扫描图像的拼接。
8
9'''
10
11# Python 2/3兼容性
12from __future__ import print_function
13
14import numpy as np
15import cv2 as cv
16
17import argparse
18import sys
19
20modes = (cv.Stitcher_PANORAMA, cv.Stitcher_SCANS)
21
22parser = argparse.ArgumentParser(prog='stitching.py', description='图像拼接示例。')
23parser.add_argument('--mode',
24 type = int, choices = modes, default = cv.Stitcher_PANORAMA,
25 help = '确定拼接器的配置。默认值为`PANORAMA` (%d),'
26 '适用于创建照片全景图的模式。选项`SCANS` (%d) 适用于'
27 '拼接仿射变换下的材料,例如扫描件。' % modes)
28parser.add_argument('--output', default = 'result.jpg',
29 help = '结果图像。默认为`result.jpg`。')
30parser.add_argument('img', nargs='+', help = '输入图像')
31
32__doc__ += '\n' + parser.format_help()
33
34def main()
35 args = parser.parse_args()
36
37 # 读取输入图像
38 imgs = []
39 for img_name in args.img
40 img = cv.imread(cv.samples.findFile(img_name))
41 if img is None
42 print("无法读取图像 " + img_name)
43 sys.exit(-1)
44 imgs.append(img)
45
46 #![图像拼接]
47 stitcher = cv.Stitcher.create(args.mode)
48 status, pano = stitcher.stitch(imgs)
49
50 if status != cv.Stitcher_OK
51 print("无法拼接图像,错误代码 = %d" % status)
52 sys.exit(-1)
53 #![图像拼接]
54
55 cv.imwrite(args.output, pano)
56 print("图像拼接完成。已保存 %s!" % args.output)
57
58 print('完成')
59
60
61if __name__ == '__main__'
62 print(__doc__)
63 main()
static Ptr< Stitcher > create(Mode mode=Stitcher::PANORAMA)
创建一个以某种拼接模式配置的Stitcher。
cv::String findFile(const cv::String &relative_path, bool required=true, bool silentMode=false)
尝试查找请求的数据文件。
void destroyAllWindows()
销毁所有HighGUI窗口。
CV_EXPORTS_W bool imwrite(const String &filename, InputArray img, const std::vector< int > &params=std::vector< int >())
将图像保存到指定文件。
CV_EXPORTS_W Mat imread(const String &filename, int flags=IMREAD_COLOR_BGR)
从文件中加载图像。
int main(int argc, char *argv[])
定义 highgui_qt.cpp:3