opencv 全景影象拼接
阿新 • • 發佈:2019-01-02
int imageStitcher() { vector<Mat> imgs; //圖片命名,可以不按順序來 string pattern = "F:/cpp_code/Demo20181010/Demo20181010/Stitcher/*.jpg"; vector<string> picPaths; glob(pattern, picPaths, false); size_t size = picPaths.size(); if (size>1) { cout << "find " << size << " images !" << endl; for (int i=0;i<size;++i) { Mat img = imread(picPaths[i]); imgs.push_back(img); } Mat panorama; //是否使用GPU bool use_gpu = false; Stitcher stitcher = Stitcher::createDefault(use_gpu); //拼接 Stitcher::Status status = stitcher.stitch(imgs, panorama); //判斷拼接是否成功 if (status != Stitcher::OK) { cout << "Can't stitch images, error code = " << int(status) << endl; return -1; } imshow("panorama", panorama); waitKey(0); } else if (size ==1) { cout << "find 1 image !" << endl; imshow("img", imread(picPaths[0])); waitKey(0); } else { cout << "find 0 image !" << endl; } return 0; }