在opencv4.5.1版本下,使用Stitch进行图像拼接

初学者下载了最新版本的opencv4.5.1,关于图像拼接方面,4版本发生了一些变化,

在opencv4.5.1版本下,使用Stitch进行图像拼接

代码如下

#include <opencv2/core.hpp>               
#include <opencv2/highgui.hpp>            
#include <opencv2/imgproc.hpp>  
#include <iostream>
#include <stdlib.h>
#include <stdio.h>  
#include <opencv2/stitching.hpp>
#include < opencv2\opencv.hpp > 
#include <opencv2/xfeatures2d/nonfree.hpp>
using namespace cv;
using namespace std;

int main()
{
	Stitcher::Mode mode = Stitcher::PANORAMA;
	//Stitcher::Mode mode = Stitcher::SCANS;
	vector<Mat> imgs;
	Mat img1 = imread("C:\\Users\\DuXiuW\\Desktop\\01.jpg");
	Mat img2 = imread("C:\\Users\\DuXiuW\\Desktop\\02.jpg");
	if (img1.empty() || img2.empty())
	{
		cout << "Read image failed, please check again!" << endl;
		return 1;
	}
	imgs.push_back(img1);
	imgs.push_back(img2);

	string result_name = "result.jpg";
	Mat pano;
	Ptr<Stitcher> stitcher = Stitcher::create(mode);
	Stitcher::Status status = stitcher->stitch(imgs, pano);
	if (status != Stitcher::OK)
	{
		cout << "Can't stitch images, error code = " << int(status) << endl;
		return 1;
	}
	imwrite(result_name, pano);
	cout << "stitching completed successfully\n" << result_name << " saved!";
	return 0;
}

代码也是复制于其他博客,运行不了,产生了问题,问题如下:

[ INFO:0] global C:\build\master_winpack-build-win64-vc14\opencv\modules\core\src\ocl.cpp (1176) cv::ocl::haveOpenCL Initialize OpenCL runtime...
[ INFO:0] global C:\build\master_winpack-build-win64-vc14\opencv\modules\core\src\ocl.cpp (1182) cv::ocl::haveOpenCL OpenCL: found 2 platforms
[ INFO:0] global C:\build\master_winpack-build-win64-vc14\opencv\modules\core\src\ocl.cpp (974) cv::ocl::OpenCLExecutionContext::Impl::getInitializedExecutionContext OpenCL: initializing thread execution context
[ INFO:0] global C:\build\master_winpack-build-win64-vc14\opencv\modules\core\src\ocl.cpp (984) cv::ocl::OpenCLExecutionContext::Impl::getInitializedExecutionContext OpenCL: creating new execution context...
[ INFO:0] global C:\build\master_winpack-build-win64-vc14\opencv\modules\core\src\ocl.cpp (1002) cv::ocl::OpenCLExecutionContext::Impl::getInitializedExecutionContext OpenCL: device=Intel(R) UHD Graphics 630
[ INFO:0] global C:\build\master_winpack-build-win64-vc14\opencv\modules\core\src\ocl.cpp (5131) cv::ocl::Context::Impl::__init_buffer_pools OpenCL: Initializing buffer pool for context@0 with max capacity: poolSize=134217728 poolSizeHostPtr=134217728
[ INFO:0] global C:\build\master_winpack-build-win64-vc14\opencv\modules\core\src\ocl.cpp (400) cv::ocl::OpenCLBinaryCacheConfigurator::OpenCLBinaryCacheConfigurator Successfully initialized OpenCL cache directory: C:\Users\DuXiuW\AppData\Local\Temp\opencv\4.5\opencl_cache\
[ INFO:0] global C:\build\master_winpack-build-win64-vc14\opencv\modules\core\src\ocl.cpp (424) cv::ocl::OpenCLBinaryCacheConfigurator::prepareCacheDirectoryForContext Preparing OpenCL cache configuration for context: Intel_R__Corporation--Intel_R__UHD_Graphics_630--27_20_100_8681

 

在网上搜了半天也没有解决方法,希望有大佬有解决这个问题的经验

版本问题建议去官网看看相关版本更新信息

希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10993204.html

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y

请问这个问题您解决了吗,我最近也遇到了一样的问题,图像拼接失败

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632